diff --git a/.gitattributes b/.gitattributes index f1ad1257ab88c0338ba0000a7276a26b57302726..45d0a75fe78643c09800f159f60eb5f3c8201a5d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -35,3 +35,26 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text llama_lora_model_1/tokenizer.json filter=lfs diff=lfs merge=lfs -text outputs/checkpoint-100/tokenizer.json filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/bin/llama-export-lora filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/bin/llama-imatrix filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/bin/llama-llava-cli filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/bin/llama-minicpmv-cli filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/bin/llama-perplexity filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/bin/llama-server filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/common/libcommon.a filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o filter=lfs diff=lfs merge=lfs -text +llama.cpp/build/src/libllama.so filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-aquila.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-baichuan.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-command-r.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-deepseek-coder.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-deepseek-llm.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-falcon.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-gpt-2.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-gpt-neox.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-llama-bpe.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-mpt.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-qwen2.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-refact.gguf filter=lfs diff=lfs merge=lfs -text +llama.cpp/models/ggml-vocab-starcoder.gguf filter=lfs diff=lfs merge=lfs -text diff --git a/llama.cpp/.clang-format b/llama.cpp/.clang-format new file mode 100644 index 0000000000000000000000000000000000000000..45232b80ed8cd1c7ce3892a9d181d38b131240d7 --- /dev/null +++ b/llama.cpp/.clang-format @@ -0,0 +1,161 @@ +--- +Language: Cpp +AlignAfterOpenBracket: Align +AlignArrayOfStructures: Left +AlignConsecutiveAssignments: AcrossComments +AlignConsecutiveBitFields: AcrossComments +AlignConsecutiveDeclarations: AcrossComments +AlignConsecutiveMacros: AcrossComments +# AlignConsecutiveShortCaseStatements: AcrossComments +AlignEscapedNewlines: Left # LeftWithLastLine +AlignOperands: Align +AlignTrailingComments: + Kind: Always + OverEmptyLines: 1 +AllowAllArgumentsOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: false +# AllowBreakBeforeNoexceptSpecifier: OnlyWithParen +AllowShortBlocksOnASingleLine: Never +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: Inline +AllowShortLoopsOnASingleLine: false +AlwaysBreakBeforeMultilineStrings: true +BinPackArguments: true +BinPackParameters: true # OnePerLine +BitFieldColonSpacing: Both +BreakBeforeBraces: Custom # Attach +BraceWrapping: + AfterCaseLabel: true + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false + BeforeWhile: false + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyRecord: false + SplitEmptyNamespace: false +# BreakAdjacentStringLiterals: true +BreakAfterAttributes: Never +BreakBeforeBinaryOperators: None +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTernaryOperators: false +# BreakBinaryOperations: Never +BreakConstructorInitializers: AfterColon +# BreakFunctionDefinitionParameters: false +BreakInheritanceList: AfterComma +BreakStringLiterals: true +# BreakTemplateDeclarations: Yes +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +EmptyLineBeforeAccessModifier: Leave +EmptyLineAfterAccessModifier: Never +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +IncludeBlocks: Regroup +IncludeCategories: + - Regex: '^<.*\.h>' + Priority: 1 + SortPriority: 0 + - Regex: '^<.*' + Priority: 2 + SortPriority: 0 + - Regex: '.*' + Priority: 3 + SortPriority: 0 +IncludeIsMainRegex: '([-_](test|unittest))?$' +IncludeIsMainSourceRegex: '' +IndentAccessModifiers: false +IndentCaseBlocks: true +IndentCaseLabels: true +IndentExternBlock: NoIndent +IndentGotoLabels: false +IndentPPDirectives: AfterHash +IndentWidth: 4 +IndentWrappedFunctionNames: false +InsertBraces: true # NOTE: may lead to incorrect formatting +InsertNewlineAtEOF: true +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +LambdaBodyIndentation: Signature +LineEnding: LF +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 4 +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true +PPIndentWidth: -1 +PackConstructorInitializers: CurrentLine +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Middle +QualifierAlignment: Left +#QualifierOrder: ['static', 'inline', 'friend', 'constexpr', 'const', 'volatile', 'type', 'restrict'] +RawStringFormats: + - Language: Cpp + Delimiters: + - cc + - CC + - cpp + - Cpp + - CPP + - 'c++' + - 'C++' + CanonicalDelimiter: '' +ReferenceAlignment: Middle +ReflowComments: false # IndentOnly +SeparateDefinitionBlocks: Always +SortIncludes: CaseInsensitive +SortUsingDeclarations: LexicographicNumeric +SpaceAfterCStyleCast: true +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: Never +SpacesInContainerLiterals: true +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: -1 +SpacesInParentheses: false +SpacesInSquareBrackets: false +SpaceBeforeSquareBrackets: false +Standard: c++17 +TabWidth: 4 +UseTab: Never +WhitespaceSensitiveMacros: ['STRINGIZE'] +... + diff --git a/llama.cpp/.clang-tidy b/llama.cpp/.clang-tidy new file mode 100644 index 0000000000000000000000000000000000000000..310c3d182c8f2ed2c3bc0ddfa9f6fb74f86e39ae --- /dev/null +++ b/llama.cpp/.clang-tidy @@ -0,0 +1,26 @@ +--- +Checks: > + bugprone-*, + -bugprone-easily-swappable-parameters, + -bugprone-implicit-widening-of-multiplication-result, + -bugprone-misplaced-widening-cast, + -bugprone-narrowing-conversions, + readability-*, + -readability-avoid-unconditional-preprocessor-if, + -readability-function-cognitive-complexity, + -readability-identifier-length, + -readability-implicit-bool-conversion, + -readability-magic-numbers, + -readability-uppercase-literal-suffix, + -readability-simplify-boolean-expr, + clang-analyzer-*, + -clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling, + performance-*, + portability-*, + -portability-simd-intrinsics, + misc-*, + -misc-const-correctness, + -misc-non-private-member-variables-in-classes, + -misc-no-recursion, + -misc-use-anonymous-namespace, +FormatStyle: none diff --git a/llama.cpp/.devops/cloud-v-pipeline b/llama.cpp/.devops/cloud-v-pipeline new file mode 100644 index 0000000000000000000000000000000000000000..af8c0cea6155c71c0c162e034715908ea16ee9cf --- /dev/null +++ b/llama.cpp/.devops/cloud-v-pipeline @@ -0,0 +1,22 @@ +node('x86_runner1'){ // Running on x86 runner containing latest vector qemu, latest vector gcc and all the necessary libraries + stage('Cleanup'){ + cleanWs() // Cleaning previous CI build in workspace + } + stage('checkout repo'){ + retry(5){ // Retry if the cloning fails due to some reason + checkout scm // Clone the repo on Runner + } + } + stage('Compiling llama.cpp'){ + sh'''#!/bin/bash + make RISCV=1 RISCV_CROSS_COMPILE=1 # Compiling llama for RISC-V + ''' + } + stage('Running llama.cpp'){ + sh'''#!/bin/bash + module load gnu-bin2/0.1 # loading latest versions of vector qemu and vector gcc + qemu-riscv64 -L /softwares/gnu-bin2/sysroot -cpu rv64,v=true,vlen=256,elen=64,vext_spec=v1.0 ./llama-cli -m /home/alitariq/codellama-7b.Q4_K_M.gguf -p "Anything" -n 9 > llama_log.txt # Running llama.cpp on vector qemu-riscv64 + cat llama_log.txt # Printing results + ''' + } +} diff --git a/llama.cpp/.devops/full-cuda.Dockerfile b/llama.cpp/.devops/full-cuda.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..05bff1bdf6a2287de00d816773d23fc1069ca515 --- /dev/null +++ b/llama.cpp/.devops/full-cuda.Dockerfile @@ -0,0 +1,33 @@ +ARG UBUNTU_VERSION=22.04 +# This needs to generally match the container host's environment. +ARG CUDA_VERSION=12.6.0 +# Target the CUDA build image +ARG BASE_CUDA_DEV_CONTAINER=nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION} + +FROM ${BASE_CUDA_DEV_CONTAINER} AS build + +# CUDA architecture to build for (defaults to all supported archs) +ARG CUDA_DOCKER_ARCH=default + +RUN apt-get update && \ + apt-get install -y build-essential cmake python3 python3-pip git libcurl4-openssl-dev libgomp1 + +COPY requirements.txt requirements.txt +COPY requirements requirements + +RUN pip install --upgrade pip setuptools wheel \ + && pip install -r requirements.txt + +WORKDIR /app + +COPY . . + +# Use the default CUDA archs if not specified +RUN if [ "${CUDA_DOCKER_ARCH}" != "default" ]; then \ + export CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=${CUDA_DOCKER_ARCH}"; \ + fi && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake --build build --config Release -j$(nproc) && \ + cp build/bin/* . + +ENTRYPOINT ["/app/.devops/tools.sh"] diff --git a/llama.cpp/.devops/full-musa.Dockerfile b/llama.cpp/.devops/full-musa.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..3193fea1e9ae58d81f9c32ba7d057d1e30d4d68d --- /dev/null +++ b/llama.cpp/.devops/full-musa.Dockerfile @@ -0,0 +1,33 @@ +ARG UBUNTU_VERSION=22.04 +# This needs to generally match the container host's environment. +ARG MUSA_VERSION=rc3.1.0 +# Target the MUSA build image +ARG BASE_MUSA_DEV_CONTAINER=mthreads/musa:${MUSA_VERSION}-devel-ubuntu${UBUNTU_VERSION} + +FROM ${BASE_MUSA_DEV_CONTAINER} AS build + +# MUSA architecture to build for (defaults to all supported archs) +ARG MUSA_DOCKER_ARCH=default + +RUN apt-get update && \ + apt-get install -y build-essential cmake python3 python3-pip git libcurl4-openssl-dev libgomp1 + +COPY requirements.txt requirements.txt +COPY requirements requirements + +RUN pip install --upgrade pip setuptools wheel \ + && pip install -r requirements.txt + +WORKDIR /app + +COPY . . + +# Use the default MUSA archs if not specified +RUN if [ "${MUSA_DOCKER_ARCH}" != "default" ]; then \ + export CMAKE_ARGS="-DMUSA_ARCHITECTURES=${MUSA_DOCKER_ARCH}"; \ + fi && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON -DLLAMA_CURL=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake --build build --config Release -j$(nproc) && \ + cp build/bin/* . + +ENTRYPOINT ["/app/.devops/tools.sh"] diff --git a/llama.cpp/.devops/full-rocm.Dockerfile b/llama.cpp/.devops/full-rocm.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..df496bcd2b7ee772425fc5ba4dc3a0701a8b04be --- /dev/null +++ b/llama.cpp/.devops/full-rocm.Dockerfile @@ -0,0 +1,50 @@ +ARG UBUNTU_VERSION=22.04 + +# This needs to generally match the container host's environment. +ARG ROCM_VERSION=5.6 + +# Target the CUDA build image +ARG BASE_ROCM_DEV_CONTAINER=rocm/dev-ubuntu-${UBUNTU_VERSION}:${ROCM_VERSION}-complete + +FROM ${BASE_ROCM_DEV_CONTAINER} AS build + +# Unless otherwise specified, we make a fat build. +# List from https://github.com/ggerganov/llama.cpp/pull/1087#issuecomment-1682807878 +# This is mostly tied to rocBLAS supported archs. +ARG ROCM_DOCKER_ARCH="\ + gfx803 \ + gfx900 \ + gfx906 \ + gfx908 \ + gfx90a \ + gfx1010 \ + gfx1030 \ + gfx1100 \ + gfx1101 \ + gfx1102" + +COPY requirements.txt requirements.txt +COPY requirements requirements + +RUN pip install --upgrade pip setuptools wheel \ + && pip install -r requirements.txt + +WORKDIR /app + +COPY . . + +# Set nvcc architecture +ENV AMDGPU_TARGETS=${ROCM_DOCKER_ARCH} +# Enable ROCm +ENV GGML_HIPBLAS=1 +ENV CC=/opt/rocm/llvm/bin/clang +ENV CXX=/opt/rocm/llvm/bin/clang++ + +# Enable cURL +ENV LLAMA_CURL=1 +RUN apt-get update && \ + apt-get install -y libcurl4-openssl-dev + +RUN make -j$(nproc) + +ENTRYPOINT ["/app/.devops/tools.sh"] diff --git a/llama.cpp/.devops/full.Dockerfile b/llama.cpp/.devops/full.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2a06f82b738aee88ed82266c710e7c942e408976 --- /dev/null +++ b/llama.cpp/.devops/full.Dockerfile @@ -0,0 +1,25 @@ +ARG UBUNTU_VERSION=22.04 + +FROM ubuntu:$UBUNTU_VERSION AS build + +RUN apt-get update && \ + apt-get install -y build-essential python3 python3-pip git libcurl4-openssl-dev libgomp1 + +COPY requirements.txt requirements.txt +COPY requirements requirements + +RUN pip install --upgrade pip setuptools wheel \ + && pip install -r requirements.txt + +WORKDIR /app + +COPY . . + +ENV LLAMA_CURL=1 + + +RUN make -j$(nproc) + +ENV LC_ALL=C.utf8 + +ENTRYPOINT ["/app/.devops/tools.sh"] diff --git a/llama.cpp/.devops/llama-cli-cann.Dockerfile b/llama.cpp/.devops/llama-cli-cann.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..02dce501ce28629776e631f3f2e56bbf66df12a7 --- /dev/null +++ b/llama.cpp/.devops/llama-cli-cann.Dockerfile @@ -0,0 +1,44 @@ +ARG ASCEND_VERSION=8.0.rc2.alpha003-910b-openeuler22.03-py3.8 + +FROM ascendai/cann:$ASCEND_VERSION AS build + +WORKDIR /app + +COPY . . + +RUN yum install -y gcc g++ cmake make +ENV ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest +ENV LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:$LIBRARY_PATH +ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH} +ENV PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:${PYTHONPATH} +ENV PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:${PATH} +ENV ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME} +ENV ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp +ENV TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit +ENV ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME} + +# find libascend_hal.so, because the drive hasn`t been mounted. +ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/runtime/lib64/stub:$LD_LIBRARY_PATH + +RUN echo "Building with static libs" && \ + source /usr/local/Ascend/ascend-toolkit/set_env.sh --force && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CANN=ON -DBUILD_SHARED_LIBS=OFF && \ + cmake --build build --config Release --target llama-cli + +# TODO: use image with NNRT +FROM ascendai/cann:$ASCEND_VERSION AS runtime +COPY --from=build /app/build/bin/llama-cli /llama-cli + +ENV LC_ALL=C.utf8 + +ENV ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latest +ENV LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:$LIBRARY_PATH +ENV LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe/op_tiling:${LD_LIBRARY_PATH} +ENV PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:${PYTHONPATH} +ENV PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:${PATH} +ENV ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME} +ENV ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/opp +ENV TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkit +ENV ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME} + +ENTRYPOINT ["/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cli-cuda.Dockerfile b/llama.cpp/.devops/llama-cli-cuda.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7796891d5b53c43590f71a074e43b8da14658837 --- /dev/null +++ b/llama.cpp/.devops/llama-cli-cuda.Dockerfile @@ -0,0 +1,38 @@ +ARG UBUNTU_VERSION=22.04 +# This needs to generally match the container host's environment. +ARG CUDA_VERSION=12.6.0 +# Target the CUDA build image +ARG BASE_CUDA_DEV_CONTAINER=nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION} +# Target the CUDA runtime image +ARG BASE_CUDA_RUN_CONTAINER=nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu${UBUNTU_VERSION} + +FROM ${BASE_CUDA_DEV_CONTAINER} AS build + +# CUDA architecture to build for (defaults to all supported archs) +ARG CUDA_DOCKER_ARCH=default + +RUN apt-get update && \ + apt-get install -y build-essential git cmake + +WORKDIR /app + +COPY . . + +# Use the default CUDA archs if not specified +RUN if [ "${CUDA_DOCKER_ARCH}" != "default" ]; then \ + export CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=${CUDA_DOCKER_ARCH}"; \ + fi && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake --build build --config Release --target llama-cli -j$(nproc) && \ + mkdir -p /app/lib && \ + find build -name "*.so" -exec cp {} /app/lib \; + +FROM ${BASE_CUDA_RUN_CONTAINER} AS runtime + +RUN apt-get update && \ + apt-get install -y libgomp1 + +COPY --from=build /app/lib/ / +COPY --from=build /app/build/bin/llama-cli / + +ENTRYPOINT [ "/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cli-intel.Dockerfile b/llama.cpp/.devops/llama-cli-intel.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..0706f732a98f087b24eac306a5ca63795bcc9dc2 --- /dev/null +++ b/llama.cpp/.devops/llama-cli-intel.Dockerfile @@ -0,0 +1,28 @@ +ARG ONEAPI_VERSION=2025.0.0-0-devel-ubuntu22.04 + +FROM intel/oneapi-basekit:$ONEAPI_VERSION AS build + +ARG GGML_SYCL_F16=OFF +RUN apt-get update && \ + apt-get install -y git + +WORKDIR /app + +COPY . . + +RUN if [ "${GGML_SYCL_F16}" = "ON" ]; then \ + echo "GGML_SYCL_F16 is set" && \ + export OPT_SYCL_F16="-DGGML_SYCL_F16=ON"; \ + fi && \ + echo "Building with static libs" && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx \ + ${OPT_SYCL_F16} -DBUILD_SHARED_LIBS=OFF && \ + cmake --build build --config Release --target llama-cli + +FROM intel/oneapi-basekit:$ONEAPI_VERSION AS runtime + +COPY --from=build /app/build/bin/llama-cli /llama-cli + +ENV LC_ALL=C.utf8 + +ENTRYPOINT [ "/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cli-musa.Dockerfile b/llama.cpp/.devops/llama-cli-musa.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e7c75af20e2650258cedc4dbe3d96b45d424f067 --- /dev/null +++ b/llama.cpp/.devops/llama-cli-musa.Dockerfile @@ -0,0 +1,38 @@ +ARG UBUNTU_VERSION=22.04 +# This needs to generally match the container host's environment. +ARG MUSA_VERSION=rc3.1.0 +# Target the MUSA build image +ARG BASE_MUSA_DEV_CONTAINER=mthreads/musa:${MUSA_VERSION}-devel-ubuntu${UBUNTU_VERSION} +# Target the MUSA runtime image +ARG BASE_MUSA_RUN_CONTAINER=mthreads/musa:${MUSA_VERSION}-runtime-ubuntu${UBUNTU_VERSION} + +FROM ${BASE_MUSA_DEV_CONTAINER} AS build + +# MUSA architecture to build for (defaults to all supported archs) +ARG MUSA_DOCKER_ARCH=default + +RUN apt-get update && \ + apt-get install -y build-essential git cmake + +WORKDIR /app + +COPY . . + +# Use the default MUSA archs if not specified +RUN if [ "${MUSA_DOCKER_ARCH}" != "default" ]; then \ + export CMAKE_ARGS="-DMUSA_ARCHITECTURES=${MUSA_DOCKER_ARCH}"; \ + fi && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake --build build --config Release --target llama-cli -j$(nproc) && \ + mkdir -p /app/lib && \ + find build -name "*.so" -exec cp {} /app/lib \; + +FROM ${BASE_MUSA_RUN_CONTAINER} AS runtime + +RUN apt-get update && \ + apt-get install -y libgomp1 + +COPY --from=build /app/lib/ / +COPY --from=build /app/build/bin/llama-cli /llama-cli + +ENTRYPOINT [ "/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cli-rocm.Dockerfile b/llama.cpp/.devops/llama-cli-rocm.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e60c747bdbf11bc72a17258678b4a8fc909a5c6a --- /dev/null +++ b/llama.cpp/.devops/llama-cli-rocm.Dockerfile @@ -0,0 +1,45 @@ +ARG UBUNTU_VERSION=22.04 + +# This needs to generally match the container host's environment. +ARG ROCM_VERSION=5.6 + +# Target the CUDA build image +ARG BASE_ROCM_DEV_CONTAINER=rocm/dev-ubuntu-${UBUNTU_VERSION}:${ROCM_VERSION}-complete + +FROM ${BASE_ROCM_DEV_CONTAINER} AS build + +# Unless otherwise specified, we make a fat build. +# List from https://github.com/ggerganov/llama.cpp/pull/1087#issuecomment-1682807878 +# This is mostly tied to rocBLAS supported archs. +ARG ROCM_DOCKER_ARCH="\ + gfx803 \ + gfx900 \ + gfx906 \ + gfx908 \ + gfx90a \ + gfx1010 \ + gfx1030 \ + gfx1100 \ + gfx1101 \ + gfx1102" + +COPY requirements.txt requirements.txt +COPY requirements requirements + +RUN pip install --upgrade pip setuptools wheel \ + && pip install -r requirements.txt + +WORKDIR /app + +COPY . . + +# Set nvcc architecture +ENV AMDGPU_TARGETS=${ROCM_DOCKER_ARCH} +# Enable ROCm +ENV GGML_HIPBLAS=1 +ENV CC=/opt/rocm/llvm/bin/clang +ENV CXX=/opt/rocm/llvm/bin/clang++ + +RUN make -j$(nproc) llama-cli + +ENTRYPOINT [ "/app/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cli-vulkan.Dockerfile b/llama.cpp/.devops/llama-cli-vulkan.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..92a6e0479349142cd017efa871bee01b23d07d05 --- /dev/null +++ b/llama.cpp/.devops/llama-cli-vulkan.Dockerfile @@ -0,0 +1,27 @@ +ARG UBUNTU_VERSION=jammy + +FROM ubuntu:$UBUNTU_VERSION AS build + +# Install build tools +RUN apt update && apt install -y git build-essential cmake wget libgomp1 + +# Install Vulkan SDK +RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + apt update -y && \ + apt-get install -y vulkan-sdk + +# Build it +WORKDIR /app +COPY . . +RUN cmake -B build -DGGML_NATIVE=OFF -DGGML_VULKAN=1 && \ + cmake --build build --config Release --target llama-cli + +# Clean up +WORKDIR / +RUN cp /app/build/bin/llama-cli /llama-cli && \ + rm -rf /app + +ENV LC_ALL=C.utf8 + +ENTRYPOINT [ "/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cli.Dockerfile b/llama.cpp/.devops/llama-cli.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7f741aa46ecf0e81de24a5697cfa4c9cebcf5def --- /dev/null +++ b/llama.cpp/.devops/llama-cli.Dockerfile @@ -0,0 +1,23 @@ +ARG UBUNTU_VERSION=22.04 + +FROM ubuntu:$UBUNTU_VERSION AS build + +RUN apt-get update && \ + apt-get install -y build-essential git + +WORKDIR /app + +COPY . . + +RUN make -j$(nproc) llama-cli + +FROM ubuntu:$UBUNTU_VERSION AS runtime + +RUN apt-get update && \ + apt-get install -y libgomp1 + +COPY --from=build /app/llama-cli /llama-cli + +ENV LC_ALL=C.utf8 + +ENTRYPOINT [ "/llama-cli" ] diff --git a/llama.cpp/.devops/llama-cpp-cuda.srpm.spec b/llama.cpp/.devops/llama-cpp-cuda.srpm.spec new file mode 100644 index 0000000000000000000000000000000000000000..7425d3a9d7a4027fcff13077ffec3caf6e66d02f --- /dev/null +++ b/llama.cpp/.devops/llama-cpp-cuda.srpm.spec @@ -0,0 +1,83 @@ +# SRPM for building from source and packaging an RPM for RPM-based distros. +# https://docs.fedoraproject.org/en-US/quick-docs/creating-rpm-packages +# Built and maintained by John Boero - boeroboy@gmail.com +# In honor of Seth Vidal https://www.redhat.com/it/blog/thank-you-seth-vidal + +# Notes for llama.cpp: +# 1. Tags are currently based on hash - which will not sort asciibetically. +# We need to declare standard versioning if people want to sort latest releases. +# 2. Builds for CUDA/OpenCL support are separate, with different depenedencies. +# 3. NVidia's developer repo must be enabled with nvcc, cublas, clblas, etc installed. +# Example: https://developer.download.nvidia.com/compute/cuda/repos/fedora37/x86_64/cuda-fedora37.repo +# 4. OpenCL/CLBLAST support simply requires the ICD loader and basic opencl libraries. +# It is up to the user to install the correct vendor-specific support. + +Name: llama.cpp-cuda +Version: %( date "+%%Y%%m%%d" ) +Release: 1%{?dist} +Summary: CPU Inference of LLaMA model in pure C/C++ (no CUDA/OpenCL) +License: MIT +Source0: https://github.com/ggerganov/llama.cpp/archive/refs/heads/master.tar.gz +BuildRequires: coreutils make gcc-c++ git cuda-toolkit +Requires: cuda-toolkit +URL: https://github.com/ggerganov/llama.cpp + +%define debug_package %{nil} +%define source_date_epoch_from_changelog 0 + +%description +CPU inference for Meta's Lllama2 models using default options. + +%prep +%setup -n llama.cpp-master + +%build +make -j GGML_CUDA=1 + +%install +mkdir -p %{buildroot}%{_bindir}/ +cp -p llama-cli %{buildroot}%{_bindir}/llama-cuda-cli +cp -p llama-server %{buildroot}%{_bindir}/llama-cuda-server +cp -p llama-simple %{buildroot}%{_bindir}/llama-cuda-simple + +mkdir -p %{buildroot}/usr/lib/systemd/system +%{__cat} < %{buildroot}/usr/lib/systemd/system/llamacuda.service +[Unit] +Description=Llama.cpp server, CPU only (no GPU support in this build). +After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.target + +[Service] +Type=simple +EnvironmentFile=/etc/sysconfig/llama +ExecStart=/usr/bin/llama-cuda-server $LLAMA_ARGS +ExecReload=/bin/kill -s HUP $MAINPID +Restart=never + +[Install] +WantedBy=default.target +EOF + +mkdir -p %{buildroot}/etc/sysconfig +%{__cat} < %{buildroot}/etc/sysconfig/llama +LLAMA_ARGS="-m /opt/llama2/ggml-model-f32.bin" +EOF + +%clean +rm -rf %{buildroot} +rm -rf %{_builddir}/* + +%files +%{_bindir}/llama-cuda-cli +%{_bindir}/llama-cuda-server +%{_bindir}/llama-cuda-simple +/usr/lib/systemd/system/llamacuda.service +%config /etc/sysconfig/llama + +%pre + +%post + +%preun +%postun + +%changelog diff --git a/llama.cpp/.devops/llama-cpp.srpm.spec b/llama.cpp/.devops/llama-cpp.srpm.spec new file mode 100644 index 0000000000000000000000000000000000000000..4d5560089816c6679bd02b673dc57a2206ebfbe7 --- /dev/null +++ b/llama.cpp/.devops/llama-cpp.srpm.spec @@ -0,0 +1,85 @@ +# SRPM for building from source and packaging an RPM for RPM-based distros. +# https://docs.fedoraproject.org/en-US/quick-docs/creating-rpm-packages +# Built and maintained by John Boero - boeroboy@gmail.com +# In honor of Seth Vidal https://www.redhat.com/it/blog/thank-you-seth-vidal + +# Notes for llama.cpp: +# 1. Tags are currently based on hash - which will not sort asciibetically. +# We need to declare standard versioning if people want to sort latest releases. +# In the meantime, YYYYMMDD format will be used. +# 2. Builds for CUDA/OpenCL support are separate, with different depenedencies. +# 3. NVidia's developer repo must be enabled with nvcc, cublas, clblas, etc installed. +# Example: https://developer.download.nvidia.com/compute/cuda/repos/fedora37/x86_64/cuda-fedora37.repo +# 4. OpenCL/CLBLAST support simply requires the ICD loader and basic opencl libraries. +# It is up to the user to install the correct vendor-specific support. + +Name: llama.cpp +Version: %( date "+%%Y%%m%%d" ) +Release: 1%{?dist} +Summary: CPU Inference of LLaMA model in pure C/C++ (no CUDA/OpenCL) +License: MIT +Source0: https://github.com/ggerganov/llama.cpp/archive/refs/heads/master.tar.gz +BuildRequires: coreutils make gcc-c++ git libstdc++-devel +Requires: libstdc++ +URL: https://github.com/ggerganov/llama.cpp + +%define debug_package %{nil} +%define source_date_epoch_from_changelog 0 + +%description +CPU inference for Meta's Lllama2 models using default options. +Models are not included in this package and must be downloaded separately. + +%prep +%setup -n llama.cpp-master + +%build +make -j + +%install +mkdir -p %{buildroot}%{_bindir}/ +cp -p llama-cli %{buildroot}%{_bindir}/llama-cli +cp -p llama-server %{buildroot}%{_bindir}/llama-server +cp -p llama-simple %{buildroot}%{_bindir}/llama-simple + +mkdir -p %{buildroot}/usr/lib/systemd/system +%{__cat} < %{buildroot}/usr/lib/systemd/system/llama.service +[Unit] +Description=Llama.cpp server, CPU only (no GPU support in this build). +After=syslog.target network.target local-fs.target remote-fs.target nss-lookup.target + +[Service] +Type=simple +EnvironmentFile=/etc/sysconfig/llama +ExecStart=/usr/bin/llama-server $LLAMA_ARGS +ExecReload=/bin/kill -s HUP $MAINPID +Restart=never + +[Install] +WantedBy=default.target +EOF + +mkdir -p %{buildroot}/etc/sysconfig +%{__cat} < %{buildroot}/etc/sysconfig/llama +LLAMA_ARGS="-m /opt/llama2/ggml-model-f32.bin" +EOF + +%clean +rm -rf %{buildroot} +rm -rf %{_builddir}/* + +%files +%{_bindir}/llama-cli +%{_bindir}/llama-server +%{_bindir}/llama-simple +/usr/lib/systemd/system/llama.service +%config /etc/sysconfig/llama + +%pre + +%post + +%preun +%postun + +%changelog diff --git a/llama.cpp/.devops/llama-server-cuda.Dockerfile b/llama.cpp/.devops/llama-server-cuda.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..bf8a198f99f7387c04a3048ac58d287e2f34e08c --- /dev/null +++ b/llama.cpp/.devops/llama-server-cuda.Dockerfile @@ -0,0 +1,43 @@ +ARG UBUNTU_VERSION=22.04 +# This needs to generally match the container host's environment. +ARG CUDA_VERSION=12.6.0 +# Target the CUDA build image +ARG BASE_CUDA_DEV_CONTAINER=nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION} +# Target the CUDA runtime image +ARG BASE_CUDA_RUN_CONTAINER=nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu${UBUNTU_VERSION} + +FROM ${BASE_CUDA_DEV_CONTAINER} AS build + +# CUDA architecture to build for (defaults to all supported archs) +ARG CUDA_DOCKER_ARCH=default + +RUN apt-get update && \ + apt-get install -y build-essential git cmake libcurl4-openssl-dev + +WORKDIR /app + +COPY . . + +# Use the default CUDA archs if not specified +RUN if [ "${CUDA_DOCKER_ARCH}" != "default" ]; then \ + export CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=${CUDA_DOCKER_ARCH}"; \ + fi && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake --build build --config Release --target llama-server -j$(nproc) && \ + mkdir -p /app/lib && \ + find build -name "*.so" -exec cp {} /app/lib \; + +FROM ${BASE_CUDA_RUN_CONTAINER} AS runtime + +RUN apt-get update && \ + apt-get install -y libcurl4-openssl-dev libgomp1 curl + +COPY --from=build /app/lib/ / +COPY --from=build /app/build/bin/llama-server /llama-server + +# Must be set to 0.0.0.0 so it can listen to requests from host machine +ENV LLAMA_ARG_HOST=0.0.0.0 + +HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] + +ENTRYPOINT [ "/llama-server" ] diff --git a/llama.cpp/.devops/llama-server-intel.Dockerfile b/llama.cpp/.devops/llama-server-intel.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..b503b8cfe1084262ac83838cda99358a40470d60 --- /dev/null +++ b/llama.cpp/.devops/llama-server-intel.Dockerfile @@ -0,0 +1,34 @@ +ARG ONEAPI_VERSION=2025.0.0-0-devel-ubuntu22.04 + +FROM intel/oneapi-basekit:$ONEAPI_VERSION AS build + +ARG GGML_SYCL_F16=OFF +RUN apt-get update && \ + apt-get install -y git libcurl4-openssl-dev + +WORKDIR /app + +COPY . . + +RUN if [ "${GGML_SYCL_F16}" = "ON" ]; then \ + echo "GGML_SYCL_F16 is set" && \ + export OPT_SYCL_F16="-DGGML_SYCL_F16=ON"; \ + fi && \ + echo "Building with dynamic libs" && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DLLAMA_CURL=ON ${OPT_SYCL_F16} && \ + cmake --build build --config Release --target llama-server + +FROM intel/oneapi-basekit:$ONEAPI_VERSION AS runtime + +RUN apt-get update && \ + apt-get install -y libcurl4-openssl-dev curl + +COPY --from=build /app/build/bin/llama-server /llama-server + +ENV LC_ALL=C.utf8 +# Must be set to 0.0.0.0 so it can listen to requests from host machine +ENV LLAMA_ARG_HOST=0.0.0.0 + +HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] + +ENTRYPOINT [ "/llama-server" ] diff --git a/llama.cpp/.devops/llama-server-musa.Dockerfile b/llama.cpp/.devops/llama-server-musa.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..cebe51d42fa95ac51d7ffa8d4f2495c335a6e8f3 --- /dev/null +++ b/llama.cpp/.devops/llama-server-musa.Dockerfile @@ -0,0 +1,43 @@ +ARG UBUNTU_VERSION=22.04 +# This needs to generally match the container host's environment. +ARG MUSA_VERSION=rc3.1.0 +# Target the MUSA build image +ARG BASE_MUSA_DEV_CONTAINER=mthreads/musa:${MUSA_VERSION}-devel-ubuntu${UBUNTU_VERSION} +# Target the MUSA runtime image +ARG BASE_MUSA_RUN_CONTAINER=mthreads/musa:${MUSA_VERSION}-runtime-ubuntu${UBUNTU_VERSION} + +FROM ${BASE_MUSA_DEV_CONTAINER} AS build + +# MUSA architecture to build for (defaults to all supported archs) +ARG MUSA_DOCKER_ARCH=default + +RUN apt-get update && \ + apt-get install -y build-essential git cmake libcurl4-openssl-dev + +WORKDIR /app + +COPY . . + +# Use the default MUSA archs if not specified +RUN if [ "${MUSA_DOCKER_ARCH}" != "default" ]; then \ + export CMAKE_ARGS="-DMUSA_ARCHITECTURES=${MUSA_DOCKER_ARCH}"; \ + fi && \ + cmake -B build -DGGML_NATIVE=OFF -DGGML_MUSA=ON -DLLAMA_CURL=ON ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ + cmake --build build --config Release --target llama-server -j$(nproc) && \ + mkdir -p /app/lib && \ + find build -name "*.so" -exec cp {} /app/lib \; + +FROM ${BASE_MUSA_RUN_CONTAINER} AS runtime + +RUN apt-get update && \ + apt-get install -y libcurl4-openssl-dev libgomp1 curl + +COPY --from=build /app/lib/ / +COPY --from=build /app/build/bin/llama-server /llama-server + +# Must be set to 0.0.0.0 so it can listen to requests from host machine +ENV LLAMA_ARG_HOST=0.0.0.0 + +HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] + +ENTRYPOINT [ "/llama-server" ] diff --git a/llama.cpp/.devops/llama-server-rocm.Dockerfile b/llama.cpp/.devops/llama-server-rocm.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8553af75b61fc51d1d0319926f4f7a7edd75e34b --- /dev/null +++ b/llama.cpp/.devops/llama-server-rocm.Dockerfile @@ -0,0 +1,54 @@ +ARG UBUNTU_VERSION=22.04 + +# This needs to generally match the container host's environment. +ARG ROCM_VERSION=5.6 + +# Target the CUDA build image +ARG BASE_ROCM_DEV_CONTAINER=rocm/dev-ubuntu-${UBUNTU_VERSION}:${ROCM_VERSION}-complete + +FROM ${BASE_ROCM_DEV_CONTAINER} AS build + +# Unless otherwise specified, we make a fat build. +# List from https://github.com/ggerganov/llama.cpp/pull/1087#issuecomment-1682807878 +# This is mostly tied to rocBLAS supported archs. +ARG ROCM_DOCKER_ARCH="\ + gfx803 \ + gfx900 \ + gfx906 \ + gfx908 \ + gfx90a \ + gfx1010 \ + gfx1030 \ + gfx1100 \ + gfx1101 \ + gfx1102" + +COPY requirements.txt requirements.txt +COPY requirements requirements + +RUN pip install --upgrade pip setuptools wheel \ + && pip install -r requirements.txt + +WORKDIR /app + +COPY . . + +# Set nvcc architecture +ENV AMDGPU_TARGETS=${ROCM_DOCKER_ARCH} +# Enable ROCm +ENV GGML_HIPBLAS=1 +ENV CC=/opt/rocm/llvm/bin/clang +ENV CXX=/opt/rocm/llvm/bin/clang++ +# Must be set to 0.0.0.0 so it can listen to requests from host machine +ENV LLAMA_ARG_HOST=0.0.0.0 + +# Enable cURL +ENV LLAMA_CURL=1 +RUN apt-get update && \ + apt-get install -y libcurl4-openssl-dev curl + +RUN make -j$(nproc) llama-server + +HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] + +ENTRYPOINT [ "/app/llama-server" ] diff --git a/llama.cpp/.devops/llama-server-vulkan.Dockerfile b/llama.cpp/.devops/llama-server-vulkan.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..6aa7867791a38ef734cbeec6a12c22c2d317abc5 --- /dev/null +++ b/llama.cpp/.devops/llama-server-vulkan.Dockerfile @@ -0,0 +1,31 @@ +ARG UBUNTU_VERSION=jammy + +FROM ubuntu:$UBUNTU_VERSION AS build + +# Install build tools +RUN apt update && apt install -y git build-essential cmake wget + +# Install Vulkan SDK and cURL +RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \ + wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list && \ + apt update -y && \ + apt-get install -y vulkan-sdk libcurl4-openssl-dev curl + +# Build it +WORKDIR /app +COPY . . +RUN cmake -B build -DGGML_NATIVE=OFF -DGGML_VULKAN=1 -DLLAMA_CURL=1 && \ + cmake --build build --config Release --target llama-server + +# Clean up +WORKDIR / +RUN cp /app/build/bin/llama-server /llama-server && \ + rm -rf /app + +ENV LC_ALL=C.utf8 +# Must be set to 0.0.0.0 so it can listen to requests from host machine +ENV LLAMA_ARG_HOST=0.0.0.0 + +HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] + +ENTRYPOINT [ "/llama-server" ] diff --git a/llama.cpp/.devops/llama-server.Dockerfile b/llama.cpp/.devops/llama-server.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7110dda9e225cdf4353ec50427209ade003c05e8 --- /dev/null +++ b/llama.cpp/.devops/llama-server.Dockerfile @@ -0,0 +1,41 @@ +ARG UBUNTU_VERSION=22.04 + +FROM ubuntu:$UBUNTU_VERSION AS build + +RUN apt-get update && \ + apt-get install -y build-essential git cmake libcurl4-openssl-dev + +WORKDIR /app + +COPY . . + + +RUN \ + # Build multiple versions of the CPU backend + scripts/build-cpu.sh avx -DGGML_AVX=ON -DGGML_AVX2=OFF && \ + scripts/build-cpu.sh avx2 -DGGML_AVX=ON -DGGML_AVX2=ON && \ + scripts/build-cpu.sh avx512 -DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=ON && \ + scripts/build-cpu.sh amx -DGGML_AVX=ON -DGGML_AVX2=ON -DGGML_AVX512=ON -DGGML_AVX_VNNI=ON -DGGML_AVX512_VNNI=ON -DGGML_AMX_TILE=ON -DGGML_AMX_INT8=ON && \ + # Build llama-server + cmake -S . -B build -DGGML_BACKEND_DL=ON -DGGML_NATIVE=OFF -DLLAMA_CURL=ON -DCMAKE_BUILD_TYPE=Release && \ + cmake --build build --target llama-server -j $(nproc) && \ + # Copy the built libraries to /app/lib + mkdir -p /app/lib && \ + mv libggml-cpu* /app/lib/ && \ + find build -name "*.so" -exec cp {} /app/lib/ \; + +FROM ubuntu:$UBUNTU_VERSION AS runtime + +RUN apt-get update && \ + apt-get install -y libcurl4-openssl-dev libgomp1 curl + +COPY --from=build /app/build/bin/llama-server /llama-server +COPY --from=build /app/lib/ / + +ENV LC_ALL=C.utf8 +# Must be set to 0.0.0.0 so it can listen to requests from host machine +ENV LLAMA_ARG_HOST=0.0.0.0 + +HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] + +ENTRYPOINT [ "/llama-server" ] diff --git a/llama.cpp/.devops/nix/apps.nix b/llama.cpp/.devops/nix/apps.nix new file mode 100644 index 0000000000000000000000000000000000000000..0ecf19fc56d554c69aeef8a03b253fc15338688e --- /dev/null +++ b/llama.cpp/.devops/nix/apps.nix @@ -0,0 +1,21 @@ +{ + perSystem = + { config, lib, ... }: + { + apps = + let + inherit (config.packages) default; + binaries = [ + "llama-cli" + "llama-embedding" + "llama-server" + "llama-quantize" + ]; + mkApp = name: { + type = "app"; + program = "${default}/bin/${name}"; + }; + in + lib.genAttrs binaries mkApp; + }; +} diff --git a/llama.cpp/.devops/nix/devshells.nix b/llama.cpp/.devops/nix/devshells.nix new file mode 100644 index 0000000000000000000000000000000000000000..bfd304af14dcda59e284d30b9fc7491466bf71d1 --- /dev/null +++ b/llama.cpp/.devops/nix/devshells.nix @@ -0,0 +1,52 @@ +{ inputs, ... }: + +{ + perSystem = + { + config, + lib, + system, + ... + }: + { + devShells = + let + pkgs = import inputs.nixpkgs { inherit system; }; + stdenv = pkgs.stdenv; + scripts = config.packages.python-scripts; + in + lib.pipe (config.packages) [ + (lib.concatMapAttrs ( + name: package: { + ${name} = pkgs.mkShell { + name = "${name}"; + inputsFrom = [ package ]; + shellHook = '' + echo "Entering ${name} devShell" + ''; + }; + "${name}-extra" = + if (name == "python-scripts") then + null + else + pkgs.mkShell { + name = "${name}-extra"; + inputsFrom = [ + package + scripts + ]; + # Extra packages that *may* be used by some scripts + packages = [ + pkgs.python3Packages.tiktoken + ]; + shellHook = '' + echo "Entering ${name} devShell" + addToSearchPath "LD_LIBRARY_PATH" "${lib.getLib stdenv.cc.cc}/lib" + ''; + }; + } + )) + (lib.filterAttrs (name: value: value != null)) + ]; + }; +} diff --git a/llama.cpp/.devops/nix/docker.nix b/llama.cpp/.devops/nix/docker.nix new file mode 100644 index 0000000000000000000000000000000000000000..d607b4575772c5330e962649ff6e14e5562ecfad --- /dev/null +++ b/llama.cpp/.devops/nix/docker.nix @@ -0,0 +1,37 @@ +{ + lib, + dockerTools, + buildEnv, + llama-cpp, + interactive ? true, + coreutils, +}: + +# A tar that can be fed into `docker load`: +# +# $ nix build .#llamaPackages.docker +# $ docker load < result + +# For details and variations cf. +# - https://nixos.org/manual/nixpkgs/unstable/#ssec-pkgs-dockerTools-buildLayeredImage +# - https://discourse.nixos.org/t/a-faster-dockertools-buildimage-prototype/16922 +# - https://nixery.dev/ + +# Approximate (compressed) sizes, at the time of writing, are: +# +# .#llamaPackages.docker: 125M; +# .#llamaPackagesCuda.docker: 537M; +# .#legacyPackages.aarch64-linux.llamaPackagesXavier.docker: 415M. + +dockerTools.buildLayeredImage { + name = llama-cpp.pname; + tag = "latest"; + + contents = + [ llama-cpp ] + ++ lib.optionals interactive [ + coreutils + dockerTools.binSh + dockerTools.caCertificates + ]; +} diff --git a/llama.cpp/.devops/nix/jetson-support.nix b/llama.cpp/.devops/nix/jetson-support.nix new file mode 100644 index 0000000000000000000000000000000000000000..78e2e40e03864e3df046389f7b751a1fd4575656 --- /dev/null +++ b/llama.cpp/.devops/nix/jetson-support.nix @@ -0,0 +1,39 @@ +{ inputs, ... }: +{ + perSystem = + { + config, + system, + lib, + pkgsCuda, + ... + }: + { + legacyPackages = + let + caps.llamaPackagesXavier = "7.2"; + caps.llamaPackagesOrin = "8.7"; + caps.llamaPackagesTX2 = "6.2"; + caps.llamaPackagesNano = "5.3"; + + pkgsFor = + cap: + import inputs.nixpkgs { + inherit system; + config = { + cudaSupport = true; + cudaCapabilities = [ cap ]; + cudaEnableForwardCompat = false; + inherit (pkgsCuda.config) allowUnfreePredicate; + }; + }; + in + builtins.mapAttrs (name: cap: (pkgsFor cap).callPackage ./scope.nix { }) caps; + + packages = lib.optionalAttrs (system == "aarch64-linux") { + jetson-xavier = config.legacyPackages.llamaPackagesXavier.llama-cpp; + jetson-orin = config.legacyPackages.llamaPackagesOrin.llama-cpp; + jetson-nano = config.legacyPackages.llamaPackagesNano.llama-cpp; + }; + }; +} diff --git a/llama.cpp/.devops/nix/nixpkgs-instances.nix b/llama.cpp/.devops/nix/nixpkgs-instances.nix new file mode 100644 index 0000000000000000000000000000000000000000..90d683a713aa1f6f7b7e263549afe5edef0a4033 --- /dev/null +++ b/llama.cpp/.devops/nix/nixpkgs-instances.nix @@ -0,0 +1,45 @@ +{ inputs, ... }: +{ + # The _module.args definitions are passed on to modules as arguments. E.g. + # the module `{ pkgs ... }: { /* config */ }` implicitly uses + # `_module.args.pkgs` (defined in this case by flake-parts). + perSystem = + { system, ... }: + { + _module.args = { + # Note: bringing up https://zimbatm.com/notes/1000-instances-of-nixpkgs + # again, the below creates several nixpkgs instances which the + # flake-centric CLI will be forced to evaluate e.g. on `nix flake show`. + # + # This is currently "slow" and "expensive", on a certain scale. + # This also isn't "right" in that this hinders dependency injection at + # the level of flake inputs. This might get removed in the foreseeable + # future. + # + # Note that you can use these expressions without Nix + # (`pkgs.callPackage ./devops/nix/scope.nix { }` is the entry point). + + pkgsCuda = import inputs.nixpkgs { + inherit system; + # Ensure dependencies use CUDA consistently (e.g. that openmpi, ucc, + # and ucx are built with CUDA support) + config.cudaSupport = true; + config.allowUnfreePredicate = + p: + builtins.all ( + license: + license.free + || builtins.elem license.shortName [ + "CUDA EULA" + "cuDNN EULA" + ] + ) (p.meta.licenses or [ p.meta.license ]); + }; + # Ensure dependencies use ROCm consistently + pkgsRocm = import inputs.nixpkgs { + inherit system; + config.rocmSupport = true; + }; + }; + }; +} diff --git a/llama.cpp/.devops/nix/package-gguf-py.nix b/llama.cpp/.devops/nix/package-gguf-py.nix new file mode 100644 index 0000000000000000000000000000000000000000..cca2f36a5bd4df214b3b7da84aa7a05d242fce0e --- /dev/null +++ b/llama.cpp/.devops/nix/package-gguf-py.nix @@ -0,0 +1,36 @@ +{ + lib, + llamaVersion, + numpy, + tqdm, + sentencepiece, + pyyaml, + poetry-core, + buildPythonPackage, + pytestCheckHook, +}: + +buildPythonPackage { + pname = "gguf"; + version = llamaVersion; + pyproject = true; + nativeBuildInputs = [ poetry-core ]; + propagatedBuildInputs = [ + numpy + tqdm + sentencepiece + pyyaml + ]; + src = lib.cleanSource ../../gguf-py; + pythonImportsCheck = [ + "numpy" + "gguf" + ]; + nativeCheckInputs = [ pytestCheckHook ]; + doCheck = true; + meta = with lib; { + description = "Python package for writing binary files in the GGUF format"; + license = licenses.mit; + maintainers = [ maintainers.ditsuke ]; + }; +} diff --git a/llama.cpp/.devops/nix/package.nix b/llama.cpp/.devops/nix/package.nix new file mode 100644 index 0000000000000000000000000000000000000000..b88e6ca809f1f0b74bb56de643a72ad69f52ef90 --- /dev/null +++ b/llama.cpp/.devops/nix/package.nix @@ -0,0 +1,246 @@ +{ + lib, + glibc, + config, + stdenv, + runCommand, + cmake, + ninja, + pkg-config, + git, + mpi, + blas, + cudaPackages, + autoAddDriverRunpath, + darwin, + rocmPackages, + vulkan-headers, + vulkan-loader, + curl, + shaderc, + useBlas ? + builtins.all (x: !x) [ + useCuda + useMetalKit + useRocm + useVulkan + ] + && blas.meta.available, + useCuda ? config.cudaSupport, + useMetalKit ? stdenv.isAarch64 && stdenv.isDarwin, + # Increases the runtime closure size by ~700M + useMpi ? false, + useRocm ? config.rocmSupport, + enableCurl ? true, + useVulkan ? false, + llamaVersion ? "0.0.0", # Arbitrary version, substituted by the flake + + # It's necessary to consistently use backendStdenv when building with CUDA support, + # otherwise we get libstdc++ errors downstream. + effectiveStdenv ? if useCuda then cudaPackages.backendStdenv else stdenv, + enableStatic ? effectiveStdenv.hostPlatform.isStatic, + precompileMetalShaders ? false, +}: + +let + inherit (lib) + cmakeBool + cmakeFeature + optionals + strings + ; + + stdenv = throw "Use effectiveStdenv instead"; + + suffices = + lib.optionals useBlas [ "BLAS" ] + ++ lib.optionals useCuda [ "CUDA" ] + ++ lib.optionals useMetalKit [ "MetalKit" ] + ++ lib.optionals useMpi [ "MPI" ] + ++ lib.optionals useRocm [ "ROCm" ] + ++ lib.optionals useVulkan [ "Vulkan" ]; + + pnameSuffix = + strings.optionalString (suffices != [ ]) + "-${strings.concatMapStringsSep "-" strings.toLower suffices}"; + descriptionSuffix = strings.optionalString ( + suffices != [ ] + ) ", accelerated with ${strings.concatStringsSep ", " suffices}"; + + xcrunHost = runCommand "xcrunHost" { } '' + mkdir -p $out/bin + ln -s /usr/bin/xcrun $out/bin + ''; + + # apple_sdk is supposed to choose sane defaults, no need to handle isAarch64 + # separately + darwinBuildInputs = + with darwin.apple_sdk.frameworks; + [ + Accelerate + CoreVideo + CoreGraphics + ] + ++ optionals useMetalKit [ MetalKit ]; + + cudaBuildInputs = with cudaPackages; [ + cuda_cudart + cuda_cccl # + libcublas + ]; + + rocmBuildInputs = with rocmPackages; [ + clr + hipblas + rocblas + ]; + + vulkanBuildInputs = [ + vulkan-headers + vulkan-loader + shaderc + ]; +in + +effectiveStdenv.mkDerivation (finalAttrs: { + pname = "llama-cpp${pnameSuffix}"; + version = llamaVersion; + + # Note: none of the files discarded here are visible in the sandbox or + # affect the output hash. This also means they can be modified without + # triggering a rebuild. + src = lib.cleanSourceWith { + filter = + name: type: + let + noneOf = builtins.all (x: !x); + baseName = baseNameOf name; + in + noneOf [ + (lib.hasSuffix ".nix" name) # Ignore *.nix files when computing outPaths + (lib.hasSuffix ".md" name) # Ignore *.md changes whe computing outPaths + (lib.hasPrefix "." baseName) # Skip hidden files and directories + (baseName == "flake.lock") + ]; + src = lib.cleanSource ../../.; + }; + + postPatch = '' + substituteInPlace ./ggml/src/ggml-metal/ggml-metal.m \ + --replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/bin/ggml-metal.metal\";" + substituteInPlace ./ggml/src/ggml-metal/ggml-metal.m \ + --replace '[bundle pathForResource:@"default" ofType:@"metallib"];' "@\"$out/bin/default.metallib\";" + ''; + + # With PR#6015 https://github.com/ggerganov/llama.cpp/pull/6015, + # `default.metallib` may be compiled with Metal compiler from XCode + # and we need to escape sandbox on MacOS to access Metal compiler. + # `xcrun` is used find the path of the Metal compiler, which is varible + # and not on $PATH + # see https://github.com/ggerganov/llama.cpp/pull/6118 for discussion + __noChroot = effectiveStdenv.isDarwin && useMetalKit && precompileMetalShaders; + + nativeBuildInputs = + [ + cmake + ninja + pkg-config + git + ] + ++ optionals useCuda [ + cudaPackages.cuda_nvcc + + autoAddDriverRunpath + ] + ++ optionals (effectiveStdenv.hostPlatform.isGnu && enableStatic) [ glibc.static ] + ++ optionals (effectiveStdenv.isDarwin && useMetalKit && precompileMetalShaders) [ xcrunHost ]; + + buildInputs = + optionals effectiveStdenv.isDarwin darwinBuildInputs + ++ optionals useCuda cudaBuildInputs + ++ optionals useMpi [ mpi ] + ++ optionals useRocm rocmBuildInputs + ++ optionals useBlas [ blas ] + ++ optionals useVulkan vulkanBuildInputs + ++ optionals enableCurl [ curl ]; + + cmakeFlags = + [ + (cmakeBool "LLAMA_BUILD_SERVER" true) + (cmakeBool "BUILD_SHARED_LIBS" (!enableStatic)) + (cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + (cmakeBool "LLAMA_CURL" enableCurl) + (cmakeBool "GGML_NATIVE" false) + (cmakeBool "GGML_BLAS" useBlas) + (cmakeBool "GGML_CUDA" useCuda) + (cmakeBool "GGML_HIP" useRocm) + (cmakeBool "GGML_METAL" useMetalKit) + (cmakeBool "GGML_VULKAN" useVulkan) + (cmakeBool "GGML_STATIC" enableStatic) + ] + ++ optionals useCuda [ + ( + with cudaPackages.flags; + cmakeFeature "CMAKE_CUDA_ARCHITECTURES" ( + builtins.concatStringsSep ";" (map dropDot cudaCapabilities) + ) + ) + ] + ++ optionals useRocm [ + (cmakeFeature "CMAKE_HIP_COMPILER" "${rocmPackages.llvm.clang}/bin/clang") + (cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmPackages.clr.gpuTargets)) + ] + ++ optionals useMetalKit [ + (lib.cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") + (cmakeBool "GGML_METAL_EMBED_LIBRARY" (!precompileMetalShaders)) + ]; + + # Environment variables needed for ROCm + env = optionals useRocm { + ROCM_PATH = "${rocmPackages.clr}"; + HIP_DEVICE_LIB_PATH = "${rocmPackages.rocm-device-libs}/amdgcn/bitcode"; + }; + + # TODO(SomeoneSerge): It's better to add proper install targets at the CMake level, + # if they haven't been added yet. + postInstall = '' + mkdir -p $out/include + cp $src/include/llama.h $out/include/ + ''; + + meta = { + # Configurations we don't want even the CI to evaluate. Results in the + # "unsupported platform" messages. This is mostly a no-op, because + # cudaPackages would've refused to evaluate anyway. + badPlatforms = optionals useCuda lib.platforms.darwin; + + # Configurations that are known to result in build failures. Can be + # overridden by importing Nixpkgs with `allowBroken = true`. + broken = (useMetalKit && !effectiveStdenv.isDarwin); + + description = "Inference of LLaMA model in pure C/C++${descriptionSuffix}"; + homepage = "https://github.com/ggerganov/llama.cpp/"; + license = lib.licenses.mit; + + # Accommodates `nix run` and `lib.getExe` + mainProgram = "llama-cli"; + + # These people might respond, on the best effort basis, if you ping them + # in case of Nix-specific regressions or for reviewing Nix-specific PRs. + # Consider adding yourself to this list if you want to ensure this flake + # stays maintained and you're willing to invest your time. Do not add + # other people without their consent. Consider removing people after + # they've been unreachable for long periods of time. + + # Note that lib.maintainers is defined in Nixpkgs, but you may just add + # an attrset following the same format as in + # https://github.com/NixOS/nixpkgs/blob/f36a80e54da29775c78d7eff0e628c2b4e34d1d7/maintainers/maintainer-list.nix + maintainers = with lib.maintainers; [ + philiptaron + SomeoneSerge + ]; + + # Extend `badPlatforms` instead + platforms = lib.platforms.all; + }; +}) diff --git a/llama.cpp/.devops/nix/python-scripts.nix b/llama.cpp/.devops/nix/python-scripts.nix new file mode 100644 index 0000000000000000000000000000000000000000..56ea1827887646424fa08017fe91c4bdcc82c465 --- /dev/null +++ b/llama.cpp/.devops/nix/python-scripts.nix @@ -0,0 +1,66 @@ +{ + lib, + stdenv, + buildPythonPackage, + poetry-core, + mkShell, + python3Packages, + gguf-py, +}@inputs: + +let + llama-python-deps = with python3Packages; [ + numpy + sentencepiece + transformers + protobuf + torchWithoutCuda + gguf-py + tqdm + + # for scripts/compare-llama-bench.py + gitpython + tabulate + + # for examples/pydantic-models-to-grammar-examples.py + docstring-parser + pydantic + + ]; + + llama-python-test-deps = with python3Packages; [ + # Server bench + matplotlib + + # server tests + openai + pytest + prometheus-client + ]; +in + +buildPythonPackage ({ + pname = "llama-scripts"; + version = "0.0.0"; + pyproject = true; + + # NOTE: The files filtered out here are not visible in the build sandbox, neither + # do they affect the output hash. They can be modified without triggering a rebuild. + src = lib.cleanSourceWith { + filter = + name: type: + let + any = builtins.any (x: x); + baseName = builtins.baseNameOf name; + in + any [ + (lib.hasSuffix ".py" name) + (baseName == "README.md") + (baseName == "pyproject.toml") + ]; + src = lib.cleanSource ../../.; + }; + nativeBuildInputs = [ poetry-core ]; + nativeCheckInputs = llama-python-test-deps; + dependencies = llama-python-deps; +}) diff --git a/llama.cpp/.devops/nix/scope.nix b/llama.cpp/.devops/nix/scope.nix new file mode 100644 index 0000000000000000000000000000000000000000..478e8c4228afad449c3bd396d7ed4a12759a5de3 --- /dev/null +++ b/llama.cpp/.devops/nix/scope.nix @@ -0,0 +1,41 @@ +{ + lib, + newScope, + python3, + llamaVersion ? "0.0.0", +}: + +let + pythonPackages = python3.pkgs; + buildPythonPackage = pythonPackages.buildPythonPackage; + numpy = pythonPackages.numpy; + tqdm = pythonPackages.tqdm; + sentencepiece = pythonPackages.sentencepiece; + pyyaml = pythonPackages.pyyaml; + poetry-core = pythonPackages.poetry-core; + pytestCheckHook = pythonPackages.pytestCheckHook; +in + +# We're using `makeScope` instead of just writing out an attrset +# because it allows users to apply overlays later using `overrideScope'`. +# Cf. https://noogle.dev/f/lib/makeScope + +lib.makeScope newScope (self: { + inherit llamaVersion; + gguf-py = self.callPackage ./package-gguf-py.nix { + inherit + buildPythonPackage + numpy + tqdm + sentencepiece + poetry-core + pyyaml + pytestCheckHook + ; + }; + python-scripts = self.callPackage ./python-scripts.nix { inherit buildPythonPackage poetry-core; }; + llama-cpp = self.callPackage ./package.nix { }; + docker = self.callPackage ./docker.nix { }; + docker-min = self.callPackage ./docker.nix { interactive = false; }; + sif = self.callPackage ./sif.nix { }; +}) diff --git a/llama.cpp/.devops/nix/sif.nix b/llama.cpp/.devops/nix/sif.nix new file mode 100644 index 0000000000000000000000000000000000000000..7a5e1dd0ffc4c61e9b88b25d14a10afbd4f8cda9 --- /dev/null +++ b/llama.cpp/.devops/nix/sif.nix @@ -0,0 +1,27 @@ +{ + lib, + singularity-tools, + llama-cpp, + bashInteractive, + interactive ? false, +}: + +let + optionalInt = cond: x: if cond then x else 0; +in +singularity-tools.buildImage rec { + inherit (llama-cpp) name; + contents = [ llama-cpp ] ++ lib.optionals interactive [ bashInteractive ]; + + # These are excessive (but safe) for most variants. Building singularity + # images requires superuser privileges, so we build them inside a VM in a + # writable image of pre-determined size. + # + # ROCm is currently affected by https://github.com/NixOS/nixpkgs/issues/276846 + # + # Expected image sizes: + # - cpu/blas: 150M, + # - cuda, all gencodes: 560M, + diskSize = 4096 + optionalInt llama-cpp.useRocm 16384; + memSize = diskSize; +} diff --git a/llama.cpp/.devops/tools.sh b/llama.cpp/.devops/tools.sh new file mode 100644 index 0000000000000000000000000000000000000000..24dcfd35079cb73236dc80d911480bcbacc7008d --- /dev/null +++ b/llama.cpp/.devops/tools.sh @@ -0,0 +1,41 @@ +#!/bin/bash +set -e + +# Read the first argument into a variable +arg1="$1" + +# Shift the arguments to remove the first one +shift + +if [[ "$arg1" == '--convert' || "$arg1" == '-c' ]]; then + python3 ./convert_hf_to_gguf.py "$@" +elif [[ "$arg1" == '--quantize' || "$arg1" == '-q' ]]; then + ./llama-quantize "$@" +elif [[ "$arg1" == '--run' || "$arg1" == '-r' ]]; then + ./llama-cli "$@" +elif [[ "$arg1" == '--all-in-one' || "$arg1" == '-a' ]]; then + echo "Converting PTH to GGML..." + for i in `ls $1/$2/ggml-model-f16.bin*`; do + if [ -f "${i/f16/q4_0}" ]; then + echo "Skip model quantization, it already exists: ${i/f16/q4_0}" + else + echo "Converting PTH to GGML: $i into ${i/f16/q4_0}..." + ./llama-quantize "$i" "${i/f16/q4_0}" q4_0 + fi + done +elif [[ "$arg1" == '--server' || "$arg1" == '-s' ]]; then + ./llama-server "$@" +else + echo "Unknown command: $arg1" + echo "Available commands: " + echo " --run (-r): Run a model previously converted into ggml" + echo " ex: -m /models/7B/ggml-model-q4_0.bin -p \"Building a website can be done in 10 simple steps:\" -n 512" + echo " --convert (-c): Convert a llama model into ggml" + echo " ex: --outtype f16 \"/models/7B/\" " + echo " --quantize (-q): Optimize with quantization process ggml" + echo " ex: \"/models/7B/ggml-model-f16.bin\" \"/models/7B/ggml-model-q4_0.bin\" 2" + echo " --all-in-one (-a): Execute --convert & --quantize" + echo " ex: \"/models/\" 7B" + echo " --server (-s): Run a model on the server" + echo " ex: -m /models/7B/ggml-model-q4_0.bin -c 2048 -ngl 43 -mg 1 --port 8080" +fi diff --git a/llama.cpp/.dockerignore b/llama.cpp/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..064b7c7be86d02d7bbc17b17a0ca40f638d66611 --- /dev/null +++ b/llama.cpp/.dockerignore @@ -0,0 +1,20 @@ +*.o +*.a +.cache/ +# Do not ignore .git directory, otherwise the reported build number will always be 0 +.github/ +.gitignore +.vs/ +.vscode/ +.DS_Store + +build*/ + +models/* + +/llama-cli +/llama-quantize + +arm_neon.h +compile_commands.json +Dockerfile diff --git a/llama.cpp/.ecrc b/llama.cpp/.ecrc new file mode 100644 index 0000000000000000000000000000000000000000..c68877ec211f1c7f9458b8d59c278fc7e88f38c8 --- /dev/null +++ b/llama.cpp/.ecrc @@ -0,0 +1,6 @@ +{ + "Exclude": ["^\\.gitmodules$", "stb_image\\.h"], + "Disable": { + "IndentSize": true + } +} diff --git a/llama.cpp/.editorconfig b/llama.cpp/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..eac38a15f1a674b16805ba92f9107a147e659203 --- /dev/null +++ b/llama.cpp/.editorconfig @@ -0,0 +1,42 @@ +# https://EditorConfig.org + +# Top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file, utf-8 charset +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 +indent_style = space +indent_size = 4 + +[Makefile] +indent_style = tab + +[scripts/*.mk] +indent_style = tab + +[prompts/*.txt] +insert_final_newline = unset + +[examples/server/public/*] +indent_size = 2 + +[examples/server/public/deps_*] +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset + +[examples/server/deps_*] +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset + +[examples/llama.swiftui/llama.swiftui.xcodeproj/*] +indent_style = tab + +[examples/cvector-generator/*.txt] +trim_trailing_whitespace = unset +insert_final_newline = unset diff --git a/llama.cpp/.flake8 b/llama.cpp/.flake8 new file mode 100644 index 0000000000000000000000000000000000000000..d64c2564aca8f54ff000c93a44c505f65a76c07c --- /dev/null +++ b/llama.cpp/.flake8 @@ -0,0 +1,17 @@ +[flake8] +max-line-length = 125 +ignore = E203,E211,E221,E225,E231,E241,E251,E261,E266,E501,E701,E704,W503 +exclude = + # Do not traverse examples + examples, + # Do not include package initializers + __init__.py, + # No need to traverse our git directory + .git, + # There's no value in checking cache directories + __pycache__, + # No need to include the build path + build, + # This contains builds that we don't want to check + dist # This is generated with `python build .` for package releases +# max-complexity = 10 diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/010-bug-compilation.yml b/llama.cpp/.github/ISSUE_TEMPLATE/010-bug-compilation.yml new file mode 100644 index 0000000000000000000000000000000000000000..f10b3a2b22648204d68908d4b59eae0ef743d071 --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/010-bug-compilation.yml @@ -0,0 +1,77 @@ +name: Bug (compilation) +description: Something goes wrong when trying to compile llama.cpp. +title: "Compile bug: " +labels: ["bug-unconfirmed", "compilation"] +body: + - type: markdown + attributes: + value: > + Thanks for taking the time to fill out this bug report! + This issue template is intended for bug reports where the compilation of llama.cpp fails. + Before opening an issue, please confirm that the compilation still fails with `-DGGML_CCACHE=OFF`. + If the compilation succeeds with ccache disabled you should be able to permanently fix the issue + by clearing `~/.cache/ccache` (on Linux). + - type: textarea + id: commit + attributes: + label: Git commit + description: Which commit are you trying to compile? + placeholder: | + $git rev-parse HEAD + 84a07a17b1b08cf2b9747c633a2372782848a27f + validations: + required: true + - type: dropdown + id: operating-system + attributes: + label: Operating systems + description: Which operating systems do you know to be affected? + multiple: true + options: + - Linux + - Mac + - Windows + - BSD + - Other? (Please let us know in description) + validations: + required: true + - type: dropdown + id: backends + attributes: + label: GGML backends + description: Which GGML backends do you know to be affected? + options: [AMX, BLAS, CPU, CUDA, HIP, Kompute, Metal, Musa, RPC, SYCL, Vulkan] + multiple: true + validations: + required: true + - type: textarea + id: info + attributes: + label: Problem description & steps to reproduce + description: > + Please give us a summary of the problem and tell us how to reproduce it. + If you can narrow down the bug to specific compile flags, that information would be very much appreciated by us. + placeholder: > + I'm trying to compile llama.cpp with CUDA support on a fresh install of Ubuntu and get error XY. + Here are the exact commands that I used: ... + validations: + required: true + - type: textarea + id: first_bad_commit + attributes: + label: First Bad Commit + description: > + If the bug was not present on an earlier version: when did it start appearing? + If possible, please do a git bisect and identify the exact commit that introduced the bug. + validations: + required: false + - type: textarea + id: logs + attributes: + label: Relevant log output + description: > + Please copy and paste any relevant log output, including the command that you entered and any generated text. + This will be automatically formatted into code, so no need for backticks. + render: shell + validations: + required: true diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/011-bug-results.yml b/llama.cpp/.github/ISSUE_TEMPLATE/011-bug-results.yml new file mode 100644 index 0000000000000000000000000000000000000000..1ccef0793d45e890195b104b837cb568ccb11dff --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/011-bug-results.yml @@ -0,0 +1,101 @@ +name: Bug (model use) +description: Something goes wrong when using a model (in general, not specific to a single llama.cpp module). +title: "Eval bug: " +labels: ["bug-unconfirmed", "model evaluation"] +body: + - type: markdown + attributes: + value: > + Thanks for taking the time to fill out this bug report! + This issue template is intended for bug reports where the model evaluation results + (i.e. the generated text) are incorrect or llama.cpp crashes during model evaluation. + If you encountered the issue while using an external UI (e.g. ollama), + please reproduce your issue using one of the examples/binaries in this repository. + The `llama-cli` binary can be used for simple and reproducible model inference. + - type: textarea + id: version + attributes: + label: Name and Version + description: Which version of our software are you running? (use `--version` to get a version string) + placeholder: | + $./llama-cli --version + version: 2999 (42b4109e) + built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu + validations: + required: true + - type: dropdown + id: operating-system + attributes: + label: Operating systems + description: Which operating systems do you know to be affected? + multiple: true + options: + - Linux + - Mac + - Windows + - BSD + - Other? (Please let us know in description) + validations: + required: true + - type: dropdown + id: backends + attributes: + label: GGML backends + description: Which GGML backends do you know to be affected? + options: [AMX, BLAS, CPU, CUDA, HIP, Kompute, Metal, Musa, RPC, SYCL, Vulkan] + multiple: true + validations: + required: true + - type: textarea + id: hardware + attributes: + label: Hardware + description: Which CPUs/GPUs are you using? + placeholder: > + e.g. Ryzen 5950X + 2x RTX 4090 + validations: + required: true + - type: textarea + id: model + attributes: + label: Models + description: > + Which model(s) at which quantization were you using when encountering the bug? + If you downloaded a GGUF file off of Huggingface, please provide a link. + placeholder: > + e.g. Meta LLaMA 3.1 Instruct 8b q4_K_M + validations: + required: false + - type: textarea + id: info + attributes: + label: Problem description & steps to reproduce + description: > + Please give us a summary of the problem and tell us how to reproduce it. + If you can narrow down the bug to specific hardware, compile flags, or command line arguments, + that information would be very much appreciated by us. + placeholder: > + e.g. when I run llama-cli with -ngl 99 I get garbled outputs. + When I use -ngl 0 it works correctly. + Here are the exact commands that I used: ... + validations: + required: true + - type: textarea + id: first_bad_commit + attributes: + label: First Bad Commit + description: > + If the bug was not present on an earlier version: when did it start appearing? + If possible, please do a git bisect and identify the exact commit that introduced the bug. + validations: + required: false + - type: textarea + id: logs + attributes: + label: Relevant log output + description: > + Please copy and paste any relevant log output, including the command that you entered and any generated text. + This will be automatically formatted into code, so no need for backticks. + render: shell + validations: + required: true diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/019-bug-misc.yml b/llama.cpp/.github/ISSUE_TEMPLATE/019-bug-misc.yml new file mode 100644 index 0000000000000000000000000000000000000000..d157ea307e50f179375e407d8341d1ff16c15fa1 --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/019-bug-misc.yml @@ -0,0 +1,81 @@ +name: Bug (misc.) +description: Something is not working the way it should (and it's not covered by any of the above cases). +title: "Misc. bug: " +labels: ["bug-unconfirmed"] +body: + - type: markdown + attributes: + value: > + Thanks for taking the time to fill out this bug report! + This issue template is intended for miscellaneous bugs that don't fit into any other category. + If you encountered the issue while using an external UI (e.g. ollama), + please reproduce your issue using one of the examples/binaries in this repository. + - type: textarea + id: version + attributes: + label: Name and Version + description: Which version of our software is affected? (You can use `--version` to get a version string.) + placeholder: | + $./llama-cli --version + version: 2999 (42b4109e) + built with cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 for x86_64-linux-gnu + validations: + required: true + - type: dropdown + id: operating-system + attributes: + label: Operating systems + description: Which operating systems do you know to be affected? + multiple: true + options: + - Linux + - Mac + - Windows + - BSD + - Other? (Please let us know in description) + validations: + required: false + - type: dropdown + id: module + attributes: + label: Which llama.cpp modules do you know to be affected? + multiple: true + options: + - Documentation/Github + - libllama (core library) + - llama-cli + - llama-server + - llama-bench + - llama-quantize + - Python/Bash scripts + - Test code + - Other (Please specify in the next section) + validations: + required: false + - type: textarea + id: info + attributes: + label: Problem description & steps to reproduce + description: > + Please give us a summary of the problem and tell us how to reproduce it (if applicable). + validations: + required: true + - type: textarea + id: first_bad_commit + attributes: + label: First Bad Commit + description: > + If the bug was not present on an earlier version and it's not trivial to track down: when did it start appearing? + If possible, please do a git bisect and identify the exact commit that introduced the bug. + validations: + required: false + - type: textarea + id: logs + attributes: + label: Relevant log output + description: > + If applicable, please copy and paste any relevant log output, including the command that you entered and any generated text. + This will be automatically formatted into code, so no need for backticks. + render: shell + validations: + required: false diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/020-enhancement.yml b/llama.cpp/.github/ISSUE_TEMPLATE/020-enhancement.yml new file mode 100644 index 0000000000000000000000000000000000000000..02dd4f575a686802a44e0ff66c5725daf7c7934e --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/020-enhancement.yml @@ -0,0 +1,51 @@ +name: Enhancement +description: Used to request enhancements for llama.cpp. +title: "Feature Request: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + [Please post your idea first in Discussion if there is not yet a consensus for this enhancement request. This will help to keep this issue tracker focused on enhancements that the community has agreed needs to be implemented.](https://github.com/ggerganov/llama.cpp/discussions/categories/ideas) + + - type: checkboxes + id: prerequisites + attributes: + label: Prerequisites + description: Please confirm the following before submitting your enhancement request. + options: + - label: I am running the latest code. Mention the version if possible as well. + required: true + - label: I carefully followed the [README.md](https://github.com/ggerganov/llama.cpp/blob/master/README.md). + required: true + - label: I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed). + required: true + - label: I reviewed the [Discussions](https://github.com/ggerganov/llama.cpp/discussions), and have a new and useful enhancement to share. + required: true + + - type: textarea + id: feature-description + attributes: + label: Feature Description + description: Please provide a detailed written description of what you were trying to do, and what you expected `llama.cpp` to do as an enhancement. + placeholder: Detailed description of the enhancement + validations: + required: true + + - type: textarea + id: motivation + attributes: + label: Motivation + description: Please provide a detailed written description of reasons why this feature is necessary and how it is useful to `llama.cpp` users. + placeholder: Explanation of why this feature is needed and its benefits + validations: + required: true + + - type: textarea + id: possible-implementation + attributes: + label: Possible Implementation + description: If you have an idea as to how it can be implemented, please write a detailed description. Feel free to give links to external sources or share visuals that might be helpful to understand the details better. + placeholder: Detailed description of potential implementation + validations: + required: false diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/030-research.yml b/llama.cpp/.github/ISSUE_TEMPLATE/030-research.yml new file mode 100644 index 0000000000000000000000000000000000000000..18975dbbfd0fe536b4aab5c7d36b965c732cee98 --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/030-research.yml @@ -0,0 +1,52 @@ +name: Research +description: Track new technical research area. +title: "Research: " +labels: ["research 🔬"] +body: + - type: markdown + attributes: + value: | + Don't forget to check for any [duplicate research issue tickets](https://github.com/ggerganov/llama.cpp/issues?q=is%3Aopen+is%3Aissue+label%3A%22research+%F0%9F%94%AC%22) + + - type: checkboxes + id: research-stage + attributes: + label: Research Stage + description: Track general state of this research ticket + options: + - label: Background Research (Let's try to avoid reinventing the wheel) + - label: Hypothesis Formed (How do you think this will work and it's effect?) + - label: Strategy / Implementation Forming + - label: Analysis of results + - label: Debrief / Documentation (So people in the future can learn from us) + + - type: textarea + id: background + attributes: + label: Previous existing literature and research + description: Whats the current state of the art and whats the motivation for this research? + + - type: textarea + id: hypothesis + attributes: + label: Hypothesis + description: How do you think this will work and it's effect? + + - type: textarea + id: implementation + attributes: + label: Implementation + description: Got an approach? e.g. a PR ready to go? + + - type: textarea + id: analysis + attributes: + label: Analysis + description: How does the proposed implementation behave? + + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/040-refactor.yml b/llama.cpp/.github/ISSUE_TEMPLATE/040-refactor.yml new file mode 100644 index 0000000000000000000000000000000000000000..b6e6ab36defd6383b4dcbe1ee8628a4692edf7aa --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/040-refactor.yml @@ -0,0 +1,28 @@ +name: Refactor (Maintainers) +description: Used to track refactoring opportunities. +title: "Refactor: " +labels: ["refactor"] +body: + - type: markdown + attributes: + value: | + Don't forget to [check for existing refactor issue tickets](https://github.com/ggerganov/llama.cpp/issues?q=is%3Aopen+is%3Aissue+label%3Arefactoring) in case it's already covered. + Also you may want to check [Pull request refactor label as well](https://github.com/ggerganov/llama.cpp/pulls?q=is%3Aopen+is%3Apr+label%3Arefactoring) for duplicates too. + + - type: textarea + id: background-description + attributes: + label: Background Description + description: Please provide a detailed written description of the pain points you are trying to solve. + placeholder: Detailed description behind your motivation to request refactor + validations: + required: true + + - type: textarea + id: possible-approaches + attributes: + label: Possible Refactor Approaches + description: If you have some idea of possible approaches to solve this problem. You may want to make it a todo list. + placeholder: Your idea of possible refactoring opportunity/approaches + validations: + required: false diff --git a/llama.cpp/.github/ISSUE_TEMPLATE/config.yml b/llama.cpp/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..eb8c4b472df4c4fb22e7190a320dbf800eea4807 --- /dev/null +++ b/llama.cpp/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: true +contact_links: + - name: Got an idea? + url: https://github.com/ggerganov/llama.cpp/discussions/categories/ideas + about: Pop it there. It may then become an enhancement ticket. + - name: Got a question? + url: https://github.com/ggerganov/llama.cpp/discussions/categories/q-a + about: Ask a question there! + - name: Want to contribute? + url: https://github.com/ggerganov/llama.cpp/wiki/contribute + about: Head to the contribution guide page of the wiki for areas you can help with diff --git a/llama.cpp/.github/labeler.yml b/llama.cpp/.github/labeler.yml new file mode 100644 index 0000000000000000000000000000000000000000..1b47bc96885c410e519edd5aadd845cdc2a9a32f --- /dev/null +++ b/llama.cpp/.github/labeler.yml @@ -0,0 +1,86 @@ +# https://github.com/actions/labeler +Kompute: + - changed-files: + - any-glob-to-any-file: + - ggml/include/ggml-kompute.h + - ggml/src/ggml-kompute/** + - README-kompute.md +Apple Metal: + - changed-files: + - any-glob-to-any-file: + - ggml/include/ggml-metal.h + - ggml/src/ggml-metal/** + - README-metal.md +SYCL: + - changed-files: + - any-glob-to-any-file: + - ggml/include/ggml-sycl.h + - ggml/src/ggml-sycl/** + - docs/backend/SYCL.md + - examples/sycl/** +Nvidia GPU: + - changed-files: + - any-glob-to-any-file: + - ggml/include/ggml-cuda.h + - ggml/src/ggml-cuda/** +Vulkan: + - changed-files: + - any-glob-to-any-file: + - ggml/include/ggml-vulkan.h + - ggml/src/ggml-vulkan/** +documentation: + - changed-files: + - any-glob-to-any-file: + - docs/** + - media/** +testing: + - changed-files: + - any-glob-to-any-file: + - tests/** +build: + - changed-files: + - any-glob-to-any-file: + - cmake/** + - CMakeLists.txt + - CMakePresets.json +examples: + - changed-files: + - any-glob-to-any-file: examples/** +devops: + - changed-files: + - any-glob-to-any-file: + - .devops/** + - .github/** + - ci/** +python: + - changed-files: + - any-glob-to-any-file: + - "**/*.py" + - requirements/** + - gguf-py/** + - .flake8 +script: + - changed-files: + - any-glob-to-any-file: + - scripts/** +android: + - changed-files: + - any-glob-to-any-file: + - examples/llama.android/** +server: + - changed-files: + - any-glob-to-any-file: + - examples/server/** +ggml: + - changed-files: + - any-glob-to-any-file: + - ggml/** +nix: + - changed-files: + - any-glob-to-any-file: + - "**/*.nix" + - .github/workflows/nix-*.yml + - .devops/nix/nixpkgs-instances.nix +embedding: + - changed-files: + - any-glob-to-any-file: examples/embedding/ diff --git a/llama.cpp/.github/pull_request_template.md b/llama.cpp/.github/pull_request_template.md new file mode 100644 index 0000000000000000000000000000000000000000..d9f5bdc235a0024ba068e93b93b3c66255ccaae8 --- /dev/null +++ b/llama.cpp/.github/pull_request_template.md @@ -0,0 +1 @@ +*Make sure to read the [contributing guidelines](https://github.com/ggerganov/llama.cpp/blob/master/CONTRIBUTING.md) before submitting a PR* diff --git a/llama.cpp/.github/workflows/bench.yml.disabled b/llama.cpp/.github/workflows/bench.yml.disabled new file mode 100644 index 0000000000000000000000000000000000000000..1c8787ef78f7e43f991cf9a0d1fb4df40e7e8021 --- /dev/null +++ b/llama.cpp/.github/workflows/bench.yml.disabled @@ -0,0 +1,315 @@ +# TODO: there have been some issues with the workflow, so disabling for now +# https://github.com/ggerganov/llama.cpp/issues/7893 +# +# Benchmark +name: Benchmark + +on: + workflow_dispatch: + inputs: + gpu-series: + description: 'Azure GPU series to run with' + required: true + type: choice + options: + - Standard_NC4as_T4_v3 + - Standard_NC24ads_A100_v4 + - Standard_NC80adis_H100_v5 + sha: + description: 'Commit SHA1 to build' + required: false + type: string + duration: + description: 'Duration of the bench' + type: string + default: 10m + + push: + branches: + - master + paths: ['llama.cpp', 'ggml.c', 'ggml-backend.cpp', 'ggml-quants.c', '**/*.cu', 'examples/server/*.h*', 'examples/server/*.cpp'] + pull_request_target: + types: [opened, synchronize, reopened] + paths: ['llama.cpp', 'ggml.c', 'ggml-backend.cpp', 'ggml-quants.c', '**/*.cu', 'examples/server/*.h*', 'examples/server/*.cpp'] + schedule: + - cron: '04 2 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.run_id }}-${{ github.event.inputs.sha }} + cancel-in-progress: true + +jobs: + bench-server-baseline: + runs-on: Standard_NC4as_T4_v3 + env: + RUNNER_LABEL: Standard_NC4as_T4_v3 # FIXME Do not find a way to not duplicate it + N_USERS: 8 + DURATION: 10m + + strategy: + matrix: + model: [phi-2] + ftype: [q4_0, q8_0, f16] + include: + - model: phi-2 + ftype: q4_0 + pr_comment_enabled: "true" + + if: | + inputs.gpu-series == 'Standard_NC4as_T4_v3' + || ( + github.event_name == 'schedule' + && github.ref_name == 'master' + && github.repository_owner == 'ggerganov' + ) + || github.event_name == 'pull_request_target' + || ( + github.event_name == 'push' + && github.event.ref == 'refs/heads/master' + && github.repository_owner == 'ggerganov' + ) + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} + + - name: Install python env + id: pipenv + run: | + cd examples/server/bench + python3 -m venv venv + source venv/bin/activate + pip install -r requirements.txt + + - name: Prometheus + id: install_prometheus + run: | + wget --quiet https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz + tar xzf prometheus*.tar.gz --strip-components=1 + ./prometheus --config.file=examples/server/bench/prometheus.yml & + while ! nc -z localhost 9090; do + sleep 0.1 + done + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21' + + - name: Install k6 and xk6-sse + id: k6_installation + run: | + cd examples/server/bench + go install go.k6.io/xk6/cmd/xk6@latest + xk6 build master \ + --with github.com/phymbert/xk6-sse + + - name: Build + id: cmake_build + run: | + set -eux + cmake -B build \ + -DGGML_NATIVE=OFF \ + -DLLAMA_BUILD_SERVER=ON \ + -DLLAMA_CURL=ON \ + -DLLAMA_CUBLAS=ON \ + -DCUDAToolkit_ROOT=/usr/local/cuda \ + -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \ + -DCMAKE_CUDA_ARCHITECTURES=75 \ + -DLLAMA_FATAL_WARNINGS=OFF \ + -DLLAMA_ALL_WARNINGS=OFF \ + -DCMAKE_BUILD_TYPE=Release; + cmake --build build --config Release -j $(nproc) --target llama-server + + - name: Download the dataset + id: download_dataset + run: | + cd examples/server/bench + wget --quiet https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json + + - name: Server bench + id: server_bench + env: + HEAD_REF: ${{ github.head_ref || github.ref_name }} + run: | + set -eux + + cd examples/server/bench + source venv/bin/activate + python bench.py \ + --runner-label ${{ env.RUNNER_LABEL }} \ + --name ${{ github.job }} \ + --branch $HEAD_REF \ + --commit ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha }} \ + --scenario script.js \ + --duration ${{ github.event.inputs.duration || env.DURATION }} \ + --hf-repo ggml-org/models \ + --hf-file ${{ matrix.model }}/ggml-model-${{ matrix.ftype }}.gguf \ + --model-path-prefix /models \ + --parallel ${{ env.N_USERS }} \ + -ngl 33 \ + --batch-size 2048 \ + --ubatch-size 256 \ + --ctx-size 16384 \ + --n-prompts 1000 \ + --max-prompt-tokens 1024 \ + --max-tokens 2048 + + cat results.github.env >> $GITHUB_ENV + + # Remove dataset as we do not want it in the artefact + rm ShareGPT_V3_unfiltered_cleaned_split.json + + - uses: actions/upload-artifact@v4 + with: + name: bench-server-${{ github.job }}-${{ env.RUNNER_LABEL }}-${{ matrix.model }}-${{ matrix.ftype }} + compression-level: 9 + path: | + examples/server/bench/*.jpg + examples/server/bench/*.json + examples/server/bench/*.log + + - name: Commit status + uses: Sibz/github-status-action@v1 + with: + authToken: ${{secrets.GITHUB_TOKEN}} + sha: ${{ inputs.sha || github.event.pull_request.head.sha || github.sha }} + context: bench-server-${{ github.job }}-${{ env.RUNNER_LABEL }}-${{ matrix.model }}-${{ matrix.ftype }} + description: | + ${{ env.BENCH_RESULTS }} + state: 'success' + + - name: Upload benchmark images + uses: devicons/public-upload-to-imgur@v2.2.2 + continue-on-error: true # Important as it looks unstable: 503 + id: imgur_step + with: + client_id: ${{secrets.IMGUR_CLIENT_ID}} + path: | + examples/server/bench/prompt_tokens_seconds.jpg + examples/server/bench/predicted_tokens_seconds.jpg + examples/server/bench/kv_cache_usage_ratio.jpg + examples/server/bench/requests_processing.jpg + + - name: Extract mermaid + id: set_mermaid + run: | + set -eux + + cd examples/server/bench + PROMPT_TOKENS_SECONDS=$(cat prompt_tokens_seconds.mermaid) + echo "PROMPT_TOKENS_SECONDS<> $GITHUB_ENV + echo "$PROMPT_TOKENS_SECONDS" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + PREDICTED_TOKENS_SECONDS=$(cat predicted_tokens_seconds.mermaid) + echo "PREDICTED_TOKENS_SECONDS<> $GITHUB_ENV + echo "$PREDICTED_TOKENS_SECONDS" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + KV_CACHE_USAGE_RATIO=$(cat kv_cache_usage_ratio.mermaid) + echo "KV_CACHE_USAGE_RATIO<> $GITHUB_ENV + echo "$KV_CACHE_USAGE_RATIO" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + REQUESTS_PROCESSING=$(cat requests_processing.mermaid) + echo "REQUESTS_PROCESSING<> $GITHUB_ENV + echo "$REQUESTS_PROCESSING" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + - name: Extract image url + id: extract_image_url + continue-on-error: true + run: | + set -eux + + echo "IMAGE_O=${{ fromJSON(steps.imgur_step.outputs.imgur_urls)[0] }}" >> $GITHUB_ENV + echo "IMAGE_1=${{ fromJSON(steps.imgur_step.outputs.imgur_urls)[1] }}" >> $GITHUB_ENV + echo "IMAGE_2=${{ fromJSON(steps.imgur_step.outputs.imgur_urls)[2] }}" >> $GITHUB_ENV + echo "IMAGE_3=${{ fromJSON(steps.imgur_step.outputs.imgur_urls)[3] }}" >> $GITHUB_ENV + + - name: Comment PR + uses: mshick/add-pr-comment@v2 + id: comment_pr + if: ${{ github.event.pull_request != '' && matrix.pr_comment_enabled == 'true' }} + with: + message-id: bench-server-${{ github.job }}-${{ env.RUNNER_LABEL }}-${{ matrix.model }}-${{ matrix.ftype }} + message: | +

+ + 📈 **llama.cpp server** for _${{ github.job }}_ on _${{ env.RUNNER_LABEL }}_ for `${{ matrix.model }}`-`${{ matrix.ftype }}`: **${{ env.BENCH_ITERATIONS}} iterations** 🚀 + +

+ +
+ + Expand details for performance related PR only + + - Concurrent users: ${{ env.N_USERS }}, duration: ${{ github.event.inputs.duration || env.DURATION }} + - HTTP request : avg=${{ env.HTTP_REQ_DURATION_AVG }}ms p(95)=${{ env.HTTP_REQ_DURATION_P_95_ }}ms fails=${{ env.HTTP_REQ_FAILED_PASSES }}, finish reason: stop=${{ env.LLAMACPP_COMPLETIONS_STOP_RATE_PASSES }} truncated=${{ env.LLAMACPP_COMPLETIONS_TRUNCATED_RATE_PASSES }} + - Prompt processing (pp): avg=${{ env.LLAMACPP_PROMPT_PROCESSING_SECOND_AVG }}tk/s p(95)=${{ env.LLAMACPP_PROMPT_PROCESSING_SECOND_P_95_ }}tk/s + - Token generation (tg): avg=${{ env.LLAMACPP_TOKENS_SECOND_AVG }}tk/s p(95)=${{ env.LLAMACPP_TOKENS_SECOND_P_95_ }}tk/s + - ${{ env.BENCH_GRAPH_XLABEL }} + + +

+ + prompt_tokens_seconds + +

+ + More + + ```mermaid + ${{ env.PROMPT_TOKENS_SECONDS }} + ``` + +
+ + predicted_tokens_seconds + +
+ More + + ```mermaid + ${{ env.PREDICTED_TOKENS_SECONDS }} + ``` + +
+ +

+ +
+ + Details + +

+ + kv_cache_usage_ratio + +

+ More + + ```mermaid + ${{ env.KV_CACHE_USAGE_RATIO }} + ``` + +
+ + requests_processing + +
+ More + + ```mermaid + ${{ env.REQUESTS_PROCESSING }} + ``` + +
+ +

+
+
diff --git a/llama.cpp/.github/workflows/build.yml b/llama.cpp/.github/workflows/build.yml new file mode 100644 index 0000000000000000000000000000000000000000..f3326a5fbab82a47dcdd248b1011bd2afb886144 --- /dev/null +++ b/llama.cpp/.github/workflows/build.yml @@ -0,0 +1,1416 @@ +name: CI + +on: + workflow_dispatch: # allows manual triggering + inputs: + create_release: + description: 'Create new release' + required: true + type: boolean + push: + branches: + - master + paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal'] + pull_request: + types: [opened, synchronize, reopened] + paths: ['.github/workflows/build.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.swift', '**/*.m', '**/*.metal'] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +# Fine-grant permission +# https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token +permissions: + contents: write # for creating release + +env: + BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + GGML_NLOOP: 3 + GGML_N_THREADS: 1 + LLAMA_LOG_COLORS: 1 + LLAMA_LOG_PREFIX: 1 + LLAMA_LOG_TIMESTAMPS: 1 + +jobs: + macOS-latest-cmake-arm64: + runs-on: macos-14 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Dependencies + id: depends + continue-on-error: true + run: | + brew update + + - name: Build + id: cmake_build + run: | + sysctl -a + mkdir build + cd build + cmake .. \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DLLAMA_CURL=ON \ + -DGGML_METAL_USE_BF16=ON \ + -DGGML_METAL_EMBED_LIBRARY=ON \ + -DGGML_RPC=ON \ + -DBUILD_SHARED_LIBS=OFF + cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L 'main|curl' --verbose --timeout 900 + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Pack artifacts + id: pack_artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + run: | + cp LICENSE ./build/bin/ + zip -r llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.zip ./build/bin/* + + - name: Upload artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-macos-arm64.zip + name: llama-bin-macos-arm64.zip + + macOS-latest-cmake-x64: + runs-on: macos-13 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Dependencies + id: depends + continue-on-error: true + run: | + brew update + + - name: Build + id: cmake_build + run: | + sysctl -a + # Metal is disabled due to intermittent failures with Github runners not having a GPU: + # https://github.com/ggerganov/llama.cpp/actions/runs/8635935781/job/23674807267#step:5:2313 + cmake -B build \ + -DLLAMA_FATAL_WARNINGS=ON \ + -DLLAMA_CURL=ON \ + -DGGML_METAL=OFF \ + -DGGML_RPC=ON \ + -DBUILD_SHARED_LIBS=OFF + cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L main --verbose --timeout 900 + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Pack artifacts + id: pack_artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + run: | + cp LICENSE ./build/bin/ + zip -r llama-${{ steps.tag.outputs.name }}-bin-macos-x64.zip ./build/bin/* + + - name: Upload artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-macos-x64.zip + name: llama-bin-macos-x64.zip + + ubuntu-latest-cmake: + runs-on: ubuntu-latest + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Dependencies + id: depends + run: | + sudo apt-get update + sudo apt-get install build-essential libcurl4-openssl-dev + + - name: Build + id: cmake_build + run: | + mkdir build + cd build + cmake .. -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_CURL=ON -DGGML_RPC=ON -DBUILD_SHARED_LIBS=OFF + cmake --build . --config Release -j $(nproc) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L 'main|curl' --verbose --timeout 900 + + - name: Test llama2c conversion + id: llama2c_test + run: | + cd build + echo "Fetch tokenizer" + wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/tok512.bin + echo "Fetch llama2c model" + wget https://huggingface.co/karpathy/tinyllamas/resolve/main/stories260K/stories260K.bin + ./bin/llama-convert-llama2c-to-ggml --copy-vocab-from-model ./tok512.bin --llama2c-model stories260K.bin --llama2c-output-model stories260K.gguf + ./bin/llama-cli -m stories260K.gguf -p "One day, Lily met a Shoggoth" -n 500 -c 256 + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Pack artifacts + id: pack_artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + run: | + cp LICENSE ./build/bin/ + zip -r llama-${{ steps.tag.outputs.name }}-bin-ubuntu-x64.zip ./build/bin/* + + - name: Upload artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-ubuntu-x64.zip + name: llama-bin-ubuntu-x64.zip + + ubuntu-latest-cmake-sanitizer: + runs-on: ubuntu-latest + + continue-on-error: true + + strategy: + matrix: + sanitizer: [ADDRESS, THREAD, UNDEFINED] + build_type: [Debug, Release] + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + run: | + sudo apt-get update + sudo apt-get install build-essential + + - name: Build + id: cmake_build + if: ${{ matrix.sanitizer != 'THREAD' }} + run: | + mkdir build + cd build + cmake .. -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} + cmake --build . --config ${{ matrix.build_type }} -j $(nproc) + + - name: Build (no OpenMP) + id: cmake_build_no_openmp + if: ${{ matrix.sanitizer == 'THREAD' }} + run: | + mkdir build + cd build + cmake .. -DLLAMA_FATAL_WARNINGS=ON -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DGGML_OPENMP=OFF + cmake --build . --config ${{ matrix.build_type }} -j $(nproc) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L main --verbose --timeout 900 + + ubuntu-latest-cmake-rpc: + runs-on: ubuntu-latest + + continue-on-error: true + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + run: | + sudo apt-get update + sudo apt-get install build-essential + + - name: Build + id: cmake_build + run: | + mkdir build + cd build + cmake -DGGML_RPC=ON .. + cmake --build . --config Release -j $(nproc) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L main --verbose + + ubuntu-22-cmake-vulkan: + runs-on: ubuntu-22.04 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + run: | + wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - + sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list + sudo apt-get update -y + sudo apt-get install -y build-essential vulkan-sdk + + - name: Build + id: cmake_build + run: | + mkdir build + cd build + cmake -DGGML_VULKAN=ON .. + cmake --build . --config Release -j $(nproc) + + ubuntu-22-cmake-hip: + runs-on: ubuntu-22.04 + container: rocm/dev-ubuntu-22.04:6.0.2 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + run: | + sudo apt-get update + sudo apt-get install -y build-essential git cmake rocblas-dev hipblas-dev + + - name: Build with native CMake HIP support + id: cmake_build + run: | + cmake -B build -S . -DCMAKE_HIP_COMPILER="$(hipconfig -l)/clang" -DGGML_HIP=ON + cmake --build build --config Release -j $(nproc) + + - name: Build with legacy HIP support + id: cmake_build_legacy_hip + run: | + cmake -B build2 -S . -DCMAKE_C_COMPILER=hipcc -DCMAKE_CXX_COMPILER=hipcc -DGGML_HIP=ON + cmake --build build2 --config Release -j $(nproc) + + ubuntu-22-cmake-musa: + runs-on: ubuntu-22.04 + container: mthreads/musa:rc3.1.0-devel-ubuntu22.04 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + run: | + apt-get update + apt-get install -y build-essential git cmake libcurl4-openssl-dev + + - name: Build with native CMake MUSA support + id: cmake_build + run: | + cmake -B build -S . -DGGML_MUSA=ON + cmake --build build --config Release -j $(nproc) + + ubuntu-22-cmake-sycl: + runs-on: ubuntu-22.04 + + continue-on-error: true + + steps: + - uses: actions/checkout@v4 + + - name: add oneAPI to apt + shell: bash + run: | + cd /tmp + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" + + - name: install oneAPI dpcpp compiler + shell: bash + run: | + sudo apt update + sudo apt install intel-oneapi-compiler-dpcpp-cpp + + - name: install oneAPI MKL library + shell: bash + run: | + sudo apt install intel-oneapi-mkl-devel + + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Build + id: cmake_build + run: | + source /opt/intel/oneapi/setvars.sh + mkdir build + cd build + cmake -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx .. + cmake --build . --config Release -j $(nproc) + + ubuntu-22-cmake-sycl-fp16: + runs-on: ubuntu-22.04 + + continue-on-error: true + + steps: + - uses: actions/checkout@v4 + + - name: add oneAPI to apt + shell: bash + run: | + cd /tmp + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" + + - name: install oneAPI dpcpp compiler + shell: bash + run: | + sudo apt update + sudo apt install intel-oneapi-compiler-dpcpp-cpp + + - name: install oneAPI MKL library + shell: bash + run: | + sudo apt install intel-oneapi-mkl-devel + + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Build + id: cmake_build + run: | + source /opt/intel/oneapi/setvars.sh + mkdir build + cd build + cmake -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON .. + cmake --build . --config Release -j $(nproc) + + # TODO: build with GGML_METAL=OFF because test-backend-ops fail on "Apple Paravirtual device" and I don't know + # how to debug it. + # ref: https://github.com/ggerganov/llama.cpp/actions/runs/7132125951/job/19422043567?pr=4359#step:5:6584 + # would be great if we fix these + macOS-latest-cmake: + runs-on: macos-latest + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + continue-on-error: true + run: | + brew update + + - name: Build + id: cmake_build + run: | + sysctl -a + mkdir build + cd build + cmake -DLLAMA_FATAL_WARNINGS=ON -DGGML_METAL=OFF .. + cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) + + - name: Test + id: cmake_test + run: | + cd build + ctest -L main --verbose --timeout 900 + + macOS-latest-cmake-ios: + runs-on: macos-latest + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + continue-on-error: true + run: | + brew update + + - name: Build + id: cmake_build + run: | + sysctl -a + mkdir build + cd build + cmake -G Xcode .. \ + -DGGML_METAL_USE_BF16=ON \ + -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TESTS=OFF \ + -DLLAMA_BUILD_SERVER=OFF \ + -DCMAKE_SYSTEM_NAME=iOS \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ + -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml + cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO + + macOS-latest-cmake-tvos: + runs-on: macos-latest + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Dependencies + id: depends + continue-on-error: true + run: | + brew update + + - name: Build + id: cmake_build + run: | + sysctl -a + mkdir build + cd build + cmake -G Xcode .. \ + -DGGML_METAL_USE_BF16=ON \ + -DGGML_METAL_EMBED_LIBRARY=ON \ + -DLLAMA_BUILD_EXAMPLES=OFF \ + -DLLAMA_BUILD_TESTS=OFF \ + -DLLAMA_BUILD_SERVER=OFF \ + -DCMAKE_SYSTEM_NAME=tvOS \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ + -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml + cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO + +# TODO: tmp disabled. see for possible re-enable: +# https://github.com/ggerganov/llama.cpp/pull/10525 +# macOS-latest-swift: +# runs-on: macos-latest +# +# strategy: +# matrix: +# destination: ['generic/platform=macOS', 'generic/platform=iOS', 'generic/platform=tvOS'] +# +# steps: +# - name: Clone +# id: checkout +# uses: actions/checkout@v4 +# +# - name: Dependencies +# id: depends +# continue-on-error: true +# run: | +# brew update +# +# - name: xcodebuild for swift package +# id: xcodebuild +# run: | +# xcodebuild -scheme llama -destination "${{ matrix.destination }}" +# +# - name: Build Swift Example +# id: make_build_swift_example +# run: | +# make swift + + windows-msys2: + runs-on: windows-latest + + strategy: + fail-fast: false + matrix: + include: + - { sys: UCRT64, env: ucrt-x86_64, build: Release } + - { sys: CLANG64, env: clang-x86_64, build: Release } + + steps: + - name: Clone + uses: actions/checkout@v4 + + - name: Setup ${{ matrix.sys }} + uses: msys2/setup-msys2@v2 + with: + update: true + msystem: ${{matrix.sys}} + install: >- + base-devel + mingw-w64-${{matrix.env}}-toolchain + mingw-w64-${{matrix.env}}-cmake + mingw-w64-${{matrix.env}}-openblas + + - name: Build using CMake + shell: msys2 {0} + run: | + cmake -B build + cmake --build build --config ${{ matrix.build }} -j $(nproc) + + - name: Clean after building using CMake + shell: msys2 {0} + run: | + rm -rf build + + - name: Build using CMake w/ OpenBLAS + shell: msys2 {0} + run: | + cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS + cmake --build build --config ${{ matrix.build }} -j $(nproc) + + windows-latest-cmake: + runs-on: windows-latest + + env: + OPENBLAS_VERSION: 0.3.23 + SDE_VERSION: 9.33.0-2024-01-07 + VULKAN_VERSION: 1.3.261.1 + + strategy: + matrix: + include: + - build: 'noavx-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DBUILD_SHARED_LIBS=ON' + - build: 'avx2-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DBUILD_SHARED_LIBS=ON' + - build: 'avx-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX2=OFF -DBUILD_SHARED_LIBS=ON' + - build: 'avx512-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_AVX512=ON -DBUILD_SHARED_LIBS=ON' + - build: 'openblas-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_BLAS=ON -DBUILD_SHARED_LIBS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"' + - build: 'kompute-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_KOMPUTE=ON -DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON -DBUILD_SHARED_LIBS=ON' + - build: 'vulkan-x64' + defines: '-DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_RPC=ON -DGGML_VULKAN=ON -DBUILD_SHARED_LIBS=ON' + - build: 'llvm-arm64' + defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=ON' + - build: 'msvc-arm64' + defines: '-G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-msvc.cmake -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=ON' + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Clone Kompute submodule + id: clone_kompute + if: ${{ matrix.build == 'kompute-x64' }} + run: | + git submodule update --init ggml/src/ggml-kompute/kompute + + - name: Download OpenBLAS + id: get_openblas + if: ${{ matrix.build == 'openblas-x64' }} + run: | + curl.exe -o $env:RUNNER_TEMP/openblas.zip -L "https://github.com/xianyi/OpenBLAS/releases/download/v${env:OPENBLAS_VERSION}/OpenBLAS-${env:OPENBLAS_VERSION}-x64.zip" + curl.exe -o $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt -L "https://github.com/xianyi/OpenBLAS/raw/v${env:OPENBLAS_VERSION}/LICENSE" + mkdir $env:RUNNER_TEMP/openblas + tar.exe -xvf $env:RUNNER_TEMP/openblas.zip -C $env:RUNNER_TEMP/openblas + $vcdir = $(vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath) + $msvc = $(join-path $vcdir $('VC\Tools\MSVC\'+$(gc -raw $(join-path $vcdir 'VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt')).Trim())) + $lib = $(join-path $msvc 'bin\Hostx64\x64\lib.exe') + & $lib /machine:x64 "/def:${env:RUNNER_TEMP}/openblas/lib/libopenblas.def" "/out:${env:RUNNER_TEMP}/openblas/lib/openblas.lib" /name:openblas.dll + + - name: Install Vulkan SDK + id: get_vulkan + if: ${{ matrix.build == 'kompute-x64' || matrix.build == 'vulkan-x64' }} + run: | + curl.exe -o $env:RUNNER_TEMP/VulkanSDK-Installer.exe -L "https://sdk.lunarg.com/sdk/download/${env:VULKAN_VERSION}/windows/VulkanSDK-${env:VULKAN_VERSION}-Installer.exe" + & "$env:RUNNER_TEMP\VulkanSDK-Installer.exe" --accept-licenses --default-answer --confirm-command install + Add-Content $env:GITHUB_ENV "VULKAN_SDK=C:\VulkanSDK\${env:VULKAN_VERSION}" + Add-Content $env:GITHUB_PATH "C:\VulkanSDK\${env:VULKAN_VERSION}\bin" + + - name: Install Ninja + id: install_ninja + run: | + choco install ninja + + - name: Build + id: cmake_build + run: | + cmake -S . -B build ${{ matrix.defines }} + cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} + + - name: Add libopenblas.dll + id: add_libopenblas_dll + if: ${{ matrix.build == 'openblas-x64' }} + run: | + cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./build/bin/Release/openblas.dll + cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./build/bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt + + - name: Check AVX512F support + id: check_avx512f + if: ${{ matrix.build == 'avx512-x64' }} + continue-on-error: true + run: | + cd build + $vcdir = $(vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath) + $msvc = $(join-path $vcdir $('VC\Tools\MSVC\'+$(gc -raw $(join-path $vcdir 'VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt')).Trim())) + $cl = $(join-path $msvc 'bin\Hostx64\x64\cl.exe') + echo 'int main(void){unsigned int a[4];__cpuid(a,7);return !(a[1]&65536);}' >> avx512f.c + & $cl /O2 /GS- /kernel avx512f.c /link /nodefaultlib /entry:main + .\avx512f.exe && echo "AVX512F: YES" && ( echo HAS_AVX512F=1 >> $env:GITHUB_ENV ) || echo "AVX512F: NO" + + - name: Test + id: cmake_test + # not all machines have native AVX-512 + if: ${{ matrix.build != 'msvc-arm64' && matrix.build != 'llvm-arm64' && matrix.build != 'kompute-x64' && matrix.build != 'vulkan-x64' && (matrix.build != 'avx512-x64' || env.HAS_AVX512F == '1') }} + run: | + cd build + ctest -L main -C Release --verbose --timeout 900 + + - name: Test (Intel SDE) + id: cmake_test_sde + if: ${{ matrix.build == 'avx512-x64' && env.HAS_AVX512F == '0' }} # use Intel SDE for AVX-512 emulation + run: | + curl.exe -o $env:RUNNER_TEMP/sde.tar.xz -L "https://downloadmirror.intel.com/813591/sde-external-${env:SDE_VERSION}-win.tar.xz" + # for some weird reason windows tar doesn't like sde tar.xz + 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar.xz + 7z x "-o${env:RUNNER_TEMP}" $env:RUNNER_TEMP/sde.tar + $sde = $(join-path $env:RUNNER_TEMP sde-external-${env:SDE_VERSION}-win/sde.exe) + cd build + $env:LLAMA_SKIP_TESTS_SLOW_ON_EMULATOR = 1 + & $sde -future -- ctest -L main -C Release --verbose --timeout 900 + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Pack artifacts + id: pack_artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + run: | + Copy-Item LICENSE .\build\bin\Release\llama.cpp.txt + 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip .\build\bin\Release\* + + - name: Upload artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}.zip + name: llama-bin-win-${{ matrix.build }}.zip + + ubuntu-latest-cmake-cuda: + runs-on: ubuntu-latest + container: nvidia/cuda:12.6.2-devel-ubuntu24.04 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Install dependencies + env: + DEBIAN_FRONTEND: noninteractive + run: | + apt update + apt install -y cmake build-essential ninja-build libgomp1 git + + - name: Build with CMake + run: | + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=89-real -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined -DLLAMA_FATAL_WARNINGS=ON + cmake --build build + + windows-2019-cmake-cuda: + runs-on: windows-2019 + + strategy: + matrix: + cuda: ['12.4', '11.7'] + build: ['cuda'] + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install Cuda Toolkit 11.7 + if: ${{ matrix.cuda == '11.7' }} + run: | + mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" + choco install unzip -y + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-11.7.99-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-11.7.99-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-11.7.99-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/libcublas/windows-x86_64/libcublas-windows-x86_64-11.7.4.6-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-11.7.91-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-11.7.91-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-11.7.101-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-11.7.91-archive.zip" + unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_cudart-windows-x86_64-11.7.99-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvcc-windows-x86_64-11.7.99-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvrtc-windows-x86_64-11.7.99-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libcublas-windows-x86_64-11.7.4.6-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvtx-windows-x86_64-11.7.91-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\visual_studio_integration-windows-x86_64-11.7.91-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_nvprof-windows-x86_64-11.7.101-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\cuda_cccl-windows-x86_64-11.7.91-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" /E /I /H /Y + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + echo "CUDA_PATH_V11_7=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + + - name: Install Cuda Toolkit 12.4 + if: ${{ matrix.cuda == '12.4' }} + run: | + mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" + choco install unzip -y + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.4.127-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.4.131-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.4.127-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/libcublas/windows-x86_64/libcublas-windows-x86_64-12.4.5.8-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.4.127-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.4.127-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-12.4.127-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.4.127-archive.zip" + curl -O "https://developer.download.nvidia.com/compute/cuda/redist/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.4.127-archive.zip" + unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_cudart-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvcc-windows-x86_64-12.4.131-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvrtc-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libcublas-windows-x86_64-12.4.5.8-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvtx-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_profiler_api-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\visual_studio_integration-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_nvprof-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\cuda_cccl-windows-x86_64-12.4.127-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" /E /I /H /Y + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + echo "CUDA_PATH_V12_4=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 + + - name: Install ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ github.job }}-${{ matrix.cuda }}-${{ matrix.build }} + + - name: Install Ninja + id: install_ninja + run: | + choco install ninja + + - name: Build + id: cmake_build + shell: cmd + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + cmake -S . -B build -G "Ninja Multi-Config" -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=ON -DGGML_RPC=ON + set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1 + cmake --build build --config Release -j %NINJA_JOBS% -t ggml + cmake --build build --config Release + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Pack artifacts + id: pack_artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + run: | + 7z a llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-cu${{ matrix.cuda }}-x64.zip .\build\bin\Release\* + + - name: Upload artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-win-${{ matrix.build }}-cu${{ matrix.cuda }}-x64.zip + name: llama-bin-win-cu${{ matrix.cuda }}-x64.zip + + - name: Copy and pack Cuda runtime + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + run: | + echo "Cuda install location: ${{ env.CUDA_PATH }}" + $dst='.\build\bin\cudart\' + robocopy "${{env.CUDA_PATH}}\bin" $dst cudart64_*.dll cublas64_*.dll cublasLt64_*.dll + robocopy "${{env.CUDA_PATH}}\lib" $dst cudart64_*.dll cublas64_*.dll cublasLt64_*.dll + 7z a cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip $dst\* + + - name: Upload Cuda runtime + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip + name: cudart-llama-bin-win-cu${{ matrix.cuda }}-x64.zip + + windows-latest-cmake-sycl: + runs-on: windows-latest + + defaults: + run: + shell: bash + + env: + WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b380d914-366b-4b77-a74a-05e3c38b3514/intel-oneapi-base-toolkit-2025.0.0.882_offline.exe + WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel + ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI" + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install + run: | + scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL + + - name: Build + id: cmake_build + run: examples/sycl/win-build-sycl.bat + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Build the release package + id: pack_artifacts + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + run: | + echo "cp oneAPI running time dll files in ${{ env.ONEAPI_ROOT }} to ./build/bin" + + cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_sycl_blas.5.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_core.2.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/mkl/latest/bin/mkl_tbb_thread.2.dll" ./build/bin + + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_level_zero.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_adapter_opencl.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_loader.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/ur_win_proxy_loader.dll" ./build/bin + + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/sycl8.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/svml_dispmd.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libmmd.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/compiler/latest/bin/libiomp5md.dll" ./build/bin + + cp "${{ env.ONEAPI_ROOT }}/dnnl/latest/bin/dnnl.dll" ./build/bin + cp "${{ env.ONEAPI_ROOT }}/tbb/latest/bin/tbb12.dll" ./build/bin + + echo "cp oneAPI running time dll files to ./build/bin done" + 7z a llama-${{ steps.tag.outputs.name }}-bin-win-sycl-x64.zip ./build/bin/* + + - name: Upload the release package + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-win-sycl-x64.zip + name: llama-bin-win-sycl-x64.zip + + windows-latest-cmake-hip: + if: ${{ github.event.inputs.create_release != 'true' }} + runs-on: windows-latest + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + + - name: Install + id: depends + run: | + $ErrorActionPreference = "Stop" + write-host "Downloading AMD HIP SDK Installer" + Invoke-WebRequest -Uri "https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-24.Q3-WinSvr2022-For-HIP.exe" -OutFile "${env:RUNNER_TEMP}\rocm-install.exe" + write-host "Installing AMD HIP SDK" + Start-Process "${env:RUNNER_TEMP}\rocm-install.exe" -ArgumentList '-install' -NoNewWindow -Wait + write-host "Completed AMD HIP SDK installation" + + - name: Verify ROCm + id: verify + run: | + & 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version + + - name: Install ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ github.job }} + + - name: Build + id: cmake_build + run: | + $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path) + $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}" + cmake -G "Unix Makefiles" -B build -S . -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release -DGGML_RPC=ON + cmake --build build -j ${env:NUMBER_OF_PROCESSORS} + + windows-latest-cmake-hip-release: + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + runs-on: windows-latest + + strategy: + matrix: + gpu_target: [gfx1100, gfx1101, gfx1030] + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install + id: depends + run: | + $ErrorActionPreference = "Stop" + write-host "Downloading AMD HIP SDK Installer" + Invoke-WebRequest -Uri "https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-24.Q3-WinSvr2022-For-HIP.exe" -OutFile "${env:RUNNER_TEMP}\rocm-install.exe" + write-host "Installing AMD HIP SDK" + Start-Process "${env:RUNNER_TEMP}\rocm-install.exe" -ArgumentList '-install' -NoNewWindow -Wait + write-host "Completed AMD HIP SDK installation" + + - name: Verify ROCm + id: verify + run: | + & 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version + + - name: Build + id: cmake_build + run: | + $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path) + $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}" + cmake -G "Unix Makefiles" -B build -S . -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release -DAMDGPU_TARGETS=${{ matrix.gpu_target }} -DGGML_RPC=ON + cmake --build build -j ${env:NUMBER_OF_PROCESSORS} + md "build\bin\rocblas\library\" + cp "${env:HIP_PATH}\bin\hipblas.dll" "build\bin\" + cp "${env:HIP_PATH}\bin\rocblas.dll" "build\bin\" + cp "${env:HIP_PATH}\bin\rocblas\library\*" "build\bin\rocblas\library\" + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Pack artifacts + id: pack_artifacts + run: | + 7z a llama-${{ steps.tag.outputs.name }}-bin-win-hip-x64-${{ matrix.gpu_target }}.zip .\build\bin\* + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-win-hip-x64-${{ matrix.gpu_target }}.zip + name: llama-bin-win-hip-x64-${{ matrix.gpu_target }}.zip + + ios-xcode-build: + runs-on: macos-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Build Xcode project + run: xcodebuild -project examples/llama.swiftui/llama.swiftui.xcodeproj -scheme llama.swiftui -sdk iphoneos CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= -destination 'generic/platform=iOS' build + + android-build: + runs-on: ubuntu-latest + + steps: + - name: Clone + uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: zulu + + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + with: + log-accepted-android-sdk-licenses: false + + - name: Build + run: | + cd examples/llama.android + + ./gradlew build --no-daemon + +# freeBSD-latest: +# runs-on: macos-12 +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Build +# uses: cross-platform-actions/action@v0.19.0 +# with: +# operating_system: freebsd +# version: '13.2' +# hypervisor: 'qemu' +# run: | +# sudo pkg update +# sudo pkg install -y gmake automake autoconf pkgconf llvm15 openblas +# gmake CC=/usr/local/bin/clang15 CXX=/usr/local/bin/clang++15 -j `sysctl -n hw.ncpu` + + release: + if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} + + runs-on: ubuntu-latest + + needs: + - ubuntu-latest-cmake + - macOS-latest-cmake + - windows-latest-cmake + - windows-2019-cmake-cuda + - windows-latest-cmake-hip-release + - macOS-latest-cmake-arm64 + - macOS-latest-cmake-x64 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + if [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then + echo "name=b${BUILD_NUMBER}" >> $GITHUB_OUTPUT + else + SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-') + echo "name=${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}" >> $GITHUB_OUTPUT + fi + + - name: Download artifacts + id: download-artifact + uses: actions/download-artifact@v4 + with: + path: ./artifact + + - name: Move artifacts + id: move_artifacts + run: mkdir -p ./artifact/release && mv ./artifact/*/*.zip ./artifact/release + + - name: Create release + id: create_release + uses: anzz1/action-create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.tag.outputs.name }} + + - name: Upload release + id: upload_release + uses: actions/github-script@v3 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const path = require('path'); + const fs = require('fs'); + const release_id = '${{ steps.create_release.outputs.id }}'; + for (let file of await fs.readdirSync('./artifact/release')) { + if (path.extname(file) === '.zip') { + console.log('uploadReleaseAsset', file); + await github.repos.uploadReleaseAsset({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: release_id, + name: file, + data: await fs.readFileSync(`./artifact/release/${file}`) + }); + } + } + +# ubuntu-latest-gcc: +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# build: [Debug, Release] +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Dependencies +# run: | +# sudo apt-get update +# sudo apt-get install build-essential +# sudo apt-get install cmake +# +# - name: Configure +# run: cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} +# +# - name: Build +# run: | +# make +# +# ubuntu-latest-clang: +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# build: [Debug, Release] +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Dependencies +# run: | +# sudo apt-get update +# sudo apt-get install build-essential +# sudo apt-get install cmake +# +# - name: Configure +# run: cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang +# +# - name: Build +# run: | +# make +# +# ubuntu-latest-gcc-sanitized: +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# sanitizer: [ADDRESS, THREAD, UNDEFINED] +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Dependencies +# run: | +# sudo apt-get update +# sudo apt-get install build-essential +# sudo apt-get install cmake +# +# - name: Configure +# run: cmake . -DCMAKE_BUILD_TYPE=Debug -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON +# +# - name: Build +# run: | +# make +# +# windows: +# runs-on: windows-latest +# +# strategy: +# matrix: +# build: [Release] +# arch: [Win32, x64] +# include: +# - arch: Win32 +# s2arc: x86 +# - arch: x64 +# s2arc: x64 +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Add msbuild to PATH +# uses: microsoft/setup-msbuild@v1 +# +# - name: Configure +# run: > +# cmake -S . -B ./build -A ${{ matrix.arch }} +# -DCMAKE_BUILD_TYPE=${{ matrix.build }} +# +# - name: Build +# run: | +# cd ./build +# msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }} +# +# - name: Upload binaries +# uses: actions/upload-artifact@v4 +# with: +# name: llama-bin-${{ matrix.arch }} +# path: build/bin/${{ matrix.build }} +# +# windows-blas: +# runs-on: windows-latest +# +# strategy: +# matrix: +# build: [Release] +# arch: [Win32, x64] +# blas: [ON] +# include: +# - arch: Win32 +# obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x86.zip +# s2arc: x86 +# - arch: x64 +# obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x64.zip +# s2arc: x64 +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Add msbuild to PATH +# uses: microsoft/setup-msbuild@v1 +# +# - name: Fetch OpenBLAS +# if: matrix.blas == 'ON' +# run: | +# C:/msys64/usr/bin/wget.exe -qO blas.zip ${{ matrix.obzip }} +# 7z x blas.zip -oblas -y +# copy blas/include/cblas.h . +# copy blas/include/openblas_config.h . +# echo "blasdir=$env:GITHUB_WORKSPACE/blas" >> $env:GITHUB_ENV +# +# - name: Configure +# run: > +# cmake -S . -B ./build -A ${{ matrix.arch }} +# -DCMAKE_BUILD_TYPE=${{ matrix.build }} +# -DLLAMA_SUPPORT_OPENBLAS=${{ matrix.blas }} +# -DCMAKE_LIBRARY_PATH="$env:blasdir/lib" +# +# - name: Build +# run: | +# cd ./build +# msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }} +# +# - name: Copy libopenblas.dll +# if: matrix.blas == 'ON' +# run: copy "$env:blasdir/bin/libopenblas.dll" build/bin/${{ matrix.build }} +# +# - name: Upload binaries +# if: matrix.blas == 'ON' +# uses: actions/upload-artifact@v4 +# with: +# name: llama-blas-bin-${{ matrix.arch }} +# path: build/bin/${{ matrix.build }} +# +# emscripten: +# runs-on: ubuntu-latest +# +# strategy: +# matrix: +# build: [Release] +# +# steps: +# - name: Clone +# uses: actions/checkout@v4 +# +# - name: Dependencies +# run: | +# wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz +# tar -xvf master.tar.gz +# emsdk-master/emsdk update +# emsdk-master/emsdk install latest +# emsdk-master/emsdk activate latest +# +# - name: Configure +# run: echo "tmp" +# +# - name: Build +# run: | +# pushd emsdk-master +# source ./emsdk_env.sh +# popd +# emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} +# make diff --git a/llama.cpp/.github/workflows/close-issue.yml b/llama.cpp/.github/workflows/close-issue.yml new file mode 100644 index 0000000000000000000000000000000000000000..f63860d14147f7fe75d0903ef55d98aed681c2ff --- /dev/null +++ b/llama.cpp/.github/workflows/close-issue.yml @@ -0,0 +1,28 @@ +name: Close inactive issues +on: + schedule: + - cron: "42 0 * * *" + +# Fine-grant permission +# https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token +permissions: + issues: write + +jobs: + close-issues: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/stale@v5 + with: + exempt-issue-labels: "refactor,help wanted,good first issue,research,bug" + days-before-issue-stale: 30 + days-before-issue-close: 14 + stale-issue-label: "stale" + close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." + days-before-pr-stale: -1 + days-before-pr-close: -1 + operations-per-run: 10000 + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/llama.cpp/.github/workflows/docker.yml b/llama.cpp/.github/workflows/docker.yml new file mode 100644 index 0000000000000000000000000000000000000000..bc2e5020de25c8d4c8e618c957573116f68a45a8 --- /dev/null +++ b/llama.cpp/.github/workflows/docker.yml @@ -0,0 +1,125 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# GitHub recommends pinning actions to a commit SHA. +# To get a newer version, you will need to update the SHA. +# You can also reference a tag or branch, but the action may change without warning. + +name: Publish Docker image + +on: + workflow_dispatch: # allows manual triggering + schedule: + # Rebuild daily rather than on every push because it is expensive + - cron: '12 4 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +# Fine-grant permission +# https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token +permissions: + packages: write + +jobs: + push_to_registry: + name: Push Docker image to Docker Hub + + runs-on: ubuntu-latest + env: + COMMIT_SHA: ${{ github.sha }} + strategy: + matrix: + config: + - { tag: "light", dockerfile: ".devops/llama-cli.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "server", dockerfile: ".devops/llama-server.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "full", dockerfile: ".devops/full.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "light-cuda", dockerfile: ".devops/llama-cli-cuda.Dockerfile", platforms: "linux/amd64" } + - { tag: "server-cuda", dockerfile: ".devops/llama-server-cuda.Dockerfile", platforms: "linux/amd64" } + - { tag: "full-cuda", dockerfile: ".devops/full-cuda.Dockerfile", platforms: "linux/amd64" } + - { tag: "light-musa", dockerfile: ".devops/llama-cli-musa.Dockerfile", platforms: "linux/amd64" } + - { tag: "server-musa", dockerfile: ".devops/llama-server-musa.Dockerfile", platforms: "linux/amd64" } + - { tag: "full-musa", dockerfile: ".devops/full-musa.Dockerfile", platforms: "linux/amd64" } + # Note: the rocm images are failing due to a compiler error and are disabled until this is fixed to allow the workflow to complete + #- { tag: "light-rocm", dockerfile: ".devops/llama-cli-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } + #- { tag: "server-rocm", dockerfile: ".devops/llama-server-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } + #- { tag: "full-rocm", dockerfile: ".devops/full-rocm.Dockerfile", platforms: "linux/amd64,linux/arm64" } + - { tag: "light-intel", dockerfile: ".devops/llama-cli-intel.Dockerfile", platforms: "linux/amd64" } + - { tag: "server-intel", dockerfile: ".devops/llama-server-intel.Dockerfile", platforms: "linux/amd64" } + steps: + - name: Check out the repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 # preserve git history, so we can determine the build number + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Determine tag name + id: tag + shell: bash + run: | + BUILD_NUMBER="$(git rev-list --count HEAD)" + SHORT_HASH="$(git rev-parse --short=7 HEAD)" + REPO_OWNER="${GITHUB_REPOSITORY_OWNER@L}" # to lower case + REPO_NAME="${{ github.event.repository.name }}" + + # determine tag name postfix (build number, commit hash) + if [[ "${{ env.GITHUB_BRANCH_NAME }}" == "master" ]]; then + TAG_POSTFIX="b${BUILD_NUMBER}" + else + SAFE_NAME=$(echo "${{ env.GITHUB_BRANCH_NAME }}" | tr '/' '-') + TAG_POSTFIX="${SAFE_NAME}-${SHORT_HASH}" + fi + + # list all tags possible + TAGS="" + TAGS="${TAGS}ghcr.io/${REPO_OWNER}/${REPO_NAME}:${{ matrix.config.tag }}," + TAGS="${TAGS}ghcr.io/${REPO_OWNER}/${REPO_NAME}:${{ matrix.config.tag }}-${TAG_POSTFIX}" + + echo "output_tags=$TAGS" >> $GITHUB_OUTPUT + echo "output_tags=$TAGS" # print out for debugging + env: + GITHUB_BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + GITHUB_REPOSITORY_OWNER: '${{ github.repository_owner }}' + + # https://github.com/jlumbroso/free-disk-space/tree/54081f138730dfa15788a46383842cd2f914a1be#example + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true + + - name: Build and push Docker image (tagged + versioned) + if: ${{ github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} + uses: docker/build-push-action@v6 + with: + context: . + push: true + platforms: ${{ matrix.config.platforms }} + # tag list is generated from step above + tags: ${{ steps.tag.outputs.output_tags }} + file: ${{ matrix.config.dockerfile }} diff --git a/llama.cpp/.github/workflows/editorconfig.yml b/llama.cpp/.github/workflows/editorconfig.yml new file mode 100644 index 0000000000000000000000000000000000000000..ae86e9927526521eadcef6b2ed6ecd26ef8e815b --- /dev/null +++ b/llama.cpp/.github/workflows/editorconfig.yml @@ -0,0 +1,27 @@ +name: EditorConfig Checker + +on: + workflow_dispatch: # allows manual triggering + inputs: + create_release: + description: 'Create new release' + required: true + type: boolean + push: + branches: + - master + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + editorconfig: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: editorconfig-checker/action-editorconfig-checker@main + - run: editorconfig-checker diff --git a/llama.cpp/.github/workflows/gguf-publish.yml b/llama.cpp/.github/workflows/gguf-publish.yml new file mode 100644 index 0000000000000000000000000000000000000000..3ca4d30581074cc1b69d7b7306eef170f0baa0d6 --- /dev/null +++ b/llama.cpp/.github/workflows/gguf-publish.yml @@ -0,0 +1,44 @@ +# This workflow will upload a Python Package using Twine when a GGUF release is created +# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries + +# See `gguf-py/README.md` for how to make a release. + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package + +on: + workflow_dispatch: + push: + # Pattern matched against refs/tags + tags: + - 'gguf-v*' # Push events to every version tag + + +jobs: + deploy: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.9.x' + - name: Install dependencies + run: | + cd gguf-py + python -m pip install poetry + poetry install + + - name: Build package + run: cd gguf-py && poetry build + - name: Publish package + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }} + packages-dir: gguf-py/dist diff --git a/llama.cpp/.github/workflows/labeler.yml b/llama.cpp/.github/workflows/labeler.yml new file mode 100644 index 0000000000000000000000000000000000000000..368dbdbe5dcccfff731c35b4ff1dc15bc9f85695 --- /dev/null +++ b/llama.cpp/.github/workflows/labeler.yml @@ -0,0 +1,17 @@ +name: "Pull Request Labeler" +on: +- pull_request_target + +jobs: + labeler: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + repository: "ggerganov/llama.cpp" + - uses: actions/labeler@v5 + with: + configuration-path: '.github/labeler.yml' diff --git a/llama.cpp/.github/workflows/python-check-requirements.yml b/llama.cpp/.github/workflows/python-check-requirements.yml new file mode 100644 index 0000000000000000000000000000000000000000..46e80aecd0a0cd9d44847d120e2bc9c0026dfc77 --- /dev/null +++ b/llama.cpp/.github/workflows/python-check-requirements.yml @@ -0,0 +1,33 @@ +name: Python check requirements.txt + +on: + push: + paths: + - '.github/workflows/python-check-requirements.yml' + - 'scripts/check-requirements.sh' + - 'convert*.py' + - '**/requirements*.txt' + pull_request: + paths: + - '.github/workflows/python-check-requirements.yml' + - 'scripts/check-requirements.sh' + - 'convert*.py' + - '**/requirements*.txt' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + python-check-requirements: + runs-on: ubuntu-latest + name: check-requirements + steps: + - name: Check out source repository + uses: actions/checkout@v4 + - name: Set up Python environment + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Run check-requirements.sh script + run: bash scripts/check-requirements.sh diff --git a/llama.cpp/.github/workflows/python-lint.yml b/llama.cpp/.github/workflows/python-lint.yml new file mode 100644 index 0000000000000000000000000000000000000000..ddfdf73b8fce2c12d413127eb24575dc81a8e64d --- /dev/null +++ b/llama.cpp/.github/workflows/python-lint.yml @@ -0,0 +1,30 @@ +name: flake8 Lint + +on: + push: + branches: + - master + paths: ['.github/workflows/python-lint.yml', '**/*.py'] + pull_request: + types: [opened, synchronize, reopened] + paths: ['.github/workflows/python-lint.yml', '**/*.py'] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + flake8-lint: + runs-on: ubuntu-latest + name: Lint + steps: + - name: Check out source repository + uses: actions/checkout@v4 + - name: Set up Python environment + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: flake8 Lint + uses: py-actions/flake8@v2 + with: + plugins: "flake8-no-print" diff --git a/llama.cpp/.github/workflows/python-type-check.yml b/llama.cpp/.github/workflows/python-type-check.yml new file mode 100644 index 0000000000000000000000000000000000000000..373bb601020b25597408efdb4bcbf31dc4562a18 --- /dev/null +++ b/llama.cpp/.github/workflows/python-type-check.yml @@ -0,0 +1,40 @@ +name: Python Type-Check + +on: + push: + paths: + - '.github/workflows/python-type-check.yml' + - 'pyrightconfig.json' + - '**.py' + - '**/requirements*.txt' + pull_request: + paths: + - '.github/workflows/python-type-check.yml' + - 'pyrightconfig.json' + - '**.py' + - '**/requirements*.txt' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + python-type-check: + runs-on: ubuntu-latest + name: pyright type-check + steps: + - name: Check out source repository + uses: actions/checkout@v4 + - name: Set up Python environment + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install Python dependencies + # TODO: use a venv + run: pip install -r requirements/requirements-all.txt + - name: Type-check with Pyright + uses: jakebailey/pyright-action@v2 + with: + version: 1.1.382 + level: warning + warnings: true diff --git a/llama.cpp/.github/workflows/server.yml b/llama.cpp/.github/workflows/server.yml new file mode 100644 index 0000000000000000000000000000000000000000..2e8e3348f42929469089a5b991c40027aa3459fd --- /dev/null +++ b/llama.cpp/.github/workflows/server.yml @@ -0,0 +1,191 @@ +# Server build and tests +name: Server + +on: + workflow_dispatch: # allows manual triggering + inputs: + sha: + description: 'Commit SHA1 to build' + required: false + type: string + slow_tests: + description: 'Run slow tests' + required: true + type: boolean + push: + branches: + - master + paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/**.*'] + pull_request: + types: [opened, synchronize, reopened] + paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/**.*'] + +env: + LLAMA_LOG_COLORS: 1 + LLAMA_LOG_PREFIX: 1 + LLAMA_LOG_TIMESTAMPS: 1 + LLAMA_LOG_VERBOSITY: 10 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + server: + runs-on: ubuntu-latest + + strategy: + matrix: + sanitizer: [ADDRESS, UNDEFINED] # THREAD is broken + build_type: [RelWithDebInfo] + include: + - build_type: Release + sanitizer: "" + fail-fast: false # While -DLLAMA_SANITIZE_THREAD=ON is broken + + steps: + - name: Dependencies + id: depends + run: | + sudo apt-get update + sudo apt-get -y install \ + build-essential \ + xxd \ + git \ + cmake \ + curl \ + wget \ + language-pack-en \ + libcurl4-openssl-dev + + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} + + - name: Python setup + id: setup_python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Tests dependencies + id: test_dependencies + run: | + pip install -r examples/server/tests/requirements.txt + + - name: Verify server deps + id: verify_server_deps + run: | + git config --global --add safe.directory $(realpath .) + cd examples/server + git ls-files --others --modified + git status + ./deps.sh + git status + not_ignored_files="$(git ls-files --others --modified)" + echo "Modified files: ${not_ignored_files}" + if [ -n "${not_ignored_files}" ]; then + echo "Repository is dirty or server deps are not built as expected" + echo "${not_ignored_files}" + exit 1 + fi + + - name: Build (no OpenMP) + id: cmake_build_no_openmp + if: ${{ matrix.sanitizer == 'THREAD' }} + run: | + cmake -B build \ + -DGGML_NATIVE=OFF \ + -DLLAMA_BUILD_SERVER=ON \ + -DLLAMA_CURL=ON \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ + -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON \ + -DGGML_OPENMP=OFF ; + cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server + + - name: Build + id: cmake_build + if: ${{ matrix.sanitizer != 'THREAD' }} + run: | + cmake -B build \ + -DGGML_NATIVE=OFF \ + -DLLAMA_BUILD_SERVER=ON \ + -DLLAMA_CURL=ON \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ + -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON ; + cmake --build build --config ${{ matrix.build_type }} -j $(nproc) --target llama-server + + - name: Tests + id: server_integration_tests + run: | + cd examples/server/tests + ./tests.sh + + - name: Slow tests + id: server_integration_tests_slow + if: ${{ (github.event.schedule || github.event.inputs.slow_tests == 'true') && matrix.build_type == 'Release' }} + run: | + cd examples/server/tests + SLOW_TESTS=1 ./tests.sh + + + server-windows: + runs-on: windows-2019 + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.sha || github.event.pull_request.head.sha || github.sha || github.head_ref || github.ref_name }} + + - name: libCURL + id: get_libcurl + env: + CURL_VERSION: 8.6.0_6 + run: | + curl.exe -o $env:RUNNER_TEMP/curl.zip -L "https://curl.se/windows/dl-${env:CURL_VERSION}/curl-${env:CURL_VERSION}-win64-mingw.zip" + mkdir $env:RUNNER_TEMP/libcurl + tar.exe -xvf $env:RUNNER_TEMP/curl.zip --strip-components=1 -C $env:RUNNER_TEMP/libcurl + + - name: Build + id: cmake_build + run: | + cmake -B build -DLLAMA_CURL=ON -DCURL_LIBRARY="$env:RUNNER_TEMP/libcurl/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:RUNNER_TEMP/libcurl/include" + cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} --target llama-server + + - name: Python setup + id: setup_python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Tests dependencies + id: test_dependencies + run: | + pip install -r examples/server/tests/requirements.txt + + - name: Copy Libcurl + id: prepare_libcurl + run: | + cp $env:RUNNER_TEMP/libcurl/bin/libcurl-x64.dll ./build/bin/Release/libcurl-x64.dll + + - name: Tests + id: server_integration_tests + if: ${{ !matrix.disabled_on_pr || !github.event.pull_request }} + run: | + cd examples/server/tests + $env:PYTHONIOENCODING = ":replace" + pytest -v -x + + - name: Slow tests + id: server_integration_tests_slow + if: ${{ (github.event.schedule || github.event.inputs.slow_tests == 'true') && matrix.build_type == 'Release' }} + run: | + cd examples/server/tests + $env:SLOW_TESTS = "1" + pytest -v -x diff --git a/llama.cpp/.gitignore b/llama.cpp/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..307c065f793e66eaf2a4faf10f7a06741d52bbd9 --- /dev/null +++ b/llama.cpp/.gitignore @@ -0,0 +1,140 @@ +# Extensions + +*.a +*.bat +*.bin +*.d +*.dll +*.dot +*.etag +*.exe +*.gcda +*.gcno +*.gcov +*.gguf +*.gguf.json +*.lastModified +*.log +*.metallib +*.o +*.so +*.tmp + +# IDE / OS + +.cache/ +.ccls-cache/ +.direnv/ +.DS_Store +.envrc +.idea/ +.swiftpm +.vs/ +.vscode/ +nppBackup + + +# Coverage + +gcovr-report/ +lcov-report/ + +# Build Artifacts + +tags +.build/ +build* +!build-info.cmake +!build-info.cpp.in +!build-info.sh +!build.zig +!docs/build.md +/libllama.so +/llama-* +/vulkan-shaders-gen +android-ndk-* +arm_neon.h +cmake-build-* +CMakeSettings.json +compile_commands.json +ggml-metal-embed.metal +llama-batched-swift +/rpc-server +out/ +tmp/ +autogen-*.md + +# Deprecated + +/main +/server + +# CI + +!.github/workflows/*.yml + +# Models + +models/* +models-mnt +!models/.editorconfig +!models/ggml-vocab-*.gguf* + +# Zig +zig-out/ +zig-cache/ + +# Logs + +ppl-*.txt +qnt-*.txt +perf-*.txt + +# Examples + +examples/jeopardy/results.txt +examples/server/*.css.hpp +examples/server/*.html.hpp +examples/server/*.js.hpp +examples/server/*.mjs.hpp +!build_64.sh +!examples/*.bat +!examples/*/*.kts +!examples/*/*/*.kts +!examples/sycl/*.bat +!examples/sycl/*.sh + +# Python + +/.venv +__pycache__/ +*/poetry.lock +poetry.toml + +# Nix +/result + +# Test binaries +/tests/test-backend-ops +/tests/test-double-float +/tests/test-grad0 +/tests/test-grammar-parser +/tests/test-llama-grammar +/tests/test-opt +/tests/test-quantize-fns +/tests/test-quantize-perf +/tests/test-rope +/tests/test-sampling +/tests/test-tokenizer-0 +/tests/test-tokenizer-1-bpe +/tests/test-tokenizer-1-spm + +# Scripts +!/scripts/install-oneapi.bat + +# Test models for lora adapters +/lora-tests + +# Local scripts +/run-vim.sh +/run-chat.sh diff --git a/llama.cpp/.gitmodules b/llama.cpp/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..23ce5ff059b1bd9a25266c963d2e0ba271cce693 --- /dev/null +++ b/llama.cpp/.gitmodules @@ -0,0 +1,3 @@ +[submodule "kompute"] + path = ggml/src/ggml-kompute/kompute + url = https://github.com/nomic-ai/kompute.git diff --git a/llama.cpp/.pre-commit-config.yaml b/llama.cpp/.pre-commit-config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..91d7916285081aa14f5b801935cb35d031f2e601 --- /dev/null +++ b/llama.cpp/.pre-commit-config.yaml @@ -0,0 +1,16 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +exclude: prompts/.*.txt +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.6.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files +- repo: https://github.com/PyCQA/flake8 + rev: 7.0.0 + hooks: + - id: flake8 + additional_dependencies: [flake8-no-print] diff --git a/llama.cpp/AUTHORS b/llama.cpp/AUTHORS new file mode 100644 index 0000000000000000000000000000000000000000..2eb60806ad058a78486dc61a2c37a146c2c729a6 --- /dev/null +++ b/llama.cpp/AUTHORS @@ -0,0 +1,966 @@ +# date: Thu Nov 28 20:46:15 EET 2024 +# this file is auto-generated by scripts/gen-authors.sh + +0cc4m +0xspringtime <110655352+0xspringtime@users.noreply.github.com> +20kdc +2f38b454 +3ooabkhxtn <31479382+3ooabkhxtn@users.noreply.github.com> +44670 <44670@users.noreply.github.com> +65a <10104049+65a@users.noreply.github.com> +AN Long +AT +Aarni Koskela +Aaron Miller +Aaryaman Vasishta +Abheek Gulati +Abhilash Majumder <30946547+abhilash1910@users.noreply.github.com> +Abhishek Gopinath K <31348521+overtunned@users.noreply.github.com> +Adithya Balaji +AdithyanI +Adrian +Adrian Hesketh +Ahmad Tameem <113388789+Tameem-10xE@users.noreply.github.com> +Ahmet Zeer +AidanBeltonS <87009434+AidanBeltonS@users.noreply.github.com> +AidanBeltonS +Aisuko +Akarshan Biswas +Akarshan Biswas +Al Mochkin <14274697+amochkin@users.noreply.github.com> +Albert Jin +Alberto <57916483+albbus-stack@users.noreply.github.com> +Alberto Cabrera Pérez +Alberto Cabrera Pérez +Alex +Alex Azarov +Alex Azarov +Alex Klinkhamer +Alex Klinkhamer +Alex Nguyen +Alex O'Connell <35843486+acon96@users.noreply.github.com> +Alex Petenchea +Alex Renda +Alex Tuddenham <61622354+AlexsCode@users.noreply.github.com> +Alex von Gluck IV +Alexey Parfenov +Ali Chraghi <63465728+alichraghi@users.noreply.github.com> +Ali Nehzat +Ali Tariq +Alon +AlpinDale <52078762+AlpinDale@users.noreply.github.com> +Amir +AmirAli Mirian <37371367+amiralimi@users.noreply.github.com> +Ananta Bastola +Anas Ahouzi <112881240+aahouzi@users.noreply.github.com> +András Salamon +Andreas (Andi) Kunar +Andrei +Andrew Canis +Andrew Downing +Andrew Duffy +Andrew Godfrey +Andrew Minh Nguyen <40281306+amqdn@users.noreply.github.com> +Andy Salerno +Andy Tai +Anthony Van de Gejuchte +Antonis Makropoulos +Arik Poznanski +Armen Kaleshian +Artem +Artem Zinnatullin +Artyom Lebedev +Asbjørn Olling +Ásgeir Bjarni Ingvarsson +Asghar Ghorbani +Ashish <1856117+ashishdatta@users.noreply.github.com> +Ashok Gelal <401055+ashokgelal@users.noreply.github.com> +Ashraful Islam +Atsushi Tatsuma +Austin <77757836+teleprint-me@users.noreply.github.com> +AustinMroz +BADR +Bach Le +Bailey Chittle <39804642+bachittle@users.noreply.github.com> +BarfingLemurs <128182951+BarfingLemurs@users.noreply.github.com> +Bartowski +Behnam M <58621210+ibehnam@users.noreply.github.com> +Ben Ashbaugh +Ben Garney +Ben Siraphob +Ben Williams +Benjamin Findley <39356821+Kartoffelsaft@users.noreply.github.com> +Benjamin Lecaillon <84293038+blecaillon@users.noreply.github.com> +Bernat Vadell +Bert Wagner +Bingan <70050083+binganao@users.noreply.github.com> +Bjarke Viksøe <164612031+bviksoe@users.noreply.github.com> +Bodo Graumann +Bono Lv +Borislav Stanimirov +Branden Butler +Brandon Squizzato <35474886+bsquizz@users.noreply.github.com> +Brian +Brian Cunnie +Bruce MacDonald +Bryan Honof +CJ Pais +CRD716 +Calvin Laurenson +Cameron +Cameron Kaiser +Carolinabanana <140120812+Carolinabanana@users.noreply.github.com> +CarryFun <76023481+CarryFun@users.noreply.github.com> +Carsten Kragelund Jørgensen +CarterLi999 <664681047@qq.com> +Casey Primozic +Casey Primozic +CausalLM <148736309+CausalLM@users.noreply.github.com> +Cebtenzzre +Chad Brewbaker +Changyeon Kim +Chao Jiang +Charles Xu <63788048+chaxu01@users.noreply.github.com> +Charles Xu +Chen Xi +Chen Xi +Cheng Shao +Chenguang Li <87689256+noemotiovon@users.noreply.github.com> +Chris Elrod +Chris Kuehl +Christian Demsar +Christian Demsar +Christian Falch <875252+chrfalch@users.noreply.github.com> +Christian Kögler +Christian Köhnenkamp +Christian Zhou-Zheng <59622928+christianazinn@users.noreply.github.com> +Clark Saben <76020733+csaben@users.noreply.github.com> +Clint Herron +Conrad Kramer +CrispStrobe <154636388+CrispStrobe@users.noreply.github.com> +Csaba Kecskemeti +Cuong Trinh Manh +DAN™ +Damian Stewart +Dan Johansson <164997844+eddnjjn@users.noreply.github.com> +Dan Johansson +Dane Madsen +DaniAndTheWeb <57776841+DaniAndTheWeb@users.noreply.github.com> +Daniel Bevenius +Daniel Drake +Daniel Hiltgen +Daniel Illescas Romero +Daniel Kleine <53251018+d-kleine@users.noreply.github.com> +Daniele <57776841+daniandtheweb@users.noreply.github.com> +DannyDaemonic +Dat Quoc Nguyen <2412555+datquocnguyen@users.noreply.github.com> +Dave +Dave Airlie +Dave Airlie +Dave Della Costa +David Friehs +David Kennedy +David Pflug +David Renshaw +David Sommers <12738+databyte@users.noreply.github.com> +David Yang +DavidKorczynski +Dawid Potocki +Dawid Wysocki <62249621+TortillaZHawaii@users.noreply.github.com> +Dean +Deins +Denis Spasyuk <34203011+dspasyuk@users.noreply.github.com> +Derrick T. Woolworth +Deven Mistry <31466137+deven367@users.noreply.github.com> +Dibakar Gope +Didzis Gosko +Diego Devesa +Diogo Teles Sant'Anna +Djip007 +Don Mahurin +DooWoong Lee (David) +Doomsdayrs <38189170+Doomsdayrs@users.noreply.github.com> +Dou Xinpeng <15529241576@163.com> +Dou Xinpeng <81913537+Dou-Git@users.noreply.github.com> +Douglas Hanley +Dr. Tom Murphy VII Ph.D <499244+tom7@users.noreply.github.com> +Ebey Abraham +Echo Nolan +Ed Lee +Ed Lepedus +Eddie-Wang +Edward Taylor +Elaine +Elbios <141279586+Elbios@users.noreply.github.com> +Elton Kola +Engininja2 <139037756+Engininja2@users.noreply.github.com> +Equim +Eric Curtin +Eric Curtin +Eric Sommerlade +Eric Zhang <34133756+EZForever@users.noreply.github.com> +Erik Garrison +Erik Scholz +Esko Toivonen +Ettore Di Giacinto +Evan Jones +Evan Miller +Eve <139727413+netrunnereve@users.noreply.github.com> +Evgeny Kurnevsky +Ewout ter Hoeven +ExtReMLapin <3909752+ExtReMLapin@users.noreply.github.com> +FK +Fabian +Fabio R. Sluzala +Faez Shakil +Faisal Zaghloul +Faisal Zaghloul +Fan Shupei +FantasyGmm <16450052+FantasyGmm@users.noreply.github.com> +Farbod Bijary <110523279+farbodbj@users.noreply.github.com> +Fattire <528174+fat-tire@users.noreply.github.com> +Felix +Finn Voorhees +Firat +FirstTimeEZ <179362031+FirstTimeEZ@users.noreply.github.com> +Folko-Ven <71110216+Folko-Ven@users.noreply.github.com> +Foul-Tarnished <107711110+Foul-Tarnished@users.noreply.github.com> +Francisco Melo <43780565+francis2tm@users.noreply.github.com> +Frank Mai +FrankHB +Frankie Robertson +Fred Douglas <43351173+fredlas@users.noreply.github.com> +Frederik Vogel +Gabe Goodhart +Gabe Goodhart +GainLee +Galunid +Gary Linscott +Gary Mulder +Gavin Zhao +Genkagaku.GPT +Georgi Gerganov +Gilad S +Gilad S. <7817232+giladgd@users.noreply.github.com> +Giuseppe Scrivano +GiviMAD +Govlzkoy +Guillaume "Vermeille" Sanchez +Guillaume Wenzek +Guoliang Hua <32868157+nbcsm@users.noreply.github.com> +Guoteng <32697156+SolenoidWGT@users.noreply.github.com> +Gustavo Rocha Dias <91472747+gustrd@users.noreply.github.com> +Haggai Nuchi +Halalaluyafail3 <55773281+Halalaluyafail3@users.noreply.github.com> +Hamdoud Hakem <90524568+hamdoudhakem@users.noreply.github.com> +HanishKVC +Haohui Mai +Haoxiang Fei +Harald Fernengel +Hatsune Miku <129688334+at8u@users.noreply.github.com> +HatsuneMikuUwU33 <173229399+HatsuneMikuUwU33@users.noreply.github.com> +Henk Poley +Henri Vasserman +Henrik Forstén +Herman Semenov +Hesen Peng +Hoang Nguyen +Hong Bo PENG +Hongyu Ouyang <96765450+casavaca@users.noreply.github.com> +Howard Su +Hua Jiang +Huang Qi +Huawei Lin +Hugo Roussel +Huifeng Ou <79071290+ho2103@users.noreply.github.com> +Ian Bull +Ian Bull +Ian Scrivener +Icecream95 +Ido S +IgnacioFDM +Igor Okulist +Ikko Eltociear Ashimine +Ilya Kurdyukov <59548320+ilyakurdyukov@users.noreply.github.com> +Ionoclast Laboratories +Isaac McFadyen +IsaacDynamo <61521674+IsaacDynamo@users.noreply.github.com> +Ivan +Ivan Filipov <159561759+vanaka11@users.noreply.github.com> +Ivan Komarov +Ivan Stepanov +JH23X <165871467+JH23X@users.noreply.github.com> +Jack Mousseau +Jack Mousseau +JackJollimore <130917767+JackJollimore@users.noreply.github.com> +Jaeden Amero +Jaemin Son +Jag Chadha +Jakub N +James A Capozzoli <157492257+jac-jim@users.noreply.github.com> +James Reynolds +Jan Boon +Jan Boon +Jan Ploski +Jannis Schönleber +Jared Van Bortel +Jared Van Bortel +Jason McCartney +Jason Stillerman +Jean-Christophe Hoelt +Jean-Michaël Celerier +Jed Fox +Jeff Bolz +Jeffrey Morgan +Jeffrey Quesnelle +Jeroen Mostert +Jesse Jojo Johnson +Jeximo +Jhen-Jie Hong +Jiahao Li +Jian Liao +JidongZhang-THU <1119708529@qq.com> +Jinwoo Jeong <33892306+williamjeong2@users.noreply.github.com> +Jiří Podivín <66251151+jpodivin@users.noreply.github.com> +Jiří Sejkora +Joan Fontanals +Joan Fontanals +João Dinis Ferreira +Joe Eli McIlvain +Joe Todd +Johan +Johannes Gäßler +Johannes Rudolph +John <78893154+cmp-nct@users.noreply.github.com> +John Balis +John Smith <67539080+kingsidelee@users.noreply.github.com> +JohnnyB +Jonas Wunderlich <32615971+jonas-w@users.noreply.github.com> +Jorge A <161275481+jorgealias@users.noreply.github.com> +Jose Maldonado <63384398+yukiteruamano@users.noreply.github.com> +Joseph Stahl <1269177+josephst@users.noreply.github.com> +Josh Ramer +Joyce +Juan Calderon-Perez <835733+gaby@users.noreply.github.com> +Judd +Julius Arkenberg +Jun Hee Yoo +Jun Jie <71215065+junnjiee16@users.noreply.github.com> +Junil Kim +Junyang Lin +Juraj Bednar +Justin Parker +Justin Suess +Justina Cho +Justine Tunney +Justine Tunney +Juuso Alasuutari +KASR +Kamil Tomšík +Karsten Weiss +Karthick +Karthik Kumar Viswanathan <195178+guilt@users.noreply.github.com> +Karthik Sethuraman +Kasumi <90275229+kasumi-1@users.noreply.github.com> +Kawrakow <48489457+ikawrakow@users.noreply.github.com> +Keiichi Tabata +Keke Han +Kenvix ⭐ +Kerfuffle <44031344+KerfuffleV2@users.noreply.github.com> +Kevin Gibbons +Kevin Ji <1146876+kevinji@users.noreply.github.com> +Kevin Kwok +Kevin Lo +Kevin Wang +Kolen Cheung +Konstantin Herud +Konstantin Zhuravlyov +Kunshang Ji +Kyle Liang +Kyle Mistele +Kylin <56434533+KyL0N@users.noreply.github.com> +Lars Grammel +Laura +Lee <44310445+lx200916@users.noreply.github.com> +Lee Drake +Leng Yue +Leon Knauer +LeonEricsson <70749762+LeonEricsson@users.noreply.github.com> +Leonardo Neumann +Li Tan +Linwei Wang +Liu Jia <109258120+Septa2112@users.noreply.github.com> +Liu Jia +LoganDark +Loïc Carrère +LostRuins <39025047+LostRuins@users.noreply.github.com> +Luciano +Luo Tian +Lyle Dean +M-A +M. Yusuf Sarıgöz +Ma Mingfei +Maarten ter Huurne +Mack Straight +Maël Kerbiriou +MaggotHATE +Mahesh Madhav <67384846+heshpdx@users.noreply.github.com> +Manuel <44313466+makuche@users.noreply.github.com> +Marc Köhlbrugge +Marco Matthies <71844+marcom@users.noreply.github.com> +Marcus Dunn <51931484+MarcusDunn@users.noreply.github.com> +Marian Cepok +Mark Fairbairn +Mark Zhuang +Marko Tasic +Markus Tavenrath +Martin Delille +Martin Krasser +Martin Schwaighofer +Marvin Gießing +Masaya, Kato <62578291+msy-kato@users.noreply.github.com> +MasterYi1024 <39848311+MasterYi1024@users.noreply.github.com> +Mateusz Charytoniuk +Matheus C. França +Matheus Gabriel Alves Silva +Mathieu Geli +Mathieu Nayrolles +Mathijs Henquet +Mathijs de Bruin +Matt Clayton <156335168+mattjcly@users.noreply.github.com> +Matt Pulver +Matt Stephenson +Matteo Boschini <12133566+mbosc@users.noreply.github.com> +Matteo Mortari +Mattheus Chediak +Matthew Tejo +Matvey Soloviev +Max Krasnyansky +Max Krasnyansky +Maxime <672982+maximegmd@users.noreply.github.com> +Maximilian Winter +Meng Zhang +Meng, Hengyu +Mengqing Cao +Merrick Christensen +Michael Coppola +Michael Francis +Michael Hueschen +Michael Kesper +Michael Klimenko +Michael Podvitskiy +Michael Potter +Michael de Gans +Michaël de Vries +Michał Tuszyński +Mihai +Mike +Mikko Juola +Minsoo Cheong <54794500+mscheong01@users.noreply.github.com> +Minsoo Cheong +Mirko185 +Mirror Azure <54669636+MirrorAzure@users.noreply.github.com> +MistApproach <98988043+MistApproach@users.noreply.github.com> +Miwa / Ensan <63481257+ensan-hcl@users.noreply.github.com> +Mohammadreza Hendiani +Mohammadreza Hendiani +Molly Sophia +MorganRO8 <47795945+MorganRO8@users.noreply.github.com> +Murilo Santana +Musab Gultekin +Nam D. Tran <42194884+namtranase@users.noreply.github.com> +Nathan Epstein +Natsu +NawafAlansari <72708095+NawafAlansari@users.noreply.github.com> +Nebula +Neo Zhang <14088817+arthw@users.noreply.github.com> +Neo Zhang +Neo Zhang Jianyu +Neuman Vong +Nexes the Old <124105151+Nexesenex@users.noreply.github.com> +Nexesenex <124105151+Nexesenex@users.noreply.github.com> +Niall Coates <1349685+Niall-@users.noreply.github.com> +Nicholai Tukanov +Nico Bosshard +Nicolai Weitkemper +Nicolás Pérez +Nigel Bosch +Niklas Korz +NikolaiLyssogor <59844691+NikolaiLyssogor@users.noreply.github.com> +Nikolas <127742645+nneubacher@users.noreply.github.com> +Nindaleth +OSecret <135510162+OLSecret@users.noreply.github.com> +Oleksandr Nikitin +Oleksii Maryshchenko +Olivier Chafik +Ondřej Čertík +Ouadie EL FAROUKI +PAB +Pablo Duboue +Pascal Patry +Patrice Ferlet +Paul Tsochantaris +Pavel Zloi +Pavol Rusnak +Paweł Wodnicki <151604+32bitmicro@users.noreply.github.com> +Pedro Cuenca +Peter Sugihara +Phil H <5756783+phiharri@users.noreply.github.com> +Philip Taron +Phillip Kravtsov +Pierre Alexandre SCHEMBRI +Pierrick Hymbert +Pieter Ouwerkerk +Plamen Minev +Prashant Vithule <119530321+Vithulep@users.noreply.github.com> +Przemysław Pawełczyk +Qin Yue Chen <71813199+chenqiny@users.noreply.github.com> +Qingyou Meng +Qu Zongfu <43257352+yancaoweidaode@users.noreply.github.com> +R0CKSTAR +R0CKSTAR +RJ Adriaansen +Radoslav Gerganov +Radosław Gryta +Rahul Vivek Nair <68507071+RahulVivekNair@users.noreply.github.com> +Raj Hammeer Singh Hada +Ralph Soika +Rand Xie +Randall Fitzgerald +Random Fly +Reinforce-II +Ren Xuancheng +Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com> +RhinoDevel +Riceball LEE +Rich Dougherty +Richard Kiss +Richard Roberson +Rick G <26732651+TheFlipbook@users.noreply.github.com> +Rickard Edén +Rickard Hallerbäck +Rickey Bowers Jr +Riley Stewart +Rinne +Rinne +Robert Brisita <986796+rbrisita@users.noreply.github.com> +Robert Sung-wook Shin +Robey Holderith +Robyn +Roger Meier +Roland <14355895+rbur0425@users.noreply.github.com> +Romain Biessy +Romain D <90720+Artefact2@users.noreply.github.com> +Romain Neutron +Roman Parykin +Ron Evans +Ron Jailall +Roni +Ronny Brendel +Ronsor +Rowan Hart +Ruchira Hasaranga +Ruixin Huang <18860020911@163.com> +Rune <43761327+Rune-AI@users.noreply.github.com> +RunningLeon +RunningLeon +Ryan Landay +Ryder Wishart +Ryuei +Rőczey Barnabás <31726601+An0nie@users.noreply.github.com> +SRHMorris <69468379+SRHMorris@users.noreply.github.com> +SXX +SakuraUmi +Salvador E. Tropea +Salvatore Mesoraca +Sam Spilsbury +Sami Farin <3876865+Safari77@users.noreply.github.com> +Samuel Maynard +Sang-Kil Park +Seb C <47074056+Sebby37@users.noreply.github.com> +Sebastián A +SebastianApel <13675545+SebastianApel@users.noreply.github.com> +Senemu <10880819+Senemu@users.noreply.github.com> +Sergey Alirzaev +Sergio López +Sergio López +Sertaç Özercan <852750+sozercan@users.noreply.github.com> +SeungWon Jeong <65549245+redlion0929@users.noreply.github.com> +ShadovvBeast +Shakhar Dasgupta +Shane A +Shangning Xu <32517059+xushangning@users.noreply.github.com> +Shankar +Shanshan Shen <467638484@qq.com> +Shijie <821898965@qq.com> +Shintarou Okada +Shouzheng Liu <61452103+lshzh-ww@users.noreply.github.com> +Shouzheng Liu +Shuichi Tsutsumi +Shupei Fan +Sigbjørn Skjæret +Simon Willison +Siwen Yu +Sky Yan +Slaren <2141330+slaren@users.noreply.github.com> +Slava Primenko +Small Grass Forest +SoftwareRenderer <138734813+SoftwareRenderer@users.noreply.github.com> +Someone +Someone Serge +Sourab Mangrulkar <13534540+pacman100@users.noreply.github.com> +Spencer Sutton +Srihari-mcw <96763064+Srihari-mcw@users.noreply.github.com> +Srinivas Billa +Stefan Sydow +Steffen Röcker +Stephan Walter +Stephen Nichols +Steve Bonds +Steve Grubb +Steven Prichard +Steven Roussey +Steward Garcia <57494570+FSSRepo@users.noreply.github.com> +StrangeBytesDev <141275258+StrangeBytesDev@users.noreply.github.com> +Suaj Carrot <72162667+SuajCarrot@users.noreply.github.com> +SuperUserNameMan +Sutou Kouhei +Tai Duc Nguyen +Taikono-Himazin +Tameem <113388789+AhmadTameem@users.noreply.github.com> +Tamotsu Takahashi +Thái Hoàng Tâm <75922889+RoyalHeart@users.noreply.github.com> +Thatcher Chamberlin +Theia Vogel +Thérence <13496987+Royalphax@users.noreply.github.com> +Thibault Terrasson +Thomas Klausner +Thorsten Sommer +Tim Miller +Tim Wang +Timmy Knight +Timothy Cronin <40186632+4imothy@users.noreply.github.com> +Ting Lou +Ting Sun +Tobias Lütke +Tom C +Tom Jobbins <784313+TheBloke@users.noreply.github.com> +Tomas +Tomáš Pazdiora +Tony Wasserka <4840017+neobrain@users.noreply.github.com> +Tristan Druyen +Tristan Ross +Trivikram Kamat <16024985+trivikr@users.noreply.github.com> +Tungsten842 <886724vf@anonaddy.me> +Tungsten842 +Tushar +UEXTM.com <84163508+uextm@users.noreply.github.com> +Ujjawal Panchal <31011628+Ujjawal-K-Panchal@users.noreply.github.com> +Ulrich Drepper +Uzo Nweke +Vaibhav Srivastav +Val Kharitonov +Valentin Konovalov +Valentyn Bezshapkin <61702053+valentynbez@users.noreply.github.com> +Vali Malinoiu <0x4139@gmail.com> +Victor Nogueira +Victor Z. Peng +Viet-Anh NGUYEN (Andrew) +Vinesh Janarthanan <36610342+VJHack@users.noreply.github.com> +Vlad +Vladimir +Vladimir Malyutin +Vladimir Zorin +VoidIsVoid <343750470@qq.com> +Volodymyr Vitvitskyi <72226+signalpillar@users.noreply.github.com> +WangHaoranRobin <56047610+WangHaoranRobin@users.noreply.github.com> +Weird Constructor +Welby Seely +Wentai Zhang +WillCorticesAI <150854901+WillCorticesAI@users.noreply.github.com> +William Tambellini +Willy Tarreau +Wouter <9594229+DifferentialityDevelopment@users.noreply.github.com> +Wu Jian Ping +Wu Jian Ping +Xiake Sun +Xiang (Kevin) Li +Xiao-Yong Jin +XiaotaoChen +Xiaoyi Chen +Xie Yanbo +Xingchen Song(宋星辰) +Xinpeng Dou <81913537+Dou-Git@users.noreply.github.com> +Xuan Son Nguyen +Yaiko +Yann Follet <131855179+YannFollet@users.noreply.github.com> +Yaroslav +Yazan Agha-Schrader +Yiming Cui +Yishuo Wang +Yoshi Suhara +Yoshi Suhara +Younes Belkada <49240599+younesbelkada@users.noreply.github.com> +Yueh-Po Peng <94939112+y10ab1@users.noreply.github.com> +Yui +Yuri Khrustalev +Yusuf Kağan Hanoğlu +Yuval Peled <31162840+Yuval-Peled@users.noreply.github.com> +ZHAOKAI WANG +Zane Shannon +Zay <95888118+isaiahbjork@users.noreply.github.com> +Zenix +Zhang Peiyuan +Zheng.Deng <32841220+dengzheng-cloud@users.noreply.github.com> +Zhenwei Jin <109658203+kylo5aby@users.noreply.github.com> +Zhiyuan Li +ZhouYuChen +Ziad Ben Hadj-Alouane +Ziang Wu <97337387+ZiangWu-77@users.noreply.github.com> +Zsapi +a-n-n-a-l-e-e <150648636+a-n-n-a-l-e-e@users.noreply.github.com> +adel boussaken +afrideva <95653597+afrideva@users.noreply.github.com> +agray3 +akawrykow <142945436+akawrykow@users.noreply.github.com> +alexpinel <93524949+alexpinel@users.noreply.github.com> +alonfaraj +alwqx +amd-lalithnc +amritahs-ibm +andrijdavid +anon998 <131767832+anon998@users.noreply.github.com> +anzz1 +apaz +apcameron <37645737+apcameron@users.noreply.github.com> +arch-btw <57669023+arch-btw@users.noreply.github.com> +arcrank +ardfork <134447697+ardfork@users.noreply.github.com> +arlo-phoenix <140345165+arlo-phoenix@users.noreply.github.com> +at8u <129688334+at8u@users.noreply.github.com> +automaticcat +awatuna <23447591+awatuna@users.noreply.github.com> +b4b4o +bandoti <141645996+bandoti@users.noreply.github.com> +beiller +bhubbb <79117352+bhubbb@users.noreply.github.com> +bmwl +bobqianic <129547291+bobqianic@users.noreply.github.com> +brucepro +bryanSwk <93190252+bryanSwk@users.noreply.github.com> +bsilvereagle +bssrdf +byte-6174 <88070277+byte-6174@users.noreply.github.com> +cebtenzzre +chaihahaha +chiranko <96988916+chiranko@users.noreply.github.com> +clibdev <52199778+clibdev@users.noreply.github.com> +clyang +cocktailpeanut <121128867+cocktailpeanut@users.noreply.github.com> +coezbek +comex +compilade <113953597+compilade@users.noreply.github.com> +compilade +cpumaxx <163466046+cpumaxx@users.noreply.github.com> +crasm +crasm +daboe01 +daghanerdonmez <44506702+daghanerdonmez@users.noreply.github.com> +daminho <37615795+daminho@users.noreply.github.com> +david raistrick +ddh0 +ddpasa <112642920+ddpasa@users.noreply.github.com> +deepdiffuser <112834445+deepdiffuser@users.noreply.github.com> +devojony <61173062+devojony@users.noreply.github.com> +ditsuke +divinity76 +dm4 +dotpy314 <33351922+dotpy314@users.noreply.github.com> +drbh +ds5t5 <145942675+ds5t5@users.noreply.github.com> +dylan +eastriver +ebraminio +eiery <19350831+eiery@users.noreply.github.com> +eric8607242 +fairydreaming <166155368+fairydreaming@users.noreply.github.com> +fengerhu1 <2748250768@qq.com> +fraxy-v <65565042+fraxy-v@users.noreply.github.com> +github-actions[bot] +gliptic +goerch +grahameth <96447521+grahameth@users.noreply.github.com> +gtygo +gwjr <502526+gwjr@users.noreply.github.com> +h-h-h-h <13482553+h-h-h-h@users.noreply.github.com> +hankcs +haopeng <657407891@qq.com> +hipudding +hoangmit +hongbo.mo <352280764@qq.com> +hopkins385 <98618192+hopkins385@users.noreply.github.com> +howlger +howlger +hutli <6594598+hutli@users.noreply.github.com> +hutli +hutli +hxer7963 +hydai +iSma +iacore <74560659+iacore@users.noreply.github.com> +icppWorld <124377669+icppWorld@users.noreply.github.com> +igarnier +intelmatt <61025942+intelmatt@users.noreply.github.com> +iohub +jacobi petrucciani <8117202+jpetrucciani@users.noreply.github.com> +jaime-m-p <167997752+jaime-m-p@users.noreply.github.com> +jameswu2014 <545426914@qq.com> +jdomke <28772296+jdomke@users.noreply.github.com> +jiez <373447296@qq.com> +jneem +joecryptotoo <80373433+joecryptotoo@users.noreply.github.com> +johnson442 <56517414+johnson442@users.noreply.github.com> +jojorne +jon-chuang <9093549+jon-chuang@users.noreply.github.com> +jp-x-g +jukofyork <69222624+jukofyork@users.noreply.github.com> +junchao-loongson <68935141+junchao-loongson@users.noreply.github.com> +jwj7140 <32943891+jwj7140@users.noreply.github.com> +k.h.lai +kaizau +kalomaze <66376113+kalomaze@users.noreply.github.com> +kang +katsu560 <118887472+katsu560@users.noreply.github.com> +kchro3 <62481661+kchro3@users.noreply.github.com> +khimaros +kiltyj +klosax <131523366+klosax@users.noreply.github.com> +kunal-vaishnavi <115581922+kunal-vaishnavi@users.noreply.github.com> +kunnis +kuronekosaiko +kustaaya <58045274+kustaaya@users.noreply.github.com> +kuvaus <22169537+kuvaus@users.noreply.github.com> +kwin1412 <42286931+kwin1412@users.noreply.github.com> +l3utterfly +laik +ldwang +le.chang +leejet +leo-pony +limitedAtonement +liuwei-git <14815172+liuwei-git@users.noreply.github.com> +lon <114724657+longregen@users.noreply.github.com> +loonerin <132926317+loonerin@users.noreply.github.com> +ltoniazzi <61414566+ltoniazzi@users.noreply.github.com> +luoyu-intel +m3ndax +maddes8cht <55592906+maddes8cht@users.noreply.github.com> +makomk +manikbhandari +maor-ps <154728172+maor-ps@users.noreply.github.com> +matiaslin <45382001+matiaslin@users.noreply.github.com> +matteo +mdrokz +mgroeber9110 <45620825+mgroeber9110@users.noreply.github.com> +minarchist +mj-shifu <77107165+mj-shifu@users.noreply.github.com> +mmyjona +momonga <115213907+mmnga@users.noreply.github.com> +momonga <146910567+mmngays@users.noreply.github.com> +moritzbrantner <31051084+moritzbrantner@users.noreply.github.com> +mzcu +nanahi <130121847+na-na-hi@users.noreply.github.com> +ngc92 <7938269+ngc92@users.noreply.github.com> +nhamanasu <45545786+nhamanasu@users.noreply.github.com> +niansa/tuxifan +niansa/tuxifan +nickp27 +ningshanwutuobang +nold +nopperl <54780682+nopperl@users.noreply.github.com> +nusu-github <29514220+nusu-github@users.noreply.github.com> +olexiyb +omahs <73983677+omahs@users.noreply.github.com> +oobabooga <112222186+oobabooga@users.noreply.github.com> +opparco +ostix360 <55257054+ostix360@users.noreply.github.com> +pculliton +pengxin99 +perserk +piDack <104877312+piDack@users.noreply.github.com> +pmysl +postmasters +pudepiedj +qingfengfenga <41416092+qingfengfenga@users.noreply.github.com> +qouoq +qunash +rabidcopy +rankaiyx +rhjdvsgsgks <26178113+rhjdvsgsgks@users.noreply.github.com> +rhuddleston +rimoliga <53384203+rimoliga@users.noreply.github.com> +runfuture +sandyiscool +sasha0552 +semidark +serhii-nakon <57632032+serhii-nakon@users.noreply.github.com> +sharpHL <132747147+sharpHL@users.noreply.github.com> +shibe2 +singularity <12184989+singularity-s0@users.noreply.github.com> +sjinzh +sjxx <63994076+ylsdamxssjxxdd@users.noreply.github.com> +slaren <2141330+slaren@users.noreply.github.com> +slaren +snadampal <87143774+snadampal@users.noreply.github.com> +standby24x7 +staviq +stduhpf +strawberrymelonpanda <152940198+strawberrymelonpanda@users.noreply.github.com> +swittk +takov751 <40316768+takov751@users.noreply.github.com> +tarcey +tc-mb <157115220+tc-mb@users.noreply.github.com> +texmex76 <40733439+texmex76@users.noreply.github.com> +thement <40525767+thement@users.noreply.github.com> +thewh1teagle <61390950+thewh1teagle@users.noreply.github.com> +tjohnman +toyer <2042519524@qq.com> +tslmy +ubik2 +uint256_t +uint256_t +unbounded +uvos +valiray <133289098+valiray@users.noreply.github.com> +vb +vik +viric +vodkaslime <646329483@qq.com> +vvhg1 <94630311+vvhg1@users.noreply.github.com> +vxiiduu <73044267+vxiiduu@users.noreply.github.com> +wangshuai09 <391746016@qq.com> +wbpxre150 <100937007+wbpxre150@users.noreply.github.com> +whoreson <139810751+whoreson@users.noreply.github.com> +woachk <24752637+woachk@users.noreply.github.com> +wonjun Jang +woodx <124784234+woodx9@users.noreply.github.com> +wwoodsTM <104587230+wwoodsTM@users.noreply.github.com> +wzy <32936898+Freed-Wu@users.noreply.github.com> +xaedes +xaedes +xctan +xloem <0xloem@gmail.com> +yangli2 +yuiseki +yuri@FreeBSD +zakkor +zhangkaihuo +zhentaoyu +zhouwg <6889919+zhouwg@users.noreply.github.com> +zhouwg +zrm +Ștefan-Gabriel Muscalu +杨朱 · Kiki +源文雨 <41315874+fumiama@users.noreply.github.com> +蕭澧邦 <45505768+shou692199@users.noreply.github.com> +Нияз Гарифзянов <112617865+garrnizon@users.noreply.github.com> diff --git a/llama.cpp/CMakeLists.txt b/llama.cpp/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..f84fff9e6ad42eae9cde32a19363fdfd8d0ce256 --- /dev/null +++ b/llama.cpp/CMakeLists.txt @@ -0,0 +1,222 @@ +cmake_minimum_required(VERSION 3.14) # for add_link_options and implicit target directories. +project("llama.cpp" C CXX) +include(CheckIncludeFileCXX) + +#set(CMAKE_WARN_DEPRECATED YES) +set(CMAKE_WARN_UNUSED_CLI YES) + +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +# Add path to modules +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + set(LLAMA_STANDALONE ON) + + include(git-vars) + + # configure project version + # TODO +else() + set(LLAMA_STANDALONE OFF) +endif() + +if (EMSCRIPTEN) + set(BUILD_SHARED_LIBS_DEFAULT OFF) + + option(LLAMA_WASM_SINGLE_FILE "llama: embed WASM inside the generated llama.js" ON) +else() + if (MINGW) + set(BUILD_SHARED_LIBS_DEFAULT OFF) + else() + set(BUILD_SHARED_LIBS_DEFAULT ON) + endif() +endif() + +option(BUILD_SHARED_LIBS "build shared libraries" ${BUILD_SHARED_LIBS_DEFAULT}) + +if (WIN32) + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) +endif() + +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + add_compile_options("$<$:/source-charset:utf-8>") + add_compile_options("$<$:/source-charset:utf-8>") + add_compile_options("$<$:/execution-charset:utf-8>") + add_compile_options("$<$:/execution-charset:utf-8>") +endif() + +# +# option list +# + +# debug +option(LLAMA_ALL_WARNINGS "llama: enable all compiler warnings" ON) +option(LLAMA_ALL_WARNINGS_3RD_PARTY "llama: enable all compiler warnings in 3rd party libs" OFF) + +# build +option(LLAMA_FATAL_WARNINGS "llama: enable -Werror flag" OFF) + +# sanitizers +option(LLAMA_SANITIZE_THREAD "llama: enable thread sanitizer" OFF) +option(LLAMA_SANITIZE_ADDRESS "llama: enable address sanitizer" OFF) +option(LLAMA_SANITIZE_UNDEFINED "llama: enable undefined sanitizer" OFF) + +# utils +option(LLAMA_BUILD_COMMON "llama: build common utils library" ${LLAMA_STANDALONE}) + +# extra artifacts +option(LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALONE}) +option(LLAMA_BUILD_EXAMPLES "llama: build examples" ${LLAMA_STANDALONE}) +option(LLAMA_BUILD_SERVER "llama: build server example" ${LLAMA_STANDALONE}) + +# 3rd party libs +option(LLAMA_CURL "llama: use libcurl to download model from an URL" OFF) + +# Required for relocatable CMake package +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/common.cmake) + +# override ggml options +set(GGML_SANITIZE_THREAD ${LLAMA_SANITIZE_THREAD}) +set(GGML_SANITIZE_ADDRESS ${LLAMA_SANITIZE_ADDRESS}) +set(GGML_SANITIZE_UNDEFINED ${LLAMA_SANITIZE_UNDEFINED}) +set(GGML_ALL_WARNINGS ${LLAMA_ALL_WARNINGS}) +set(GGML_FATAL_WARNINGS ${LLAMA_FATAL_WARNINGS}) + +# change the default for these ggml options +if (NOT DEFINED GGML_LLAMAFILE) + set(GGML_LLAMAFILE_DEFAULT ON) +endif() + +if (NOT DEFINED GGML_CUDA_GRAPHS) + set(GGML_CUDA_GRAPHS_DEFAULT ON) +endif() + +# transition helpers +function (llama_option_depr TYPE OLD NEW) + if (${OLD}) + message(${TYPE} "${OLD} is deprecated and will be removed in the future.\nUse ${NEW} instead\n") + set(${NEW} ON PARENT_SCOPE) + endif() +endfunction() + +llama_option_depr(FATAL_ERROR LLAMA_CUBLAS GGML_CUDA) +llama_option_depr(WARNING LLAMA_CUDA GGML_CUDA) +llama_option_depr(WARNING LLAMA_KOMPUTE GGML_KOMPUTE) +llama_option_depr(WARNING LLAMA_METAL GGML_METAL) +llama_option_depr(WARNING LLAMA_METAL_EMBED_LIBRARY GGML_METAL_EMBED_LIBRARY) +llama_option_depr(WARNING LLAMA_NATIVE GGML_NATIVE) +llama_option_depr(WARNING LLAMA_RPC GGML_RPC) +llama_option_depr(WARNING LLAMA_SYCL GGML_SYCL) +llama_option_depr(WARNING LLAMA_SYCL_F16 GGML_SYCL_F16) +llama_option_depr(WARNING LLAMA_CANN GGML_CANN) + +# +# build the library +# + +if (NOT TARGET ggml) + add_subdirectory(ggml) + # ... otherwise assume ggml is added by a parent CMakeLists.txt +endif() +add_subdirectory(src) + +# +# install +# + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +set(LLAMA_BUILD_NUMBER ${BUILD_NUMBER}) +set(LLAMA_BUILD_COMMIT ${BUILD_COMMIT}) +set(LLAMA_INSTALL_VERSION 0.0.${BUILD_NUMBER}) + +set(LLAMA_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location of header files") +set(LLAMA_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files") +set(LLAMA_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files") + +# At the moment some compile definitions are placed within the ggml/src +# directory but not exported on the `ggml` target. This could be improved by +# determining _precisely_ which defines are necessary for the llama-config +# package. +# +set(GGML_TRANSIENT_DEFINES) +get_target_property(GGML_DIRECTORY ggml SOURCE_DIR) +get_directory_property(GGML_DIR_DEFINES DIRECTORY ${GGML_DIRECTORY} COMPILE_DEFINITIONS) +if (GGML_DIR_DEFINES) + list(APPEND GGML_TRANSIENT_DEFINES ${GGML_DIR_DEFINES}) +endif() +get_target_property(GGML_TARGET_DEFINES ggml COMPILE_DEFINITIONS) +if (GGML_TARGET_DEFINES) + list(APPEND GGML_TRANSIENT_DEFINES ${GGML_TARGET_DEFINES}) +endif() +get_target_property(GGML_LINK_LIBRARIES ggml LINK_LIBRARIES) +# all public headers +set(LLAMA_PUBLIC_HEADERS + ${CMAKE_CURRENT_SOURCE_DIR}/include/llama.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/llama-cpp.h) +set_target_properties(llama PROPERTIES PUBLIC_HEADER "${LLAMA_PUBLIC_HEADERS}") +install(TARGETS llama LIBRARY PUBLIC_HEADER) + +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/llama-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/llama-config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/llama + PATH_VARS LLAMA_INCLUDE_INSTALL_DIR + LLAMA_LIB_INSTALL_DIR + LLAMA_BIN_INSTALL_DIR ) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/llama-version.cmake + VERSION ${LLAMA_INSTALL_VERSION} + COMPATIBILITY SameMajorVersion) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/llama-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/llama-version.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/llama) + +install( + FILES convert_hf_to_gguf.py + PERMISSIONS + OWNER_READ + OWNER_WRITE + OWNER_EXECUTE + GROUP_READ + GROUP_EXECUTE + WORLD_READ + WORLD_EXECUTE + DESTINATION ${CMAKE_INSTALL_BINDIR}) + +configure_file(cmake/llama.pc.in + "${CMAKE_CURRENT_BINARY_DIR}/llama.pc" + @ONLY) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/llama.pc" + DESTINATION lib/pkgconfig) + +# +# utils, programs, examples and tests +# + +if (LLAMA_BUILD_COMMON) + add_subdirectory(common) +endif() + +if (LLAMA_BUILD_COMMON AND LLAMA_BUILD_TESTS AND NOT CMAKE_JS_VERSION) + include(CTest) + add_subdirectory(tests) +endif() + +if (LLAMA_BUILD_COMMON AND LLAMA_BUILD_EXAMPLES) + add_subdirectory(examples) + add_subdirectory(pocs) +endif() diff --git a/llama.cpp/CMakePresets.json b/llama.cpp/CMakePresets.json new file mode 100644 index 0000000000000000000000000000000000000000..436448967c9af9fa53c770da10d37b2b6aaac75e --- /dev/null +++ b/llama.cpp/CMakePresets.json @@ -0,0 +1,85 @@ +{ + "version": 4, + "configurePresets": [ + { + "name": "base", + "hidden": true, + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-${presetName}", + "cacheVariables": { + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "CMAKE_INSTALL_RPATH": "$ORIGIN;$ORIGIN/.." + } + }, + { + "name": "sycl-base", + "hidden": true, + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-${presetName}", + "cacheVariables": { + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", + "CMAKE_CXX_COMPILER": "icx", + "CMAKE_C_COMPILER": "cl", + "GGML_SYCL": "ON", + "CMAKE_INSTALL_RPATH": "$ORIGIN;$ORIGIN/.." + } + }, + { "name": "debug", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } }, + { "name": "release", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, + { "name": "reldbg", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, + { "name": "static", "hidden": true, "cacheVariables": { "GGML_STATIC": "ON" } }, + { "name": "sycl_f16", "hidden": true, "cacheVariables": { "GGML_SYCL_F16": "ON" } }, + { "name": "vulkan", "hidden": true, "cacheVariables": { "GGML_VULKAN": "ON" } }, + + { + "name": "arm64-windows-msvc", "hidden": true, + "architecture": { "value": "arm64", "strategy": "external" }, + "toolset": { "value": "host=x64", "strategy": "external" }, + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/cmake/arm64-windows-msvc.cmake" + } + }, + + { + "name": "arm64-windows-llvm", "hidden": true, + "architecture": { "value": "arm64", "strategy": "external" }, + "toolset": { "value": "host=x64", "strategy": "external" }, + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/cmake/arm64-windows-llvm.cmake" + } + }, + + { + "name": "arm64-apple-clang", "hidden": true, + "architecture": { "value": "arm64", "strategy": "external" }, + "toolset": { "value": "host=x64", "strategy": "external" }, + "cacheVariables": { + "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/cmake/arm64-apple-clang.cmake" + } + }, + + { "name": "arm64-windows-llvm-debug", "inherits": [ "base", "arm64-windows-llvm", "debug" ] }, + { "name": "arm64-windows-llvm-release", "inherits": [ "base", "arm64-windows-llvm", "reldbg" ] }, + { "name": "arm64-windows-llvm+static-release", "inherits": [ "base", "arm64-windows-llvm", "reldbg", "static" ] }, + + { "name": "arm64-apple-clang-debug", "inherits": [ "base", "arm64-apple-clang", "debug" ] }, + { "name": "arm64-apple-clang-release", "inherits": [ "base", "arm64-apple-clang", "reldbg" ] }, + { "name": "arm64-apple-clang+static-release", "inherits": [ "base", "arm64-apple-clang", "reldbg", "static" ] }, + + { "name": "arm64-windows-msvc-debug", "inherits": [ "base", "arm64-windows-msvc", "debug" ] }, + { "name": "arm64-windows-msvc-release", "inherits": [ "base", "arm64-windows-msvc", "reldbg" ] }, + { "name": "arm64-windows-msvc+static-release", "inherits": [ "base", "arm64-windows-msvc", "reldbg", "static" ] }, + + { "name": "x64-windows-msvc-debug", "inherits": [ "base", "debug" ] }, + { "name": "x64-windows-msvc-release", "inherits": [ "base", "reldbg" ] }, + { "name": "x64-windows-msvc+static-release", "inherits": [ "base", "reldbg", "static" ] }, + + { "name": "x64-windows-sycl-debug", "inherits": [ "sycl-base", "debug" ] }, + { "name": "x64-windows-sycl-debug-f16", "inherits": [ "sycl-base", "debug", "sycl_f16" ] }, + { "name": "x64-windows-sycl-release", "inherits": [ "sycl-base", "release" ] }, + { "name": "x64-windows-sycl-release-f16", "inherits": [ "sycl-base", "release", "sycl_f16" ] }, + + { "name": "x64-windows-vulkan-debug", "inherits": [ "base", "vulkan", "debug" ] }, + { "name": "x64-windows-vulkan-release", "inherits": [ "base", "vulkan", "release" ] } + ] +} diff --git a/llama.cpp/CODEOWNERS b/llama.cpp/CODEOWNERS new file mode 100644 index 0000000000000000000000000000000000000000..88ab6de4fb6181258db16c24df6168e8f20a5a73 --- /dev/null +++ b/llama.cpp/CODEOWNERS @@ -0,0 +1,3 @@ +# collaborators can optionally add themselves here to indicate their availability for reviewing related PRs + +ci/ @ggerganov diff --git a/llama.cpp/CONTRIBUTING.md b/llama.cpp/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..5a85ec5d2efb452aa6805804a5d5fc3041ac618d --- /dev/null +++ b/llama.cpp/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Pull requests (for contributors) + +- Test your changes: + - Execute [the full CI locally on your machine](ci/README.md) before publishing + - Verify that the perplexity and the performance are not affected negatively by your changes (use `llama-perplexity` and `llama-bench`) + - If you modified the `ggml` source, run the `test-backend-ops` tool to check whether different backend implementations of the `ggml` operators produce consistent results (this requires access to at least two different `ggml` backends) + - If you modified a `ggml` operator or added a new one, add the corresponding test cases to `test-backend-ops` +- Consider allowing write access to your branch for faster reviews, as reviewers can push commits directly +- If your PR becomes stale, don't hesitate to ping the maintainers in the comments + +# Pull requests (for collaborators) + +- Squash-merge PRs +- Use the following format for the squashed commit title: ` : (#)`. For example: `utils : fix typo in utils.py (#1234)` +- Optionally pick a `` from here: https://github.com/ggerganov/llama.cpp/wiki/Modules +- Consider adding yourself to [CODEOWNERS](CODEOWNERS) + +# Coding guidelines + +- Avoid adding third-party dependencies, extra files, extra headers, etc. +- Always consider cross-compatibility with other operating systems and architectures +- Avoid fancy-looking modern STL constructs, use basic `for` loops, avoid templates, keep it simple +- There are no strict rules for the code style, but try to follow the patterns in the code (indentation, spaces, etc.). Vertical alignment makes things more readable and easier to batch edit +- Clean-up any trailing whitespaces, use 4 spaces for indentation, brackets on the same line, `void * ptr`, `int & a` +- Naming usually optimizes for common prefix (see https://github.com/ggerganov/ggml/pull/302#discussion_r1243240963) +- Tensors store data in row-major order. We refer to dimension 0 as columns, 1 as rows, 2 as matrices +- Matrix multiplication is unconventional: [`C = ggml_mul_mat(ctx, A, B)`](https://github.com/ggerganov/llama.cpp/blob/880e352277fc017df4d5794f0c21c44e1eae2b84/ggml.h#L1058-L1064) means $C^T = A B^T \Leftrightarrow C = B A^T.$ + +![matmul](media/matmul.png) + +# Resources + +The Github issues, PRs and discussions contain a lot of information that can be useful to get familiar with the codebase. For convenience, some of the more important information is referenced from Github projects: + +https://github.com/ggerganov/llama.cpp/projects diff --git a/llama.cpp/LICENSE b/llama.cpp/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..acb96ce78e0486e9dc7602cdcdd2f491c34f335a --- /dev/null +++ b/llama.cpp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-2024 The ggml authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/llama.cpp/Makefile b/llama.cpp/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..f5dc916f674a9908dde9b463474099199a654d15 --- /dev/null +++ b/llama.cpp/Makefile @@ -0,0 +1,1586 @@ +ifndef LLAMA_MAKEFILE +$(error The Makefile build is deprecated. Use the CMake build instead. For more details, see https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md) +endif + +# Define the default target now so that it is always the first target +BUILD_TARGETS = \ + libllava.a \ + llama-batched \ + llama-batched-bench \ + llama-bench \ + llama-cli \ + llama-convert-llama2c-to-ggml \ + llama-embedding \ + llama-eval-callback \ + llama-export-lora \ + llama-gbnf-validator \ + llama-gguf \ + llama-gguf-hash \ + llama-gguf-split \ + llama-gritlm \ + llama-imatrix \ + llama-infill \ + llama-llava-cli \ + llama-minicpmv-cli\ + llama-lookahead \ + llama-lookup \ + llama-lookup-create \ + llama-lookup-merge \ + llama-lookup-stats \ + llama-parallel \ + llama-passkey \ + llama-perplexity \ + llama-q8dot \ + llama-quantize \ + llama-quantize-stats \ + llama-retrieval \ + llama-save-load-state \ + llama-server \ + llama-simple \ + llama-simple-chat \ + llama-run \ + llama-speculative \ + llama-tokenize \ + llama-vdot \ + llama-cvector-generator \ + llama-gen-docs \ + tests/test-c.o + +# Binaries only useful for tests +TEST_TARGETS = \ + tests/test-arg-parser \ + tests/test-autorelease \ + tests/test-backend-ops \ + tests/test-chat-template \ + tests/test-double-float \ + tests/test-grammar-integration \ + tests/test-grammar-parser \ + tests/test-json-schema-to-grammar \ + tests/test-llama-grammar \ + tests/test-log \ + tests/test-model-load-cancel \ + tests/test-quantize-fns \ + tests/test-quantize-perf \ + tests/test-rope \ + tests/test-sampling \ + tests/test-tokenizer-0 \ + tests/test-tokenizer-1-bpe \ + tests/test-tokenizer-1-spm +# tests/test-opt \ + +# Legacy build targets that were renamed in #7809, but should still be removed when the project is cleaned +LEGACY_TARGETS_CLEAN = main quantize quantize-stats perplexity imatrix embedding vdot q8dot convert-llama2c-to-ggml \ + simple batched batched-bench save-load-state server gguf gguf-split eval-callback llama-bench libllava.a llava-cli baby-llama \ + retrieval speculative infill tokenize parallel export-lora lookahead lookup passkey gritlm + +# Legacy build targets that were renamed in #7809, but we want to build binaries that for them that output a deprecation warning if people try to use them. +# We don't want to clutter things too much, so we only build replacements for the most commonly used binaries. +LEGACY_TARGETS_BUILD = main quantize perplexity embedding server + +# Deprecation aliases +ifdef LLAMA_CUBLAS +$(error LLAMA_CUBLAS is removed. Use GGML_CUDA instead.) +endif + +ifdef LLAMA_CUDA +GGML_CUDA := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_KOMPUTE +GGML_KOMPUTE := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_METAL +GGML_METAL := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_RPC +GGML_RPC := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_SYCL +GGML_SYCL := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_SYCL_F16 +GGML_SYCL_F16 := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_OPENBLAS +GGML_OPENBLAS := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_OPENBLAS64 +GGML_OPENBLAS64 := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_BLIS +GGML_BLIS := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_NO_LLAMAFILE +GGML_NO_LLAMAFILE := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_NO_ACCELERATE +GGML_NO_ACCELERATE := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_NO_OPENMP +GGML_NO_OPENMP := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_NO_METAL +GGML_NO_METAL := 1 +DEPRECATE_WARNING := 1 +endif + +ifdef LLAMA_DISABLE_LOGS +REMOVE_WARNING := 1 +endif + +ifdef LLAMA_SERVER_VERBOSE +REMOVE_WARNING := 1 +endif + +ifndef UNAME_S +UNAME_S := $(shell uname -s) +endif + +ifndef UNAME_P +UNAME_P := $(shell uname -p) +endif + +ifndef UNAME_M +UNAME_M := $(shell uname -m) +endif + +# In GNU make default CXX is g++ instead of c++. Let's fix that so that users +# of non-gcc compilers don't have to provide g++ alias or wrapper. +DEFCC := cc +DEFCXX := c++ +ifeq ($(origin CC),default) +CC := $(DEFCC) +endif +ifeq ($(origin CXX),default) +CXX := $(DEFCXX) +endif + +# Mac OS + Arm can report x86_64 +# ref: https://github.com/ggerganov/whisper.cpp/issues/66#issuecomment-1282546789 +ifeq ($(UNAME_S),Darwin) + ifndef GGML_NO_METAL + GGML_METAL := 1 + endif + + GGML_NO_OPENMP := 1 + + ifneq ($(UNAME_P),arm) + SYSCTL_M := $(shell sysctl -n hw.optional.arm64 2>/dev/null) + ifeq ($(SYSCTL_M),1) + # UNAME_P := arm + # UNAME_M := arm64 + warn := $(warning Your arch is announced as x86_64, but it seems to actually be ARM64. Not fixing that can lead to bad performance. For more info see: https://github.com/ggerganov/whisper.cpp/issues/66\#issuecomment-1282546789) + endif + endif +endif + +ifdef GGML_METAL + GGML_METAL_EMBED_LIBRARY := 1 +endif + +ifdef GGML_RPC + BUILD_TARGETS += rpc-server +endif + +ifdef GGML_VULKAN + BUILD_TARGETS += vulkan-shaders-gen +endif + +default: $(BUILD_TARGETS) $(LEGACY_TARGETS_BUILD) + +test: $(TEST_TARGETS) + @failures=0; \ + for test_target in $(TEST_TARGETS); do \ + if [ "$$test_target" = "tests/test-tokenizer-0" ]; then \ + ./$$test_target $(CURDIR)/models/ggml-vocab-llama-spm.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-llama-bpe.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-phi-3.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-falcon.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-bert-bge.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-starcoder.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-gpt-2.gguf; \ + ./$$test_target $(CURDIR)/models/ggml-vocab-refact.gguf; \ + elif [ "$$test_target" = "tests/test-tokenizer-1-spm" ]; then \ + continue; \ + elif [ "$$test_target" = "tests/test-tokenizer-1-bpe" ]; then \ + continue; \ + else \ + echo "Running test $$test_target..."; \ + ./$$test_target; \ + fi; \ + if [ $$? -ne 0 ]; then \ + printf 'Test %s FAILED!\n\n' $$test_target; \ + failures=$$(( failures + 1 )); \ + else \ + printf 'Test %s passed.\n\n' $$test_target; \ + fi; \ + done; \ + if [ $$failures -gt 0 ]; then \ + printf '\n%s tests failed.\n' $$failures; \ + exit 1; \ + fi + @echo 'All tests passed.' + +all: $(BUILD_TARGETS) $(TEST_TARGETS) $(LEGACY_TARGETS_BUILD) + +ifdef RISCV_CROSS_COMPILE +CC := riscv64-unknown-linux-gnu-gcc +CXX := riscv64-unknown-linux-gnu-g++ +endif + +# +# Compile flags +# + +# keep standard at C11 and C++17 +MK_CPPFLAGS = -Iggml/include -Iggml/src -Iinclude -Isrc -Icommon -DGGML_USE_CPU +MK_CFLAGS = -std=c11 -fPIC +MK_CXXFLAGS = -std=c++17 -fPIC +MK_NVCCFLAGS = -std=c++17 + +ifdef LLAMA_NO_CCACHE +GGML_NO_CCACHE := 1 +DEPRECATE_WARNING := 1 +endif + +ifndef GGML_NO_CCACHE +CCACHE := $(shell which ccache) +ifdef CCACHE +export CCACHE_SLOPPINESS = time_macros +$(info I ccache found, compilation results will be cached. Disable with GGML_NO_CCACHE.) +CC := $(CCACHE) $(CC) +CXX := $(CCACHE) $(CXX) +else +$(info I ccache not found. Consider installing it for faster compilation.) +endif # CCACHE +endif # GGML_NO_CCACHE + +# clock_gettime came in POSIX.1b (1993) +# CLOCK_MONOTONIC came in POSIX.1-2001 / SUSv3 as optional +# posix_memalign came in POSIX.1-2001 / SUSv3 +# M_PI is an XSI extension since POSIX.1-2001 / SUSv3, came in XPG1 (1985) +MK_CPPFLAGS += -D_XOPEN_SOURCE=600 + +# Somehow in OpenBSD whenever POSIX conformance is specified +# some string functions rely on locale_t availability, +# which was introduced in POSIX.1-2008, forcing us to go higher +ifeq ($(UNAME_S),OpenBSD) + MK_CPPFLAGS += -U_XOPEN_SOURCE -D_XOPEN_SOURCE=700 +endif + +# Data types, macros and functions related to controlling CPU affinity and +# some memory allocation are available on Linux through GNU extensions in libc +ifeq ($(UNAME_S),Linux) + MK_CPPFLAGS += -D_GNU_SOURCE + MK_LDFLAGS += -ldl +endif + +# RLIMIT_MEMLOCK came in BSD, is not specified in POSIX.1, +# and on macOS its availability depends on enabling Darwin extensions +# similarly on DragonFly, enabling BSD extensions is necessary +ifeq ($(UNAME_S),Darwin) + MK_CPPFLAGS += -D_DARWIN_C_SOURCE +endif +ifeq ($(UNAME_S),DragonFly) + MK_CPPFLAGS += -D__BSD_VISIBLE +endif + +# alloca is a non-standard interface that is not visible on BSDs when +# POSIX conformance is specified, but not all of them provide a clean way +# to enable it in such cases +ifeq ($(UNAME_S),FreeBSD) + MK_CPPFLAGS += -D__BSD_VISIBLE +endif +ifeq ($(UNAME_S),NetBSD) + MK_CPPFLAGS += -D_NETBSD_SOURCE +endif +ifeq ($(UNAME_S),OpenBSD) + MK_CPPFLAGS += -D_BSD_SOURCE +endif + +ifdef GGML_SCHED_MAX_COPIES + MK_CPPFLAGS += -DGGML_SCHED_MAX_COPIES=$(GGML_SCHED_MAX_COPIES) +endif + +ifdef LLAMA_DEBUG + MK_CFLAGS += -O0 -g + MK_CXXFLAGS += -O0 -g + MK_LDFLAGS += -g + MK_NVCCFLAGS += -O0 -g + + ifeq ($(UNAME_S),Linux) + MK_CPPFLAGS += -D_GLIBCXX_ASSERTIONS + endif +else + MK_CPPFLAGS += -DNDEBUG + MK_CFLAGS += -O3 -g + MK_CXXFLAGS += -O3 -g + MK_NVCCFLAGS += -O3 -g +endif + +ifdef LLAMA_SANITIZE_THREAD + MK_CFLAGS += -fsanitize=thread -g + MK_CXXFLAGS += -fsanitize=thread -g + MK_LDFLAGS += -fsanitize=thread -g +endif + +ifdef LLAMA_SANITIZE_ADDRESS + MK_CFLAGS += -fsanitize=address -fno-omit-frame-pointer -g + MK_CXXFLAGS += -fsanitize=address -fno-omit-frame-pointer -g + MK_LDFLAGS += -fsanitize=address -fno-omit-frame-pointer -g +endif + +ifdef LLAMA_SANITIZE_UNDEFINED + MK_CFLAGS += -fsanitize=undefined -g + MK_CXXFLAGS += -fsanitize=undefined -g + MK_LDFLAGS += -fsanitize=undefined -g +endif + +ifdef LLAMA_SERVER_SSL + MK_CPPFLAGS += -DCPPHTTPLIB_OPENSSL_SUPPORT + MK_LDFLAGS += -lssl -lcrypto +endif + +ifndef GGML_NO_CPU_AARCH64 + MK_CPPFLAGS += -DGGML_USE_CPU_AARCH64 +endif + +# warnings +WARN_FLAGS = \ + -Wall \ + -Wextra \ + -Wpedantic \ + -Wcast-qual \ + -Wno-unused-function + +MK_CFLAGS += \ + $(WARN_FLAGS) \ + -Wshadow \ + -Wstrict-prototypes \ + -Wpointer-arith \ + -Wmissing-prototypes \ + -Werror=implicit-int \ + -Werror=implicit-function-declaration + +MK_CXXFLAGS += \ + $(WARN_FLAGS) \ + -Wmissing-declarations \ + -Wmissing-noreturn + +ifeq ($(LLAMA_FATAL_WARNINGS),1) + MK_CFLAGS += -Werror + MK_CXXFLAGS += -Werror +endif + +# this version of Apple ld64 is buggy +ifneq '' '$(findstring dyld-1015.7,$(shell $(CC) $(LDFLAGS) -Wl,-v 2>&1))' + MK_CPPFLAGS += -DHAVE_BUGGY_APPLE_LINKER +endif + +# OS specific +# TODO: support Windows +ifneq '' '$(filter $(UNAME_S),Linux Darwin FreeBSD NetBSD OpenBSD Haiku)' + MK_CFLAGS += -pthread + MK_CXXFLAGS += -pthread +endif + +# detect Windows +ifneq ($(findstring _NT,$(UNAME_S)),) + _WIN32 := 1 +endif + +# library name prefix +ifneq ($(_WIN32),1) + LIB_PRE := lib +endif + +# Dynamic Shared Object extension +ifneq ($(_WIN32),1) + DSO_EXT := .so +else + DSO_EXT := .dll +endif + +# Windows Sockets 2 (Winsock) for network-capable apps +ifeq ($(_WIN32),1) + LWINSOCK2 := -lws2_32 +endif + +ifdef LLAMA_GPROF + MK_CFLAGS += -pg + MK_CXXFLAGS += -pg +endif + +# Architecture specific +# TODO: probably these flags need to be tweaked on some architectures +# feel free to update the Makefile for your architecture and send a pull request or issue + +ifndef RISCV_CROSS_COMPILE + +ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 i686 amd64)) + # Use all CPU extensions that are available: + MK_CFLAGS += -march=native -mtune=native + HOST_CXXFLAGS += -march=native -mtune=native + + # Usage AVX-only + #MK_CFLAGS += -mfma -mf16c -mavx + #MK_CXXFLAGS += -mfma -mf16c -mavx + + # Usage SSSE3-only (Not is SSE3!) + #MK_CFLAGS += -mssse3 + #MK_CXXFLAGS += -mssse3 +endif + +ifneq '' '$(findstring mingw,$(shell $(CC) -dumpmachine))' + # The stack is only 16-byte aligned on Windows, so don't let gcc emit aligned moves. + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412 + # https://github.com/ggerganov/llama.cpp/issues/2922 + MK_CFLAGS += -Xassembler -muse-unaligned-vector-move + MK_CXXFLAGS += -Xassembler -muse-unaligned-vector-move + + # Target Windows 8 for PrefetchVirtualMemory + MK_CPPFLAGS += -D_WIN32_WINNT=0x602 +endif + +ifneq ($(filter aarch64%,$(UNAME_M)),) + # Apple M1, M2, etc. + # Raspberry Pi 3, 4, Zero 2 (64-bit) + # Nvidia Jetson + MK_CFLAGS += -mcpu=native + MK_CXXFLAGS += -mcpu=native + JETSON_RELEASE_INFO = $(shell jetson_release) + ifdef JETSON_RELEASE_INFO + ifneq ($(filter TX2%,$(JETSON_RELEASE_INFO)),) + JETSON_EOL_MODULE_DETECT = 1 + CC = aarch64-unknown-linux-gnu-gcc + cxx = aarch64-unknown-linux-gnu-g++ + endif + endif +endif + +ifneq ($(filter armv6%,$(UNAME_M)),) + # Raspberry Pi 1, Zero + MK_CFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access + MK_CXXFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access +endif + +ifneq ($(filter armv7%,$(UNAME_M)),) + # Raspberry Pi 2 + MK_CFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access -funsafe-math-optimizations + MK_CXXFLAGS += -mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access -funsafe-math-optimizations +endif + +ifneq ($(filter armv8%,$(UNAME_M)),) + # Raspberry Pi 3, 4, Zero 2 (32-bit) + MK_CFLAGS += -mfp16-format=ieee -mno-unaligned-access + MK_CXXFLAGS += -mfp16-format=ieee -mno-unaligned-access +endif + +ifneq ($(filter ppc64%,$(UNAME_M)),) + POWER9_M := $(shell grep "POWER9" /proc/cpuinfo) + ifneq (,$(findstring POWER9,$(POWER9_M))) + MK_CFLAGS += -mcpu=power9 + MK_CXXFLAGS += -mcpu=power9 + endif +endif + +ifneq ($(filter ppc64le%,$(UNAME_M)),) + MK_CFLAGS += -mcpu=powerpc64le + MK_CXXFLAGS += -mcpu=powerpc64le + CUDA_POWER_ARCH = 1 +endif + +ifneq ($(filter loongarch64%,$(UNAME_M)),) + MK_CFLAGS += -mlasx + MK_CXXFLAGS += -mlasx +endif + +ifneq ($(filter riscv64%,$(UNAME_M)),) + MK_CFLAGS += -march=rv64gcv -mabi=lp64d + MK_CXXFLAGS += -march=rv64gcv -mabi=lp64d +endif + +else # RISC-V CROSS COMPILATION + MK_CFLAGS += -march=rv64gcv -mabi=lp64d + MK_CXXFLAGS += -march=rv64gcv -mabi=lp64d +endif + +ifndef GGML_NO_ACCELERATE + # Mac OS - include Accelerate framework. + # `-framework Accelerate` works both with Apple Silicon and Mac Intel + ifeq ($(UNAME_S),Darwin) + MK_CPPFLAGS += -DGGML_USE_ACCELERATE -DGGML_USE_BLAS -DGGML_BLAS_USE_ACCELERATE + MK_CPPFLAGS += -DACCELERATE_NEW_LAPACK + MK_CPPFLAGS += -DACCELERATE_LAPACK_ILP64 + MK_LDFLAGS += -framework Accelerate + OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o + endif +endif # GGML_NO_ACCELERATE + +ifndef GGML_NO_OPENMP + MK_CPPFLAGS += -DGGML_USE_OPENMP + MK_CFLAGS += -fopenmp + MK_CXXFLAGS += -fopenmp +endif # GGML_NO_OPENMP + +ifdef GGML_OPENBLAS + MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas) + MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas) + MK_LDFLAGS += $(shell pkg-config --libs openblas) + OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o +endif # GGML_OPENBLAS + +ifdef GGML_OPENBLAS64 + MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas64) + MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas64) + MK_LDFLAGS += $(shell pkg-config --libs openblas64) + OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o +endif # GGML_OPENBLAS64 + +ifdef GGML_BLIS + MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_BLIS -I/usr/local/include/blis -I/usr/include/blis + MK_LDFLAGS += -lblis -L/usr/local/lib + OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o +endif # GGML_BLIS + +ifdef GGML_NVPL + MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_NVPL -DNVPL_ILP64 -I/usr/local/include/nvpl_blas -I/usr/include/nvpl_blas + MK_LDFLAGS += -L/usr/local/lib -lnvpl_blas_core -lnvpl_blas_ilp64_gomp + OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o +endif # GGML_NVPL + +ifndef GGML_NO_LLAMAFILE + MK_CPPFLAGS += -DGGML_USE_LLAMAFILE + OBJ_GGML_EXT += ggml/src/ggml-cpu/llamafile/sgemm.o +endif + +ifndef GGML_NO_AMX + MK_CPPFLAGS += -DGGML_USE_AMX + OBJ_GGML_EXT += ggml/src/ggml-cpu/amx/amx.o ggml/src/ggml-cpu/amx/mmq.o +endif + +# only necessary for the CPU backend files +MK_CPPFLAGS += -Iggml/src/ggml-cpu + +ifdef GGML_RPC + MK_CPPFLAGS += -DGGML_USE_RPC + OBJ_GGML_EXT += ggml/src/ggml-rpc.o +endif # GGML_RPC + +OBJ_CUDA_TMPL = $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-wmma*.cu)) +OBJ_CUDA_TMPL += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/mmq*.cu)) + +ifdef GGML_CUDA_FA_ALL_QUANTS + OBJ_CUDA_TMPL += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-vec*.cu)) +else + OBJ_CUDA_TMPL += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-vec*q4_0-q4_0.cu)) + OBJ_CUDA_TMPL += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-vec*q8_0-q8_0.cu)) + OBJ_CUDA_TMPL += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-vec*f16-f16.cu)) +endif # GGML_CUDA_FA_ALL_QUANTS + +ifdef GGML_CUDA + ifneq ('', '$(wildcard /opt/cuda)') + CUDA_PATH ?= /opt/cuda + else + CUDA_PATH ?= /usr/local/cuda + endif + + MK_CPPFLAGS += -DGGML_USE_CUDA -DGGML_CUDA_USE_GRAPHS -I$(CUDA_PATH)/include -I$(CUDA_PATH)/targets/$(UNAME_M)-linux/include + MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L$(CUDA_PATH)/lib64/stubs -L/usr/lib/wsl/lib + MK_NVCCFLAGS += -use_fast_math + + OBJ_GGML_EXT += ggml/src/ggml-cuda/ggml-cuda.o + OBJ_GGML_EXT += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu)) + OBJ_GGML_EXT += $(OBJ_CUDA_TMPL) + +ifdef LLAMA_FATAL_WARNINGS + MK_NVCCFLAGS += -Werror all-warnings +endif # LLAMA_FATAL_WARNINGS + +ifndef JETSON_EOL_MODULE_DETECT + MK_NVCCFLAGS += --forward-unknown-to-host-compiler +endif # JETSON_EOL_MODULE_DETECT + +ifdef LLAMA_DEBUG + MK_NVCCFLAGS += -lineinfo +endif # LLAMA_DEBUG + +ifdef GGML_CUDA_DEBUG + MK_NVCCFLAGS += --device-debug +endif # GGML_CUDA_DEBUG + +ifdef GGML_CUDA_NVCC + NVCC = $(CCACHE) $(GGML_CUDA_NVCC) +else + NVCC = $(CCACHE) nvcc +endif # GGML_CUDA_NVCC + +ifdef CUDA_DOCKER_ARCH + MK_NVCCFLAGS += -Wno-deprecated-gpu-targets -arch=$(CUDA_DOCKER_ARCH) +else ifndef CUDA_POWER_ARCH + MK_NVCCFLAGS += -arch=native +endif # CUDA_DOCKER_ARCH + +ifdef GGML_CUDA_FORCE_MMQ + MK_NVCCFLAGS += -DGGML_CUDA_FORCE_MMQ +endif # GGML_CUDA_FORCE_MMQ + +ifdef GGML_CUDA_FORCE_CUBLAS + MK_NVCCFLAGS += -DGGML_CUDA_FORCE_CUBLAS +endif # GGML_CUDA_FORCE_CUBLAS + +ifdef GGML_CUDA_F16 + MK_NVCCFLAGS += -DGGML_CUDA_F16 +endif # GGML_CUDA_F16 + +ifdef GGML_CUDA_DMMV_F16 + MK_NVCCFLAGS += -DGGML_CUDA_F16 +endif # GGML_CUDA_DMMV_F16 + +ifdef GGML_CUDA_PEER_MAX_BATCH_SIZE + MK_NVCCFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=$(GGML_CUDA_PEER_MAX_BATCH_SIZE) +else + MK_NVCCFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=128 +endif # GGML_CUDA_PEER_MAX_BATCH_SIZE + +ifdef GGML_CUDA_NO_PEER_COPY + MK_NVCCFLAGS += -DGGML_CUDA_NO_PEER_COPY +endif # GGML_CUDA_NO_PEER_COPY + +ifdef GGML_CUDA_CCBIN + MK_NVCCFLAGS += -ccbin $(GGML_CUDA_CCBIN) +endif # GGML_CUDA_CCBIN + +ifdef GGML_CUDA_FA_ALL_QUANTS + MK_NVCCFLAGS += -DGGML_CUDA_FA_ALL_QUANTS +endif # GGML_CUDA_FA_ALL_QUANTS + +ifdef JETSON_EOL_MODULE_DETECT +define NVCC_COMPILE + $(NVCC) -I. -Icommon -D_XOPEN_SOURCE=600 -D_GNU_SOURCE -DNDEBUG -DGGML_USE_CUDA -I/usr/local/cuda/include -I/opt/cuda/include -I/usr/local/cuda/targets/aarch64-linux/include -std=c++11 -O3 $(NVCCFLAGS) $(CPPFLAGS) -Xcompiler "$(CUDA_CXXFLAGS)" -c $< -o $@ +endef # NVCC_COMPILE +else +define NVCC_COMPILE + $(NVCC) $(NVCCFLAGS) $(CPPFLAGS) -Xcompiler "$(CUDA_CXXFLAGS)" -c $< -o $@ +endef # NVCC_COMPILE +endif # JETSON_EOL_MODULE_DETECT + +ggml/src/ggml-cuda/%.o: \ + ggml/src/ggml-cuda/%.cu \ + ggml/include/ggml.h \ + ggml/src/ggml-common.h \ + ggml/src/ggml-cuda/common.cuh + $(NVCC_COMPILE) + +ggml/src/ggml-cuda/ggml-cuda.o: \ + ggml/src/ggml-cuda/ggml-cuda.cu \ + ggml/include/ggml-cuda.h \ + ggml/include/ggml.h \ + ggml/include/ggml-backend.h \ + ggml/src/ggml-backend-impl.h \ + ggml/src/ggml-common.h \ + $(wildcard ggml/src/ggml-cuda/*.cuh) + $(NVCC_COMPILE) +endif # GGML_CUDA + +ifdef GGML_VULKAN + MK_CPPFLAGS += -DGGML_USE_VULKAN + MK_LDFLAGS += $(shell pkg-config --libs vulkan) + OBJ_GGML_EXT += ggml/src/ggml-vulkan.o ggml/src/ggml-vulkan-shaders.o + +ifdef GGML_VULKAN_CHECK_RESULTS + MK_CPPFLAGS += -DGGML_VULKAN_CHECK_RESULTS +endif + +ifdef GGML_VULKAN_DEBUG + MK_CPPFLAGS += -DGGML_VULKAN_DEBUG +endif + +ifdef GGML_VULKAN_MEMORY_DEBUG + MK_CPPFLAGS += -DGGML_VULKAN_MEMORY_DEBUG +endif + +ifdef GGML_VULKAN_PERF + MK_CPPFLAGS += -DGGML_VULKAN_PERF +endif + +ifdef GGML_VULKAN_VALIDATE + MK_CPPFLAGS += -DGGML_VULKAN_VALIDATE +endif + +ifdef GGML_VULKAN_RUN_TESTS + MK_CPPFLAGS += -DGGML_VULKAN_RUN_TESTS +endif + +GLSLC_CMD = glslc +_ggml_vk_genshaders_cmd = $(shell pwd)/vulkan-shaders-gen +_ggml_vk_header = ggml/src/ggml-vulkan-shaders.hpp +_ggml_vk_source = ggml/src/ggml-vulkan-shaders.cpp +_ggml_vk_input_dir = ggml/src/ggml-vulkan/vulkan-shaders +_ggml_vk_shader_deps = $(echo $(_ggml_vk_input_dir)/*.comp) + +ggml/src/ggml-vulkan.o: ggml/src/ggml-vulkan/ggml-vulkan.cpp ggml/include/ggml-vulkan.h $(_ggml_vk_header) $(_ggml_vk_source) + $(CXX) $(CXXFLAGS) $(shell pkg-config --cflags vulkan) -c $< -o $@ + +$(_ggml_vk_header): $(_ggml_vk_source) + +$(_ggml_vk_source): $(_ggml_vk_shader_deps) vulkan-shaders-gen + $(_ggml_vk_genshaders_cmd) \ + --glslc $(GLSLC_CMD) \ + --input-dir $(_ggml_vk_input_dir) \ + --target-hpp $(_ggml_vk_header) \ + --target-cpp $(_ggml_vk_source) + +vulkan-shaders-gen: ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp + $(CXX) $(CXXFLAGS) -o $@ $(LDFLAGS) ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp + +endif # GGML_VULKAN + +ifdef GGML_HIP + ifeq ($(wildcard /opt/rocm),) + ROCM_PATH ?= /usr + AMDGPU_TARGETS ?= $(shell $(shell which amdgpu-arch)) + else + ROCM_PATH ?= /opt/rocm + AMDGPU_TARGETS ?= $(shell $(ROCM_PATH)/llvm/bin/amdgpu-arch) + endif + + MK_CPPFLAGS += -DGGML_USE_HIP -DGGML_USE_CUDA + +ifdef GGML_HIP_UMA + MK_CPPFLAGS += -DGGML_HIP_UMA +endif # GGML_HIP_UMA + + MK_LDFLAGS += -L$(ROCM_PATH)/lib -Wl,-rpath=$(ROCM_PATH)/lib + MK_LDFLAGS += -L$(ROCM_PATH)/lib64 -Wl,-rpath=$(ROCM_PATH)/lib64 + MK_LDFLAGS += -lhipblas -lamdhip64 -lrocblas + + HIPCC ?= $(CCACHE) $(ROCM_PATH)/bin/hipcc + + HIPFLAGS += $(addprefix --offload-arch=,$(AMDGPU_TARGETS)) + +ifdef GGML_CUDA_FORCE_MMQ + HIPFLAGS += -DGGML_CUDA_FORCE_MMQ +endif # GGML_CUDA_FORCE_MMQ + +ifdef GGML_CUDA_FORCE_CUBLAS + HIPFLAGS += -DGGML_CUDA_FORCE_CUBLAS +endif # GGML_CUDA_FORCE_CUBLAS + +ifdef GGML_CUDA_NO_PEER_COPY + HIPFLAGS += -DGGML_CUDA_NO_PEER_COPY +endif # GGML_CUDA_NO_PEER_COPY + + OBJ_GGML_EXT += ggml/src/ggml-cuda/ggml-cuda.o + OBJ_GGML_EXT += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu)) + OBJ_GGML_EXT += $(OBJ_CUDA_TMPL) + +ggml/src/ggml-cuda/ggml-cuda.o: \ + ggml/src/ggml-cuda/ggml-cuda.cu \ + ggml/include/ggml-cuda.h \ + ggml/include/ggml.h \ + ggml/include/ggml-backend.h \ + ggml/src/ggml-backend-impl.h \ + ggml/src/ggml-common.h \ + $(wildcard ggml/src/ggml-cuda/*.cuh) + $(HIPCC) $(CXXFLAGS) $(HIPFLAGS) -x hip -c -o $@ $< + +ggml/src/ggml-cuda/%.o: \ + ggml/src/ggml-cuda/%.cu \ + ggml/include/ggml.h \ + ggml/src/ggml-common.h \ + ggml/src/ggml-cuda/common.cuh + $(HIPCC) $(CXXFLAGS) $(HIPFLAGS) -x hip -c -o $@ $< +endif # GGML_HIP + +ifdef GGML_MUSA + ifeq ($(wildcard /opt/musa),) + MUSA_PATH ?= /usr/local/musa + else + MUSA_PATH ?= /opt/musa + endif + MUSA_ARCHITECTURES ?= 21;22 + + MK_CPPFLAGS += -DGGML_USE_MUSA -DGGML_USE_CUDA + MK_LDFLAGS += -L$(MUSA_PATH)/lib -Wl,-rpath=$(MUSA_PATH)/lib + MK_LDFLAGS += -lmusa -lmusart -lmublas + + ifndef GGML_NO_OPENMP + # For Ubuntu Focal + MK_CPPFLAGS += -I/usr/lib/llvm-10/include/openmp + MK_LDFLAGS += -L/usr/lib/llvm-10/lib + # For Ubuntu Jammy + MK_CPPFLAGS += -I/usr/lib/llvm-14/lib/clang/14.0.0/include + MK_LDFLAGS += -L/usr/lib/llvm-14/lib + endif # GGML_NO_OPENMP + + CC := $(MUSA_PATH)/bin/clang + CXX := $(MUSA_PATH)/bin/clang++ + MCC := $(CCACHE) $(MUSA_PATH)/bin/mcc + + MUSAFLAGS = -x musa -mtgpu + MUSAFLAGS += $(foreach arch,$(subst ;, ,$(MUSA_ARCHITECTURES)),--cuda-gpu-arch=mp_$(arch)) + +ifdef GGML_CUDA_FORCE_MMQ + MUSAFLAGS += -DGGML_CUDA_FORCE_MMQ +endif # GGML_CUDA_FORCE_MMQ + +ifdef GGML_CUDA_FORCE_CUBLAS + MUSAFLAGS += -DGGML_CUDA_FORCE_CUBLAS +endif # GGML_CUDA_FORCE_CUBLAS + +ifdef GGML_CUDA_F16 + MUSAFLAGS += -DGGML_CUDA_F16 +endif # GGML_CUDA_F16 + +ifdef GGML_CUDA_DMMV_F16 + MUSAFLAGS += -DGGML_CUDA_F16 +endif # GGML_CUDA_DMMV_F16 + +ifdef GGML_CUDA_PEER_MAX_BATCH_SIZE + MUSAFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=$(GGML_CUDA_PEER_MAX_BATCH_SIZE) +else + MUSAFLAGS += -DGGML_CUDA_PEER_MAX_BATCH_SIZE=128 +endif # GGML_CUDA_PEER_MAX_BATCH_SIZE + +ifdef GGML_CUDA_NO_PEER_COPY + MUSAFLAGS += -DGGML_CUDA_NO_PEER_COPY +endif # GGML_CUDA_NO_PEER_COPY + +ifdef GGML_CUDA_FA_ALL_QUANTS + MUSAFLAGS += -DGGML_CUDA_FA_ALL_QUANTS +endif # GGML_CUDA_FA_ALL_QUANTS + + OBJ_GGML_EXT += ggml/src/ggml-cuda/ggml-cuda.o + OBJ_GGML_EXT += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu)) + OBJ_GGML_EXT += $(OBJ_CUDA_TMPL) + +ggml/src/ggml-cuda/ggml-cuda.o: \ + ggml/src/ggml-cuda/ggml-cuda.cu \ + ggml/include/ggml-cuda.h \ + ggml/include/ggml.h \ + ggml/include/ggml-backend.h \ + ggml/src/ggml-backend-impl.h \ + ggml/src/ggml-common.h \ + $(wildcard ggml/src/ggml-cuda/*.cuh) + $(MCC) $(CXXFLAGS) $(MUSAFLAGS) -c -o $@ $< + +ggml/src/ggml-cuda/%.o: \ + ggml/src/ggml-cuda/%.cu \ + ggml/include/ggml.h \ + ggml/src/ggml-common.h \ + ggml/src/ggml-cuda/common.cuh + $(MCC) $(CXXFLAGS) $(MUSAFLAGS) -c -o $@ $< +endif # GGML_MUSA + +ifdef GGML_METAL + MK_CPPFLAGS += -DGGML_USE_METAL + MK_LDFLAGS += -framework Foundation -framework Metal -framework MetalKit + OBJ_GGML_EXT += ggml/src/ggml-metal/ggml-metal.o + +ifdef GGML_METAL_USE_BF16 + MK_CPPFLAGS += -DGGML_METAL_USE_BF16 +endif # GGML_METAL_USE_BF16 +ifdef GGML_METAL_NDEBUG + MK_CPPFLAGS += -DGGML_METAL_NDEBUG +endif +ifdef GGML_METAL_EMBED_LIBRARY + MK_CPPFLAGS += -DGGML_METAL_EMBED_LIBRARY + OBJ_GGML_EXT += ggml/src/ggml-metal-embed.o +endif +endif # GGML_METAL + +ifdef GGML_METAL +ggml/src/ggml-metal/ggml-metal.o: \ + ggml/src/ggml-metal/ggml-metal.m \ + ggml/src/ggml-metal/ggml-metal-impl.h \ + ggml/include/ggml-metal.h \ + ggml/include/ggml.h + $(CC) $(CFLAGS) -c $< -o $@ + +ifdef GGML_METAL_EMBED_LIBRARY +ggml/src/ggml-metal-embed.o: \ + ggml/src/ggml-metal/ggml-metal.metal \ + ggml/src/ggml-metal/ggml-metal-impl.h \ + ggml/src/ggml-common.h + @echo "Embedding Metal library" + @sed -e '/__embed_ggml-common.h__/r ggml/src/ggml-common.h' -e '/__embed_ggml-common.h__/d' < ggml/src/ggml-metal/ggml-metal.metal > ggml/src/ggml-metal/ggml-metal-embed.metal.tmp + @sed -e '/#include "ggml-metal-impl.h"/r ggml/src/ggml-metal/ggml-metal-impl.h' -e '/#include "ggml-metal-impl.h"/d' < ggml/src/ggml-metal/ggml-metal-embed.metal.tmp > ggml/src/ggml-metal/ggml-metal-embed.metal + $(eval TEMP_ASSEMBLY=$(shell mktemp -d)) + @echo ".section __DATA, __ggml_metallib" > $(TEMP_ASSEMBLY)/ggml-metal-embed.s + @echo ".globl _ggml_metallib_start" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s + @echo "_ggml_metallib_start:" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s + @echo ".incbin \"ggml/src/ggml-metal/ggml-metal-embed.metal\"" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s + @echo ".globl _ggml_metallib_end" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s + @echo "_ggml_metallib_end:" >> $(TEMP_ASSEMBLY)/ggml-metal-embed.s + $(CC) $(CFLAGS) -c $(TEMP_ASSEMBLY)/ggml-metal-embed.s -o $@ + @rm -f ${TEMP_ASSEMBLY}/ggml-metal-embed.s + @rmdir ${TEMP_ASSEMBLY} +endif +endif # GGML_METAL + +DIR_GGML = ggml +DIR_LLAMA = src +DIR_COMMON = common + +OBJ_GGML = \ + $(DIR_GGML)/src/ggml.o \ + $(DIR_GGML)/src/ggml-aarch64.o \ + $(DIR_GGML)/src/ggml-alloc.o \ + $(DIR_GGML)/src/ggml-backend.o \ + $(DIR_GGML)/src/ggml-backend-reg.o \ + $(DIR_GGML)/src/ggml-opt.o \ + $(DIR_GGML)/src/ggml-quants.o \ + $(DIR_GGML)/src/ggml-threading.o \ + $(DIR_GGML)/src/ggml-cpu/ggml-cpu.o \ + $(DIR_GGML)/src/ggml-cpu/ggml-cpu-cpp.o \ + $(DIR_GGML)/src/ggml-cpu/ggml-cpu-aarch64.o \ + $(DIR_GGML)/src/ggml-cpu/ggml-cpu-quants.o \ + $(OBJ_GGML_EXT) + +OBJ_LLAMA = \ + $(DIR_LLAMA)/llama.o \ + $(DIR_LLAMA)/llama-vocab.o \ + $(DIR_LLAMA)/llama-grammar.o \ + $(DIR_LLAMA)/llama-sampling.o \ + $(DIR_LLAMA)/unicode.o \ + $(DIR_LLAMA)/unicode-data.o + +OBJ_COMMON = \ + $(DIR_COMMON)/common.o \ + $(DIR_COMMON)/arg.o \ + $(DIR_COMMON)/log.o \ + $(DIR_COMMON)/console.o \ + $(DIR_COMMON)/ngram-cache.o \ + $(DIR_COMMON)/sampling.o \ + $(DIR_COMMON)/speculative.o \ + $(DIR_COMMON)/build-info.o \ + $(DIR_COMMON)/json-schema-to-grammar.o + +OBJ_ALL = $(OBJ_GGML) $(OBJ_LLAMA) $(OBJ_COMMON) + +LIB_GGML = $(LIB_PRE)ggml$(DSO_EXT) +LIB_GGML_S = $(LIB_PRE)ggml.a + +LIB_LLAMA = $(LIB_PRE)llama$(DSO_EXT) +LIB_LLAMA_S = $(LIB_PRE)llama.a + +LIB_COMMON = $(LIB_PRE)common$(DSO_EXT) +LIB_COMMON_S = $(LIB_PRE)common.a + +LIB_ALL = $(LIB_GGML) $(LIB_LLAMA) $(LIB_COMMON) +LIB_ALL_S = $(LIB_GGML_S) $(LIB_LLAMA_S) $(LIB_COMMON_S) + +GF_CC := $(CC) +include scripts/get-flags.mk + +# combine build flags with cmdline overrides +override CPPFLAGS := $(MK_CPPFLAGS) $(CPPFLAGS) +override CFLAGS := $(CPPFLAGS) $(MK_CFLAGS) $(GF_CFLAGS) $(CFLAGS) +BASE_CXXFLAGS := $(MK_CXXFLAGS) $(CXXFLAGS) +override CXXFLAGS := $(BASE_CXXFLAGS) $(HOST_CXXFLAGS) $(GF_CXXFLAGS) $(CPPFLAGS) +override NVCCFLAGS := $(MK_NVCCFLAGS) $(NVCCFLAGS) +override LDFLAGS := $(MK_LDFLAGS) $(LDFLAGS) + +# identify CUDA host compiler +ifdef GGML_CUDA +GF_CC := $(NVCC) $(NVCCFLAGS) 2>/dev/null .c -Xcompiler +include scripts/get-flags.mk +CUDA_CXXFLAGS := $(BASE_CXXFLAGS) $(GF_CXXFLAGS) -Wno-pedantic +endif + +ifdef LLAMA_CURL +override CXXFLAGS := $(CXXFLAGS) -DLLAMA_USE_CURL +override LDFLAGS := $(LDFLAGS) -lcurl +endif + +# +# Print build information +# + +$(info I llama.cpp build info: ) +$(info I UNAME_S: $(UNAME_S)) +$(info I UNAME_P: $(UNAME_P)) +$(info I UNAME_M: $(UNAME_M)) +$(info I CFLAGS: $(CFLAGS)) +$(info I CXXFLAGS: $(CXXFLAGS)) +$(info I NVCCFLAGS: $(NVCCFLAGS)) +$(info I LDFLAGS: $(LDFLAGS)) +$(info I CC: $(shell $(CC) --version | head -n 1)) +$(info I CXX: $(shell $(CXX) --version | head -n 1)) +ifdef GGML_CUDA +$(info I NVCC: $(shell $(NVCC) --version | tail -n 1)) +CUDA_VERSION := $(shell $(NVCC) --version | grep -oP 'release (\K[0-9]+\.[0-9])') +ifeq ($(shell awk -v "v=$(CUDA_VERSION)" 'BEGIN { print (v < 11.7) }'),1) + +ifndef CUDA_DOCKER_ARCH +ifndef CUDA_POWER_ARCH +$(error I ERROR: For CUDA versions < 11.7 a target CUDA architecture must be explicitly provided via environment variable CUDA_DOCKER_ARCH, e.g. by running "export CUDA_DOCKER_ARCH=compute_XX" on Unix-like systems, where XX is the minimum compute capability that the code needs to run on. A list with compute capabilities can be found here: https://developer.nvidia.com/cuda-gpus ) +endif # CUDA_POWER_ARCH +endif # CUDA_DOCKER_ARCH + +endif # eq ($(shell echo "$(CUDA_VERSION) < 11.7" | bc),1) +endif # GGML_CUDA +$(info ) + +ifdef DEPRECATE_WARNING +$(info !!! DEPRECATION WARNING !!!) +$(info The following LLAMA_ options are deprecated and will be removed in the future. Use the GGML_ prefix instead) +$(info - LLAMA_CUDA) +$(info - LLAMA_METAL) +$(info - LLAMA_METAL_EMBED_LIBRARY) +$(info - LLAMA_OPENMP) +$(info - LLAMA_RPC) +$(info - LLAMA_SYCL) +$(info - LLAMA_SYCL_F16) +$(info - LLAMA_OPENBLAS) +$(info - LLAMA_OPENBLAS64) +$(info - LLAMA_BLIS) +$(info - LLAMA_NO_LLAMAFILE) +$(info - LLAMA_NO_ACCELERATE) +$(info - LLAMA_NO_OPENMP) +$(info - LLAMA_NO_METAL) +$(info - LLAMA_NO_CCACHE) +$(info ) +endif + +ifdef REMOVE_WARNING +$(info !!! REMOVAL WARNING !!!) +$(info The following LLAMA_ options have been removed and are no longer supported) +$(info - LLAMA_DISABLE_LOGS (https://github.com/ggerganov/llama.cpp/pull/9418)) +$(info - LLAMA_SERVER_VERBOSE (https://github.com/ggerganov/llama.cpp/pull/9418)) +$(info ) +endif + +# +# Build libraries +# + +# Libraries +LIB_GGML = libggml.so +LIB_GGML_S = libggml.a + +LIB_LLAMA = libllama.so +LIB_LLAMA_S = libllama.a + +LIB_COMMON = libcommon.so +LIB_COMMON_S = libcommon.a + +# Targets +BUILD_TARGETS += $(LIB_GGML) $(LIB_GGML_S) $(LIB_LLAMA) $(LIB_LLAMA_S) $(LIB_COMMON) $(LIB_COMMON_S) + +# Dependency files +DEP_FILES = $(OBJ_GGML:.o=.d) $(OBJ_LLAMA:.o=.d) $(OBJ_COMMON:.o=.d) + +# Default target +all: $(BUILD_TARGETS) + +# Note: need this exception because `ggml-cpu.c` and `ggml-cpu.cpp` both produce the same obj/dep files +# g++ -M -I ./ggml/include/ -I ./ggml/src ggml/src/ggml-cpu/ggml-cpu.cpp | grep ggml +$(DIR_GGML)/src/ggml-cpu/ggml-cpu-cpp.o: \ + ggml/src/ggml-cpu/ggml-cpu.cpp \ + ggml/include/ggml-backend.h \ + ggml/include/ggml.h \ + ggml/include/ggml-alloc.h \ + ggml/src/ggml-backend-impl.h \ + ggml/include/ggml-cpu.h \ + ggml/src/ggml-impl.h + $(CXX) $(CXXFLAGS) -c $< -o $@ + +# Rules for building object files +$(DIR_GGML)/%.o: $(DIR_GGML)/%.c + $(CC) $(CFLAGS) -MMD -c $< -o $@ + +$(DIR_GGML)/%.o: $(DIR_GGML)/%.cpp + $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ + +$(DIR_LLAMA)/%.o: $(DIR_LLAMA)/%.cpp + $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ + +$(DIR_COMMON)/%.o: $(DIR_COMMON)/%.cpp + $(CXX) $(CXXFLAGS) -MMD -c $< -o $@ + +# Rules for building libraries +$(LIB_GGML): $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS) + +$(LIB_GGML_S): $(OBJ_GGML) + ar rcs $(LIB_GGML_S) $^ + +$(LIB_LLAMA): $(OBJ_LLAMA) $(LIB_GGML) + $(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS) + +$(LIB_LLAMA_S): $(OBJ_LLAMA) + ar rcs $(LIB_LLAMA_S) $^ + +$(LIB_COMMON): $(OBJ_COMMON) $(LIB_LLAMA) $(LIB_GGML) + $(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS) + +$(LIB_COMMON_S): $(OBJ_COMMON) + ar rcs $(LIB_COMMON_S) $^ + +# Include dependency files +-include $(DEP_FILES) + +# Clean rule +clean: + rm -vrf $(BUILD_TARGETS) $(TEST_TARGETS) + rm -rvf *.a *.dll *.so *.dot + find ggml src common tests examples pocs -type f -name "*.o" -delete + find ggml src common tests examples pocs -type f -name "*.d" -delete + +# +# Examples +# + +# $< is the first prerequisite, i.e. the source file. +# Explicitly compile this to an object file so that it can be cached with ccache. +# The source file is then filtered out from $^ (the list of all prerequisites) and the object file is added instead. + +# Helper function that replaces .c, .cpp, and .cu file endings with .o: +GET_OBJ_FILE = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cu,%.o,$(1)))) + +llama-cli: examples/main/main.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + @echo + @echo '==== Run ./llama-cli -h for help. ====' + @echo + +llama-infill: examples/infill/infill.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-run: examples/run/run.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-simple: examples/simple/simple.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-simple-chat: examples/simple-chat/simple-chat.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-tokenize: examples/tokenize/tokenize.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-batched: examples/batched/batched.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-batched-bench: examples/batched-bench/batched-bench.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-quantize: examples/quantize/quantize.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-quantize-stats: examples/quantize-stats/quantize-stats.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-perplexity: examples/perplexity/perplexity.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-imatrix: examples/imatrix/imatrix.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-embedding: examples/embedding/embedding.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-gritlm: examples/gritlm/gritlm.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-save-load-state: examples/save-load-state/save-load-state.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-gguf: examples/gguf/gguf.cpp \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +examples/gguf-hash/deps/sha1/sha1.o: \ + examples/gguf-hash/deps/sha1/sha1.c + $(CC) $(CFLAGS) -Iexamples/gguf-hash/deps -c $< -o $@ + +examples/gguf-hash/deps/xxhash/xxhash.o: \ + examples/gguf-hash/deps/xxhash/xxhash.c + $(CC) $(CFLAGS) -Iexamples/gguf-hash/deps -c $< -o $@ + +examples/gguf-hash/deps/sha256/sha256.o: \ + examples/gguf-hash/deps/sha256/sha256.c + $(CC) $(CFLAGS) -Iexamples/gguf-hash/deps -c $< -o $@ + +llama-gguf-hash: examples/gguf-hash/gguf-hash.cpp examples/gguf-hash/deps/sha1/sha1.o examples/gguf-hash/deps/xxhash/xxhash.o examples/gguf-hash/deps/sha256/sha256.o\ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -Iexamples/gguf-hash/deps -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-gguf-split: examples/gguf-split/gguf-split.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-eval-callback: examples/eval-callback/eval-callback.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-cvector-generator: examples/cvector-generator/cvector-generator.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-bench: examples/llama-bench/llama-bench.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-export-lora: examples/export-lora/export-lora.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-retrieval: examples/retrieval/retrieval.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-speculative: examples/speculative/speculative.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-parallel: examples/parallel/parallel.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookahead: examples/lookahead/lookahead.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookup: examples/lookup/lookup.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookup-create: examples/lookup/lookup-create.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookup-merge: examples/lookup/lookup-merge.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-lookup-stats: examples/lookup/lookup-stats.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-passkey: examples/passkey/passkey.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-gbnf-validator: examples/gbnf-validator/gbnf-validator.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +ifdef GGML_RPC +rpc-server: examples/rpc/rpc-server.cpp \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) +endif # GGML_RPC + +llama-server: \ + examples/server/server.cpp \ + examples/server/utils.hpp \ + examples/server/httplib.h \ + examples/server/index.html.hpp \ + examples/server/completion.js.hpp \ + examples/server/loading.html.hpp \ + examples/server/deps_daisyui.min.css.hpp \ + examples/server/deps_markdown-it.js.hpp \ + examples/server/deps_tailwindcss.js.hpp \ + examples/server/deps_vue.esm-browser.js.hpp \ + common/json.hpp \ + common/stb_image.h \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h %.hpp $<,$^) -Iexamples/server $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) $(LWINSOCK2) + +# Portable equivalent of `cd examples/server/public && xxd -i $(notdir $<) ../$(notdir $<).hpp`: +examples/server/%.hpp: examples/server/public/% Makefile + @( export NAME=$(subst .,_,$(subst -,_,$(notdir $<))) && \ + echo "unsigned char $${NAME}[] = {" && \ + cat $< | od -v -t x1 -An | sed -E 's/([0-9a-fA-F]+)/0x\1, /g' && \ + echo "};" && \ + echo "unsigned int $${NAME}_len = $(shell cat $< | wc -c );" \ + ) > $@ + +llama-gen-docs: examples/gen-docs/gen-docs.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +libllava.a: examples/llava/llava.cpp \ + examples/llava/llava.h \ + examples/llava/clip.cpp \ + examples/llava/clip.h \ + common/stb_image.h \ + common/base64.hpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -static -fPIC -c $< -o $@ -Wno-cast-qual + +llama-llava-cli: examples/llava/llava-cli.cpp \ + examples/llava/llava.cpp \ + examples/llava/llava.h \ + examples/llava/clip.cpp \ + examples/llava/clip.h \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual + +llama-minicpmv-cli: examples/llava/minicpmv-cli.cpp \ + examples/llava/llava.cpp \ + examples/llava/llava.h \ + examples/llava/clip.cpp \ + examples/llava/clip.h \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) $< $(filter-out %.h $<,$^) -o $@ $(LDFLAGS) -Wno-cast-qual + +ifeq ($(UNAME_S),Darwin) +swift: examples/batched.swift + (cd examples/batched.swift; make build) +endif + +common/build-info.cpp: $(wildcard .git/index) scripts/build-info.sh + @sh scripts/build-info.sh "$(CC)" > $@.tmp + @if ! cmp -s $@.tmp $@; then \ + mv $@.tmp $@; \ + else \ + rm $@.tmp; \ + fi + +common/build-info.o: common/build-info.cpp + $(CXX) $(CXXFLAGS) -c $(filter-out %.h,$^) -o $@ + +# +# Tests +# + +tests: $(TEST_TARGETS) + +tests/test-arg-parser: tests/test-arg-parser.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-llama-grammar: tests/test-llama-grammar.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-log: tests/test-log.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-grammar-parser: tests/test-grammar-parser.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-grammar-integration: tests/test-grammar-integration.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-double-float: tests/test-double-float.cpp + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-json-schema-to-grammar: tests/test-json-schema-to-grammar.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -Iexamples/server -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-opt: tests/test-opt.cpp \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-quantize-fns: tests/test-quantize-fns.cpp \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-quantize-perf: tests/test-quantize-perf.cpp \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-sampling: tests/test-sampling.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-tokenizer-0: tests/test-tokenizer-0.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-tokenizer-1-bpe: tests/test-tokenizer-1-bpe.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-tokenizer-1-spm: tests/test-tokenizer-1-spm.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-rope: tests/test-rope.cpp ggml/src/ggml.o \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-c.o: tests/test-c.c include/llama.h + $(CC) $(CFLAGS) -c $(filter-out %.h,$^) -o $@ + +tests/test-backend-ops: tests/test-backend-ops.cpp \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-model-load-cancel: tests/test-model-load-cancel.cpp tests/get-model.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-autorelease: tests/test-autorelease.cpp tests/get-model.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +tests/test-chat-template: tests/test-chat-template.cpp \ + $(OBJ_ALL) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out %.h $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +# +# PoCs +# + +llama-vdot: pocs/vdot/vdot.cpp ggml/src/ggml.o \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +llama-q8dot: pocs/vdot/q8dot.cpp ggml/src/ggml.o \ + $(OBJ_GGML) + $(CXX) $(CXXFLAGS) -c $< -o $(call GET_OBJ_FILE, $<) + $(CXX) $(CXXFLAGS) $(filter-out $<,$^) $(call GET_OBJ_FILE, $<) -o $@ $(LDFLAGS) + +# +# Deprecated binaries that we want to keep around long enough for people to migrate to the new filenames, then these can be removed. +# +# Mark legacy binary targets as .PHONY so that they are always checked. +.PHONY: main quantize perplexity embedding server + +# Define the object file target +examples/deprecation-warning/deprecation-warning.o: examples/deprecation-warning/deprecation-warning.cpp + $(CXX) $(CXXFLAGS) -c $< -o $@ + +# NOTE: We currently will always build the deprecation-warning `main` and `server` binaries to help users migrate. +# Eventually we will want to remove these target from building all the time. +main: examples/deprecation-warning/deprecation-warning.o + $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) + @echo "NOTICE: The 'main' binary is deprecated. Please use 'llama-cli' instead." + +server: examples/deprecation-warning/deprecation-warning.o + $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) + @echo "NOTICE: The 'server' binary is deprecated. Please use 'llama-server' instead." + +quantize: examples/deprecation-warning/deprecation-warning.o +ifneq (,$(wildcard quantize)) + $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) + @echo "#########" + @echo "WARNING: The 'quantize' binary is deprecated. Please use 'llama-quantize' instead." + @echo " Remove the 'quantize' binary to remove this warning." + @echo "#########" +endif + +perplexity: examples/deprecation-warning/deprecation-warning.o +ifneq (,$(wildcard perplexity)) + $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) + @echo "#########" + @echo "WARNING: The 'perplexity' binary is deprecated. Please use 'llama-perplexity' instead." + @echo " Remove the 'perplexity' binary to remove this warning." + @echo "#########" +endif + +embedding: examples/deprecation-warning/deprecation-warning.o +ifneq (,$(wildcard embedding)) + $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) + @echo "#########" + @echo "WARNING: The 'embedding' binary is deprecated. Please use 'llama-embedding' instead." + @echo " Remove the 'embedding' binary to remove this warning." + @echo "#########" +endif diff --git a/llama.cpp/Package.swift b/llama.cpp/Package.swift new file mode 100644 index 0000000000000000000000000000000000000000..d32b74a63fbfa48fc63b2063d446709fd36e026b --- /dev/null +++ b/llama.cpp/Package.swift @@ -0,0 +1,92 @@ +// swift-tools-version:5.5 + +import PackageDescription + +var sources = [ + "src/llama.cpp", + "src/llama-vocab.cpp", + "src/llama-grammar.cpp", + "src/llama-sampling.cpp", + "src/unicode.cpp", + "src/unicode-data.cpp", + "ggml/src/ggml.c", + "ggml/src/ggml-aarch64.c", + "ggml/src/ggml-alloc.c", + "ggml/src/ggml-backend.cpp", + "ggml/src/ggml-backend-reg.cpp", + "ggml/src/ggml-cpu/ggml-cpu.c", + "ggml/src/ggml-cpu/ggml-cpu.cpp", + "ggml/src/ggml-cpu/ggml-cpu-aarch64.c", + "ggml/src/ggml-cpu/ggml-cpu-quants.c", + "ggml/src/ggml-threading.cpp", + "ggml/src/ggml-quants.c", +] + +var resources: [Resource] = [] +var linkerSettings: [LinkerSetting] = [] +var cSettings: [CSetting] = [ + .unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]), + .unsafeFlags(["-fno-objc-arc"]), + .headerSearchPath("ggml/src"), + .headerSearchPath("ggml/src/ggml-cpu"), + // NOTE: NEW_LAPACK will required iOS version 16.4+ + // We should consider add this in the future when we drop support for iOS 14 + // (ref: ref: https://developer.apple.com/documentation/accelerate/1513264-cblas_sgemm?language=objc) + // .define("ACCELERATE_NEW_LAPACK"), + // .define("ACCELERATE_LAPACK_ILP64") + .define("GGML_USE_CPU"), +] + + +#if canImport(Darwin) +sources.append("ggml/src/ggml-common.h") +sources.append("ggml/src/ggml-metal/ggml-metal.m") +resources.append(.process("ggml/src/ggml-metal/ggml-metal.metal")) +linkerSettings.append(.linkedFramework("Accelerate")) +cSettings.append( + contentsOf: [ + .define("GGML_USE_ACCELERATE"), + .define("GGML_USE_METAL"), + ] +) +#endif + +#if os(Linux) + cSettings.append(.define("_GNU_SOURCE")) +#endif + +let package = Package( + name: "llama", + platforms: [ + .macOS(.v12), + .iOS(.v14), + .watchOS(.v4), + .tvOS(.v14) + ], + products: [ + .library(name: "llama", targets: ["llama"]), + ], + targets: [ + .target( + name: "llama", + path: ".", + exclude: [ + "build", + "cmake", + "examples", + "scripts", + "models", + "tests", + "CMakeLists.txt", + "Makefile", + "ggml/src/ggml-metal-embed.metal" + ], + sources: sources, + resources: resources, + publicHeadersPath: "spm-headers", + cSettings: cSettings, + linkerSettings: linkerSettings + ) + ], + cxxLanguageStandard: .cxx17 +) diff --git a/llama.cpp/README.md b/llama.cpp/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6fdd8d9eefbfb855f0821d1e52f571e397413426 --- /dev/null +++ b/llama.cpp/README.md @@ -0,0 +1,491 @@ +# llama.cpp + +![llama](https://user-images.githubusercontent.com/1991296/230134379-7181e485-c521-4d23-a0d6-f7b3b61ba524.png) + +[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) +[![Server](https://github.com/ggerganov/llama.cpp/actions/workflows/server.yml/badge.svg)](https://github.com/ggerganov/llama.cpp/actions/workflows/server.yml) + +[Roadmap](https://github.com/users/ggerganov/projects/7) / [Project status](https://github.com/ggerganov/llama.cpp/discussions/3471) / [Manifesto](https://github.com/ggerganov/llama.cpp/discussions/205) / [ggml](https://github.com/ggerganov/ggml) + +Inference of Meta's [LLaMA](https://arxiv.org/abs/2302.13971) model (and others) in pure C/C++ + +## Recent API changes + +- [Changelog for `libllama` API](https://github.com/ggerganov/llama.cpp/issues/9289) +- [Changelog for `llama-server` REST API](https://github.com/ggerganov/llama.cpp/issues/9291) + +## Hot topics + +- **Introducing GGUF-my-LoRA** https://github.com/ggerganov/llama.cpp/discussions/10123 +- Hugging Face Inference Endpoints now support GGUF out of the box! https://github.com/ggerganov/llama.cpp/discussions/9669 +- Hugging Face GGUF editor: [discussion](https://github.com/ggerganov/llama.cpp/discussions/9268) | [tool](https://huggingface.co/spaces/CISCai/gguf-editor) + +---- + +## Description + +The main goal of `llama.cpp` is to enable LLM inference with minimal setup and state-of-the-art performance on a wide +range of hardware - locally and in the cloud. + +- Plain C/C++ implementation without any dependencies +- Apple silicon is a first-class citizen - optimized via ARM NEON, Accelerate and Metal frameworks +- AVX, AVX2, AVX512 and AMX support for x86 architectures +- 1.5-bit, 2-bit, 3-bit, 4-bit, 5-bit, 6-bit, and 8-bit integer quantization for faster inference and reduced memory use +- Custom CUDA kernels for running LLMs on NVIDIA GPUs (support for AMD GPUs via HIP and Moore Threads MTT GPUs via MUSA) +- Vulkan and SYCL backend support +- CPU+GPU hybrid inference to partially accelerate models larger than the total VRAM capacity + +The `llama.cpp` project is the main playground for developing new features for the [ggml](https://github.com/ggerganov/ggml) library. + +
+Models + +Typically finetunes of the base models below are supported as well. + +Instructions for adding support for new models: [HOWTO-add-model.md](docs/development/HOWTO-add-model.md) + +#### Text-only + +- [X] LLaMA 🦙 +- [x] LLaMA 2 🦙🦙 +- [x] LLaMA 3 🦙🦙🦙 +- [X] [Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.1) +- [x] [Mixtral MoE](https://huggingface.co/models?search=mistral-ai/Mixtral) +- [x] [DBRX](https://huggingface.co/databricks/dbrx-instruct) +- [X] [Falcon](https://huggingface.co/models?search=tiiuae/falcon) +- [X] [Chinese LLaMA / Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca) and [Chinese LLaMA-2 / Alpaca-2](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2) +- [X] [Vigogne (French)](https://github.com/bofenghuang/vigogne) +- [X] [BERT](https://github.com/ggerganov/llama.cpp/pull/5423) +- [X] [Koala](https://bair.berkeley.edu/blog/2023/04/03/koala/) +- [X] [Baichuan 1 & 2](https://huggingface.co/models?search=baichuan-inc/Baichuan) + [derivations](https://huggingface.co/hiyouga/baichuan-7b-sft) +- [X] [Aquila 1 & 2](https://huggingface.co/models?search=BAAI/Aquila) +- [X] [Starcoder models](https://github.com/ggerganov/llama.cpp/pull/3187) +- [X] [Refact](https://huggingface.co/smallcloudai/Refact-1_6B-fim) +- [X] [MPT](https://github.com/ggerganov/llama.cpp/pull/3417) +- [X] [Bloom](https://github.com/ggerganov/llama.cpp/pull/3553) +- [x] [Yi models](https://huggingface.co/models?search=01-ai/Yi) +- [X] [StableLM models](https://huggingface.co/stabilityai) +- [x] [Deepseek models](https://huggingface.co/models?search=deepseek-ai/deepseek) +- [x] [Qwen models](https://huggingface.co/models?search=Qwen/Qwen) +- [x] [PLaMo-13B](https://github.com/ggerganov/llama.cpp/pull/3557) +- [x] [Phi models](https://huggingface.co/models?search=microsoft/phi) +- [x] [GPT-2](https://huggingface.co/gpt2) +- [x] [Orion 14B](https://github.com/ggerganov/llama.cpp/pull/5118) +- [x] [InternLM2](https://huggingface.co/models?search=internlm2) +- [x] [CodeShell](https://github.com/WisdomShell/codeshell) +- [x] [Gemma](https://ai.google.dev/gemma) +- [x] [Mamba](https://github.com/state-spaces/mamba) +- [x] [Grok-1](https://huggingface.co/keyfan/grok-1-hf) +- [x] [Xverse](https://huggingface.co/models?search=xverse) +- [x] [Command-R models](https://huggingface.co/models?search=CohereForAI/c4ai-command-r) +- [x] [SEA-LION](https://huggingface.co/models?search=sea-lion) +- [x] [GritLM-7B](https://huggingface.co/GritLM/GritLM-7B) + [GritLM-8x7B](https://huggingface.co/GritLM/GritLM-8x7B) +- [x] [OLMo](https://allenai.org/olmo) +- [x] [OLMo 2](https://allenai.org/olmo) +- [x] [OLMoE](https://huggingface.co/allenai/OLMoE-1B-7B-0924) +- [x] [Granite models](https://huggingface.co/collections/ibm-granite/granite-code-models-6624c5cec322e4c148c8b330) +- [x] [GPT-NeoX](https://github.com/EleutherAI/gpt-neox) + [Pythia](https://github.com/EleutherAI/pythia) +- [x] [Snowflake-Arctic MoE](https://huggingface.co/collections/Snowflake/arctic-66290090abe542894a5ac520) +- [x] [Smaug](https://huggingface.co/models?search=Smaug) +- [x] [Poro 34B](https://huggingface.co/LumiOpen/Poro-34B) +- [x] [Bitnet b1.58 models](https://huggingface.co/1bitLLM) +- [x] [Flan T5](https://huggingface.co/models?search=flan-t5) +- [x] [Open Elm models](https://huggingface.co/collections/apple/openelm-instruct-models-6619ad295d7ae9f868b759ca) +- [x] [ChatGLM3-6b](https://huggingface.co/THUDM/chatglm3-6b) + [ChatGLM4-9b](https://huggingface.co/THUDM/glm-4-9b) +- [x] [SmolLM](https://huggingface.co/collections/HuggingFaceTB/smollm-6695016cad7167254ce15966) +- [x] [EXAONE-3.0-7.8B-Instruct](https://huggingface.co/LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct) +- [x] [FalconMamba Models](https://huggingface.co/collections/tiiuae/falconmamba-7b-66b9a580324dd1598b0f6d4a) +- [x] [Jais](https://huggingface.co/inceptionai/jais-13b-chat) +- [x] [Bielik-11B-v2.3](https://huggingface.co/collections/speakleash/bielik-11b-v23-66ee813238d9b526a072408a) +- [x] [RWKV-6](https://github.com/BlinkDL/RWKV-LM) + +#### Multimodal + +- [x] [LLaVA 1.5 models](https://huggingface.co/collections/liuhaotian/llava-15-653aac15d994e992e2677a7e), [LLaVA 1.6 models](https://huggingface.co/collections/liuhaotian/llava-16-65b9e40155f60fd046a5ccf2) +- [x] [BakLLaVA](https://huggingface.co/models?search=SkunkworksAI/Bakllava) +- [x] [Obsidian](https://huggingface.co/NousResearch/Obsidian-3B-V0.5) +- [x] [ShareGPT4V](https://huggingface.co/models?search=Lin-Chen/ShareGPT4V) +- [x] [MobileVLM 1.7B/3B models](https://huggingface.co/models?search=mobileVLM) +- [x] [Yi-VL](https://huggingface.co/models?search=Yi-VL) +- [x] [Mini CPM](https://huggingface.co/models?search=MiniCPM) +- [x] [Moondream](https://huggingface.co/vikhyatk/moondream2) +- [x] [Bunny](https://github.com/BAAI-DCAI/Bunny) + +
+ +
+Bindings + +- Python: [abetlen/llama-cpp-python](https://github.com/abetlen/llama-cpp-python) +- Go: [go-skynet/go-llama.cpp](https://github.com/go-skynet/go-llama.cpp) +- Node.js: [withcatai/node-llama-cpp](https://github.com/withcatai/node-llama-cpp) +- JS/TS (llama.cpp server client): [lgrammel/modelfusion](https://modelfusion.dev/integration/model-provider/llamacpp) +- JS/TS (Programmable Prompt Engine CLI): [offline-ai/cli](https://github.com/offline-ai/cli) +- JavaScript/Wasm (works in browser): [tangledgroup/llama-cpp-wasm](https://github.com/tangledgroup/llama-cpp-wasm) +- Typescript/Wasm (nicer API, available on npm): [ngxson/wllama](https://github.com/ngxson/wllama) +- Ruby: [yoshoku/llama_cpp.rb](https://github.com/yoshoku/llama_cpp.rb) +- Rust (more features): [edgenai/llama_cpp-rs](https://github.com/edgenai/llama_cpp-rs) +- Rust (nicer API): [mdrokz/rust-llama.cpp](https://github.com/mdrokz/rust-llama.cpp) +- Rust (more direct bindings): [utilityai/llama-cpp-rs](https://github.com/utilityai/llama-cpp-rs) +- C#/.NET: [SciSharp/LLamaSharp](https://github.com/SciSharp/LLamaSharp) +- C#/VB.NET (more features - community license): [LM-Kit.NET](https://docs.lm-kit.com/lm-kit-net/index.html) +- Scala 3: [donderom/llm4s](https://github.com/donderom/llm4s) +- Clojure: [phronmophobic/llama.clj](https://github.com/phronmophobic/llama.clj) +- React Native: [mybigday/llama.rn](https://github.com/mybigday/llama.rn) +- Java: [kherud/java-llama.cpp](https://github.com/kherud/java-llama.cpp) +- Zig: [deins/llama.cpp.zig](https://github.com/Deins/llama.cpp.zig) +- Flutter/Dart: [netdur/llama_cpp_dart](https://github.com/netdur/llama_cpp_dart) +- Flutter: [xuegao-tzx/Fllama](https://github.com/xuegao-tzx/Fllama) +- PHP (API bindings and features built on top of llama.cpp): [distantmagic/resonance](https://github.com/distantmagic/resonance) [(more info)](https://github.com/ggerganov/llama.cpp/pull/6326) +- Guile Scheme: [guile_llama_cpp](https://savannah.nongnu.org/projects/guile-llama-cpp) +- Swift [srgtuszy/llama-cpp-swift](https://github.com/srgtuszy/llama-cpp-swift) +- Swift [ShenghaiWang/SwiftLlama](https://github.com/ShenghaiWang/SwiftLlama) + +
+ +
+UIs + +*(to have a project listed here, it should clearly state that it depends on `llama.cpp`)* + +- [AI Sublime Text plugin](https://github.com/yaroslavyaroslav/OpenAI-sublime-text) (MIT) +- [cztomsik/ava](https://github.com/cztomsik/ava) (MIT) +- [Dot](https://github.com/alexpinel/Dot) (GPL) +- [eva](https://github.com/ylsdamxssjxxdd/eva) (MIT) +- [iohub/collama](https://github.com/iohub/coLLaMA) (Apache-2.0) +- [janhq/jan](https://github.com/janhq/jan) (AGPL) +- [KanTV](https://github.com/zhouwg/kantv?tab=readme-ov-file) (Apache-2.0) +- [KodiBot](https://github.com/firatkiral/kodibot) (GPL) +- [llama.vim](https://github.com/ggml-org/llama.vim) (MIT) +- [LARS](https://github.com/abgulati/LARS) (AGPL) +- [Llama Assistant](https://github.com/vietanhdev/llama-assistant) (GPL) +- [LLMFarm](https://github.com/guinmoon/LLMFarm?tab=readme-ov-file) (MIT) +- [LLMUnity](https://github.com/undreamai/LLMUnity) (MIT) +- [LMStudio](https://lmstudio.ai/) (proprietary) +- [LocalAI](https://github.com/mudler/LocalAI) (MIT) +- [LostRuins/koboldcpp](https://github.com/LostRuins/koboldcpp) (AGPL) +- [MindMac](https://mindmac.app) (proprietary) +- [MindWorkAI/AI-Studio](https://github.com/MindWorkAI/AI-Studio) (FSL-1.1-MIT) +- [Mobile-Artificial-Intelligence/maid](https://github.com/Mobile-Artificial-Intelligence/maid) (MIT) +- [Mozilla-Ocho/llamafile](https://github.com/Mozilla-Ocho/llamafile) (Apache-2.0) +- [nat/openplayground](https://github.com/nat/openplayground) (MIT) +- [nomic-ai/gpt4all](https://github.com/nomic-ai/gpt4all) (MIT) +- [ollama/ollama](https://github.com/ollama/ollama) (MIT) +- [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui) (AGPL) +- [PocketPal AI](https://github.com/a-ghorbani/pocketpal-ai) (MIT) +- [psugihara/FreeChat](https://github.com/psugihara/FreeChat) (MIT) +- [ptsochantaris/emeltal](https://github.com/ptsochantaris/emeltal) (MIT) +- [pythops/tenere](https://github.com/pythops/tenere) (AGPL) +- [ramalama](https://github.com/containers/ramalama) (MIT) +- [semperai/amica](https://github.com/semperai/amica) (MIT) +- [withcatai/catai](https://github.com/withcatai/catai) (MIT) + +
+ +
+Tools + +- [akx/ggify](https://github.com/akx/ggify) – download PyTorch models from HuggingFace Hub and convert them to GGML +- [akx/ollama-dl](https://github.com/akx/ollama-dl) – download models from the Ollama library to be used directly with llama.cpp +- [crashr/gppm](https://github.com/crashr/gppm) – launch llama.cpp instances utilizing NVIDIA Tesla P40 or P100 GPUs with reduced idle power consumption +- [gpustack/gguf-parser](https://github.com/gpustack/gguf-parser-go/tree/main/cmd/gguf-parser) - review/check the GGUF file and estimate the memory usage +- [Styled Lines](https://marketplace.unity.com/packages/tools/generative-ai/styled-lines-llama-cpp-model-292902) (proprietary licensed, async wrapper of inference part for game development in Unity3d with pre-built Mobile and Web platform wrappers and a model example) + +
+ +
+Infrastructure + +- [Paddler](https://github.com/distantmagic/paddler) - Stateful load balancer custom-tailored for llama.cpp +- [GPUStack](https://github.com/gpustack/gpustack) - Manage GPU clusters for running LLMs +- [llama_cpp_canister](https://github.com/onicai/llama_cpp_canister) - llama.cpp as a smart contract on the Internet Computer, using WebAssembly + +
+ +
+Games + +- [Lucy's Labyrinth](https://github.com/MorganRO8/Lucys_Labyrinth) - A simple maze game where agents controlled by an AI model will try to trick you. + +
+ +## Supported backends + +| Backend | Target devices | +| --- | --- | +| [Metal](docs/build.md#metal-build) | Apple Silicon | +| [BLAS](docs/build.md#blas-build) | All | +| [BLIS](docs/backend/BLIS.md) | All | +| [SYCL](docs/backend/SYCL.md) | Intel and Nvidia GPU | +| [MUSA](docs/build.md#musa) | Moore Threads MTT GPU | +| [CUDA](docs/build.md#cuda) | Nvidia GPU | +| [hipBLAS](docs/build.md#hipblas) | AMD GPU | +| [Vulkan](docs/build.md#vulkan) | GPU | +| [CANN](docs/build.md#cann) | Ascend NPU | + +## Building the project + +The main product of this project is the `llama` library. Its C-style interface can be found in [include/llama.h](include/llama.h). +The project also includes many example programs and tools using the `llama` library. The examples range from simple, minimal code snippets to sophisticated sub-projects such as an OpenAI-compatible HTTP server. Possible methods for obtaining the binaries: + +- Clone this repository and build locally, see [how to build](docs/build.md) +- On MacOS or Linux, install `llama.cpp` via [brew, flox or nix](docs/install.md) +- Use a Docker image, see [documentation for Docker](docs/docker.md) +- Download pre-built binaries from [releases](https://github.com/ggerganov/llama.cpp/releases) + +## Obtaining and quantizing models + +The [Hugging Face](https://huggingface.co) platform hosts a [number of LLMs](https://huggingface.co/models?library=gguf&sort=trending) compatible with `llama.cpp`: + +- [Trending](https://huggingface.co/models?library=gguf&sort=trending) +- [LLaMA](https://huggingface.co/models?sort=trending&search=llama+gguf) + +After downloading a model, use the CLI tools to run it locally - see below. + +`llama.cpp` requires the model to be stored in the [GGUF](https://github.com/ggerganov/ggml/blob/master/docs/gguf.md) file format. Models in other data formats can be converted to GGUF using the `convert_*.py` Python scripts in this repo. + +The Hugging Face platform provides a variety of online tools for converting, quantizing and hosting models with `llama.cpp`: + +- Use the [GGUF-my-repo space](https://huggingface.co/spaces/ggml-org/gguf-my-repo) to convert to GGUF format and quantize model weights to smaller sizes +- Use the [GGUF-my-LoRA space](https://huggingface.co/spaces/ggml-org/gguf-my-lora) to convert LoRA adapters to GGUF format (more info: https://github.com/ggerganov/llama.cpp/discussions/10123) +- Use the [GGUF-editor space](https://huggingface.co/spaces/CISCai/gguf-editor) to edit GGUF meta data in the browser (more info: https://github.com/ggerganov/llama.cpp/discussions/9268) +- Use the [Inference Endpoints](https://ui.endpoints.huggingface.co/) to directly host `llama.cpp` in the cloud (more info: https://github.com/ggerganov/llama.cpp/discussions/9669) + +To learn more about model quantization, [read this documentation](examples/quantize/README.md) + +## [`llama-cli`](examples/main) + +#### A CLI tool for accessing and experimenting with most of `llama.cpp`'s functionality. + +-
+ Run simple text completion + + ```bash + llama-cli -m model.gguf -p "I believe the meaning of life is" -n 128 + + # I believe the meaning of life is to find your own truth and to live in accordance with it. For me, this means being true to myself and following my passions, even if they don't align with societal expectations. I think that's what I love about yoga – it's not just a physical practice, but a spiritual one too. It's about connecting with yourself, listening to your inner voice, and honoring your own unique journey. + ``` + +
+ +-
+ Run in conversation mode + + ```bash + llama-cli -m model.gguf -p "You are a helpful assistant" -cnv + + # > hi, who are you? + # Hi there! I'm your helpful assistant! I'm an AI-powered chatbot designed to assist and provide information to users like you. I'm here to help answer your questions, provide guidance, and offer support on a wide range of topics. I'm a friendly and knowledgeable AI, and I'm always happy to help with anything you need. What's on your mind, and how can I assist you today? + # + # > what is 1+1? + # Easy peasy! The answer to 1+1 is... 2! + ``` + +
+ +-
+ Run with custom chat template + + ```bash + # use the "chatml" template + llama-cli -m model.gguf -p "You are a helpful assistant" -cnv --chat-template chatml + + # use a custom template + llama-cli -m model.gguf -p "You are a helpful assistant" -cnv --in-prefix 'User: ' --reverse-prompt 'User:' + ``` + + [Supported templates](https://github.com/ggerganov/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template) + +
+ +-
+ Constrain the output with a custom grammar + + ```bash + llama-cli -m model.gguf -n 256 --grammar-file grammars/json.gbnf -p 'Request: schedule a call at 8pm; Command:' + + # {"appointmentTime": "8pm", "appointmentDetails": "schedule a a call"} + ``` + + The [grammars/](grammars/) folder contains a handful of sample grammars. To write your own, check out the [GBNF Guide](grammars/README.md). + + For authoring more complex JSON grammars, check out https://grammar.intrinsiclabs.ai/ + +
+ + +## [`llama-server`](examples/server) + +#### A lightweight, [OpenAI API](https://github.com/openai/openai-openapi) compatible, HTTP server for serving LLMs. + +-
+ Start a local HTTP server with default configuration on port 8080 + + ```bash + llama-server -m model.gguf --port 8080 + + # Basic web UI can be accessed via browser: http://localhost:8080 + # Chat completion endpoint: http://localhost:8080/v1/chat/completions + ``` + +
+ +-
+ Support multiple-users and parallel decoding + + ```bash + # up to 4 concurrent requests, each with 4096 max context + llama-server -m model.gguf -c 16384 -np 4 + ``` + +
+ +-
+ Enable speculative decoding + + ```bash + # the draft.gguf model should be a small variant of the target model.gguf + llama-server -m model.gguf -md draft.gguf + ``` + +
+ +-
+ Serve an embedding model + + ```bash + # use the /embedding endpoint + llama-server -m model.gguf --embedding --pooling cls -ub 8192 + ``` + +
+ +-
+ Serve a reranking model + + ```bash + # use the /reranking endpoint + llama-server -m model.gguf --reranking + ``` + +
+ +-
+ Constrain all outputs with a grammar + + ```bash + # custom grammar + llama-server -m model.gguf --grammar-file grammar.gbnf + + # JSON + llama-server -m model.gguf --grammar-file grammars/json.gbnf + ``` + +
+ + +## [`llama-perplexity`](examples/perplexity) + +#### A tool for measuring the perplexity [^1][^2] (and other quality metrics) of a model over a given text. + +-
+ Measure the perplexity over a text file + + ```bash + llama-perplexity -m model.gguf -f file.txt + + # [1]15.2701,[2]5.4007,[3]5.3073,[4]6.2965,[5]5.8940,[6]5.6096,[7]5.7942,[8]4.9297, ... + # Final estimate: PPL = 5.4007 +/- 0.67339 + ``` + +
+ +-
+ Measure KL divergence + + ```bash + # TODO + ``` + +
+ +[^1]: [examples/perplexity/README.md](examples/perplexity/README.md) +[^2]: [https://huggingface.co/docs/transformers/perplexity](https://huggingface.co/docs/transformers/perplexity) + +## [`llama-bench`](example/bench) + +#### Benchmark the performance of the inference for various parameters. + +-
+ Run default benchmark + + ```bash + llama-bench -m model.gguf + + # Output: + # | model | size | params | backend | threads | test | t/s | + # | ------------------- | ---------: | ---------: | ---------- | ------: | ------------: | -------------------: | + # | qwen2 1.5B Q4_0 | 885.97 MiB | 1.54 B | Metal,BLAS | 16 | pp512 | 5765.41 ± 20.55 | + # | qwen2 1.5B Q4_0 | 885.97 MiB | 1.54 B | Metal,BLAS | 16 | tg128 | 197.71 ± 0.81 | + # + # build: 3e0ba0e60 (4229) + ``` + +
+ + +## [`llama-simple`](examples/simple) + +#### A minimal example for implementing apps with `llama.cpp`. Useful for developers. + +-
+ Basic text completion + + ```bash + llama-simple -m model.gguf + + # Hello my name is Kaitlyn and I am a 16 year old girl. I am a junior in high school and I am currently taking a class called "The Art of + ``` + +
+ + +## Contributing + +- Contributors can open PRs +- Collaborators can push to branches in the `llama.cpp` repo and merge PRs into the `master` branch +- Collaborators will be invited based on contributions +- Any help with managing issues, PRs and projects is very appreciated! +- See [good first issues](https://github.com/ggerganov/llama.cpp/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) for tasks suitable for first contributions +- Read the [CONTRIBUTING.md](CONTRIBUTING.md) for more information +- Make sure to read this: [Inference at the edge](https://github.com/ggerganov/llama.cpp/discussions/205) +- A bit of backstory for those who are interested: [Changelog podcast](https://changelog.com/podcast/532) + +## Other documentation + +- [main (cli)](examples/main/README.md) +- [server](examples/server/README.md) +- [GBNF grammars](grammars/README.md) + +#### Development documentation + +- [How to build](docs/build.md) +- [Running on Docker](docs/docker.md) +- [Build on Android](docs/android.md) +- [Performance troubleshooting](docs/development/token_generation_performance_tips.md) +- [GGML tips & tricks](https://github.com/ggerganov/llama.cpp/wiki/GGML-Tips-&-Tricks) + +#### Seminal papers and background on the models + +If your issue is with model generation quality, then please at least scan the following links and papers to understand the limitations of LLaMA models. This is especially important when choosing an appropriate model size and appreciating both the significant and subtle differences between LLaMA models and ChatGPT: +- LLaMA: + - [Introducing LLaMA: A foundational, 65-billion-parameter large language model](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) + - [LLaMA: Open and Efficient Foundation Language Models](https://arxiv.org/abs/2302.13971) +- GPT-3 + - [Language Models are Few-Shot Learners](https://arxiv.org/abs/2005.14165) +- GPT-3.5 / InstructGPT / ChatGPT: + - [Aligning language models to follow instructions](https://openai.com/research/instruction-following) + - [Training language models to follow instructions with human feedback](https://arxiv.org/abs/2203.02155) + +#### References + diff --git a/llama.cpp/SECURITY.md b/llama.cpp/SECURITY.md new file mode 100644 index 0000000000000000000000000000000000000000..f4322c6ee4d18c3fb9f694fcc01f2be8640adb50 --- /dev/null +++ b/llama.cpp/SECURITY.md @@ -0,0 +1,67 @@ +# Security Policy + + - [**Using llama.cpp securely**](#using-llamacpp-securely) + - [Untrusted models](#untrusted-models) + - [Untrusted inputs](#untrusted-inputs) + - [Data privacy](#data-privacy) + - [Untrusted environments or networks](#untrusted-environments-or-networks) + - [Multi-Tenant environments](#multi-tenant-environments) + - [**Reporting a vulnerability**](#reporting-a-vulnerability) + +## Using llama.cpp securely + +### Untrusted models +Be careful when running untrusted models. This classification includes models created by unknown developers or utilizing data obtained from unknown sources. + +*Always execute untrusted models within a secure, isolated environment such as a sandbox* (e.g., containers, virtual machines). This helps protect your system from potentially malicious code. + +> [!NOTE] +> The trustworthiness of a model is not binary. You must always determine the proper level of caution depending on the specific model and how it matches your use case and risk tolerance. + +### Untrusted inputs + +Some models accept various input formats (text, images, audio, etc.). The libraries converting these inputs have varying security levels, so it's crucial to isolate the model and carefully pre-process inputs to mitigate script injection risks. + +For maximum security when handling untrusted inputs, you may need to employ the following: + +* Sandboxing: Isolate the environment where the inference happens. +* Pre-analysis: Check how the model performs by default when exposed to prompt injection (e.g. using [fuzzing for prompt injection](https://github.com/FonduAI/awesome-prompt-injection?tab=readme-ov-file#tools)). This will give you leads on how hard you will have to work on the next topics. +* Updates: Keep both LLaMA C++ and your libraries updated with the latest security patches. +* Input Sanitation: Before feeding data to the model, sanitize inputs rigorously. This involves techniques such as: + * Validation: Enforce strict rules on allowed characters and data types. + * Filtering: Remove potentially malicious scripts or code fragments. + * Encoding: Convert special characters into safe representations. + * Verification: Run tooling that identifies potential script injections (e.g. [models that detect prompt injection attempts](https://python.langchain.com/docs/guides/safety/hugging_face_prompt_injection)). + +### Data privacy + +To protect sensitive data from potential leaks or unauthorized access, it is crucial to sandbox the model execution. This means running the model in a secure, isolated environment, which helps mitigate many attack vectors. + +### Untrusted environments or networks + +If you can't run your models in a secure and isolated environment or if it must be exposed to an untrusted network, make sure to take the following security precautions: +* Confirm the hash of any downloaded artifact (e.g. pre-trained model weights) matches a known-good value +* Encrypt your data if sending it over the network. + +### Multi-Tenant environments + +If you intend to run multiple models in parallel with shared memory, it is your responsibility to ensure the models do not interact or access each other's data. The primary areas of concern are tenant isolation, resource allocation, model sharing and hardware attacks. + +1. Tenant Isolation: Models should run separately with strong isolation methods to prevent unwanted data access. Separating networks is crucial for isolation, as it prevents unauthorized access to data or models and malicious users from sending graphs to execute under another tenant's identity. + +2. Resource Allocation: A denial of service caused by one model can impact the overall system health. Implement safeguards like rate limits, access controls, and health monitoring. + +3. Model Sharing: In a multitenant model sharing design, tenants and users must understand the security risks of running code provided by others. Since there are no reliable methods to detect malicious models, sandboxing the model execution is the recommended approach to mitigate the risk. + +4. Hardware Attacks: GPUs or TPUs can also be attacked. [Researches](https://scholar.google.com/scholar?q=gpu+side+channel) has shown that side channel attacks on GPUs are possible, which can make data leak from other models or processes running on the same system at the same time. + +## Reporting a vulnerability + +Beware that none of the topics under [Using llama.cpp securely](#using-llamacpp-securely) are considered vulnerabilities of LLaMA C++. + + +However, If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released. + +Please disclose it as a private [security advisory](https://github.com/ggerganov/llama.cpp/security/advisories/new). + +A team of volunteers on a reasonable-effort basis maintains this project. As such, please give us at least 90 days to work on a fix before public exposure. diff --git a/llama.cpp/build/CMakeCache.txt b/llama.cpp/build/CMakeCache.txt new file mode 100644 index 0000000000000000000000000000000000000000..76e6a1310af7b9a42c90fcd608723f1ffe8876fd --- /dev/null +++ b/llama.cpp/build/CMakeCache.txt @@ -0,0 +1,833 @@ +# This is the CMakeCache file. +# For build in directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//ggml: build shared libraries +BUILD_SHARED_LIBS:BOOL=ON + +//Build the testing tree. +BUILD_TESTING:BOOL=ON + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Build type +CMAKE_BUILD_TYPE:STRING=Release + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-11 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-11 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//User executables (bin) +CMAKE_INSTALL_BINDIR:PATH=bin + +//Read-only architecture-independent data (DATAROOTDIR) +CMAKE_INSTALL_DATADIR:PATH= + +//Read-only architecture-independent data root (share) +CMAKE_INSTALL_DATAROOTDIR:PATH=share + +//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) +CMAKE_INSTALL_DOCDIR:PATH= + +//C header files (include) +CMAKE_INSTALL_INCLUDEDIR:PATH=include + +//Info documentation (DATAROOTDIR/info) +CMAKE_INSTALL_INFODIR:PATH= + +//Object code libraries (lib) +CMAKE_INSTALL_LIBDIR:PATH=lib + +//Program executables (libexec) +CMAKE_INSTALL_LIBEXECDIR:PATH=libexec + +//Locale-dependent data (DATAROOTDIR/locale) +CMAKE_INSTALL_LOCALEDIR:PATH= + +//Modifiable single-machine data (var) +CMAKE_INSTALL_LOCALSTATEDIR:PATH=var + +//Man documentation (DATAROOTDIR/man) +CMAKE_INSTALL_MANDIR:PATH= + +//C header files for non-gcc (/usr/include) +CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Run-time variable data (LOCALSTATEDIR/run) +CMAKE_INSTALL_RUNSTATEDIR:PATH= + +//System admin executables (sbin) +CMAKE_INSTALL_SBINDIR:PATH=sbin + +//Modifiable architecture-independent data (com) +CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com + +//Read-only single-machine data (etc) +CMAKE_INSTALL_SYSCONFDIR:PATH=etc + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=llama.cpp + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to the coverage program that CTest uses for performing coverage +// inspection +COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov + +//Extra command line flags to pass to the coverage tool +COVERAGE_EXTRA_FLAGS:STRING=-l + +//How many times to retry timed-out CTest submissions. +CTEST_SUBMIT_RETRY_COUNT:STRING=3 + +//How long to wait between timed-out CTest submissions. +CTEST_SUBMIT_RETRY_DELAY:STRING=5 + +//Maximum time allowed before CTest will kill the test. +DART_TESTING_TIMEOUT:STRING=1500 + +//ggml: enable Accelerate framework +GGML_ACCELERATE:BOOL=ON + +//ggml: enable all compiler warnings in 3rd party libs +GGML_ALL_WARNINGS_3RD_PARTY:BOOL=OFF + +//ggml: enable AMX-BF16 +GGML_AMX_BF16:BOOL=OFF + +//ggml: enable AMX-INT8 +GGML_AMX_INT8:BOOL=OFF + +//ggml: enable AMX-TILE +GGML_AMX_TILE:BOOL=OFF + +//ggml: enable AVX +GGML_AVX:BOOL=OFF + +//ggml: enable AVX2 +GGML_AVX2:BOOL=OFF + +//ggml: enable AVX512 +GGML_AVX512:BOOL=OFF + +//ggml: enable AVX512-BF16 +GGML_AVX512_BF16:BOOL=OFF + +//ggml: enable AVX512-VBMI +GGML_AVX512_VBMI:BOOL=OFF + +//ggml: enable AVX512-VNNI +GGML_AVX512_VNNI:BOOL=OFF + +//ggml: enable AVX-VNNI +GGML_AVX_VNNI:BOOL=OFF + +//ggml: build backends as dynamic libraries (requires BUILD_SHARED_LIBS) +GGML_BACKEND_DL:BOOL=OFF + +//ggml: use BLAS +GGML_BLAS:BOOL=OFF + +//ggml: BLAS library vendor +GGML_BLAS_VENDOR:STRING=Generic + +//ggml: build examples +GGML_BUILD_EXAMPLES:BOOL=OFF + +//ggml: build tests +GGML_BUILD_TESTS:BOOL=OFF + +//ggml: use ccache if available +GGML_CCACHE:BOOL=ON + +//Path to a program. +GGML_CCACHE_FOUND:FILEPATH=GGML_CCACHE_FOUND-NOTFOUND + +//ggml: enable CPU backend +GGML_CPU:BOOL=ON + +//ggml: use runtime weight conversion of Q4_0 to Q4_X_X +GGML_CPU_AARCH64:BOOL=ON + +//ggml: use memkind for CPU HBM +GGML_CPU_HBM:BOOL=OFF + +//ggml: use CUDA +GGML_CUDA:BOOL=OFF + +//ggml: use 16 bit floats for some calculations +GGML_CUDA_F16:BOOL=OFF + +//ggml: compile all quants for FlashAttention +GGML_CUDA_FA_ALL_QUANTS:BOOL=OFF + +//ggml: always use cuBLAS instead of mmq kernels +GGML_CUDA_FORCE_CUBLAS:BOOL=OFF + +//ggml: use mmq kernels instead of cuBLAS +GGML_CUDA_FORCE_MMQ:BOOL=OFF + +//ggml: use CUDA graphs (llama.cpp only) +GGML_CUDA_GRAPHS:BOOL=ON + +//ggml: do not use peer to peer copies +GGML_CUDA_NO_PEER_COPY:BOOL=OFF + +//ggml: do not try to use CUDA VMM +GGML_CUDA_NO_VMM:BOOL=OFF + +//ggml: max. batch size for using peer access +GGML_CUDA_PEER_MAX_BATCH_SIZE:STRING=128 + +//ggml: enable F16C +GGML_F16C:BOOL=OFF + +//ggml: enable FMA +GGML_FMA:BOOL=OFF + +//ggml: enable gprof +GGML_GPROF:BOOL=OFF + +//ggml: use HIP +GGML_HIP:BOOL=OFF + +//ggml: use HIP unified memory architecture +GGML_HIP_UMA:BOOL=OFF + +//ggml: use Kompute +GGML_KOMPUTE:BOOL=OFF + +//ggml: enable lasx +GGML_LASX:BOOL=ON + +//ggml: use LLAMAFILE +GGML_LLAMAFILE:BOOL=ON + +//ggml: enable lsx +GGML_LSX:BOOL=ON + +//ggml: enable link time optimization +GGML_LTO:BOOL=OFF + +//ggml: use Metal +GGML_METAL:BOOL=OFF + +//ggml: embed Metal library +GGML_METAL_EMBED_LIBRARY:BOOL=OFF + +//ggml: metal minimum macOS version +GGML_METAL_MACOSX_VERSION_MIN:STRING= + +//ggml: disable Metal debugging +GGML_METAL_NDEBUG:BOOL=OFF + +//ggml: compile Metal with -fno-fast-math +GGML_METAL_SHADER_DEBUG:BOOL=OFF + +//ggml: metal standard version (-std flag) +GGML_METAL_STD:STRING= + +//ggml: use bfloat if available +GGML_METAL_USE_BF16:BOOL=OFF + +//ggml: use MUSA +GGML_MUSA:BOOL=OFF + +//ggml: enable -march=native flag +GGML_NATIVE:BOOL=ON + +//ggml: use OpenMP +GGML_OPENMP:BOOL=ON + +//ggml: use RPC +GGML_RPC:BOOL=OFF + +//ggml: enable rvv +GGML_RVV:BOOL=ON + +//ggml: max input copies for pipeline parallelism +GGML_SCHED_MAX_COPIES:STRING=4 + +//ggml: static link libraries +GGML_STATIC:BOOL=OFF + +//ggml: enable SVE +GGML_SVE:BOOL=OFF + +//ggml: use SYCL +GGML_SYCL:BOOL=OFF + +//ggml: sycl device architecture +GGML_SYCL_DEVICE_ARCH:STRING= + +//ggml: use 16 bit floats for sycl calculations +GGML_SYCL_F16:BOOL=OFF + +//ggml: sycl target device +GGML_SYCL_TARGET:STRING=INTEL + +//ggml: use Vulkan +GGML_VULKAN:BOOL=OFF + +//ggml: run Vulkan op checks +GGML_VULKAN_CHECK_RESULTS:BOOL=OFF + +//ggml: enable Vulkan debug output +GGML_VULKAN_DEBUG:BOOL=OFF + +//ggml: enable Vulkan memory debug output +GGML_VULKAN_MEMORY_DEBUG:BOOL=OFF + +//ggml: enable Vulkan perf output +GGML_VULKAN_PERF:BOOL=OFF + +//ggml: run Vulkan tests +GGML_VULKAN_RUN_TESTS:BOOL=OFF + +//ggml: enable Vulkan shader debug info +GGML_VULKAN_SHADER_DEBUG_INFO:BOOL=OFF + +//ggml: enable Vulkan validation +GGML_VULKAN_VALIDATE:BOOL=OFF + +//Path to a program. +GITCOMMAND:FILEPATH=/usr/bin/git + +//Git command line client +GIT_EXECUTABLE:FILEPATH=/usr/bin/git + +//llama: enable all compiler warnings +LLAMA_ALL_WARNINGS:BOOL=ON + +//llama: enable all compiler warnings in 3rd party libs +LLAMA_ALL_WARNINGS_3RD_PARTY:BOOL=OFF + +//Location of binary files +LLAMA_BIN_INSTALL_DIR:PATH=bin + +//llama: build common utils library +LLAMA_BUILD_COMMON:BOOL=ON + +//llama: build examples +LLAMA_BUILD_EXAMPLES:BOOL=ON + +//llama: build server example +LLAMA_BUILD_SERVER:BOOL=ON + +//llama: build tests +LLAMA_BUILD_TESTS:BOOL=ON + +//llama: use libcurl to download model from an URL +LLAMA_CURL:BOOL=OFF + +//llama: enable -Werror flag +LLAMA_FATAL_WARNINGS:BOOL=OFF + +//Location of header files +LLAMA_INCLUDE_INSTALL_DIR:PATH=include + +//Location of library files +LLAMA_LIB_INSTALL_DIR:PATH=lib + +//llama: enable address sanitizer +LLAMA_SANITIZE_ADDRESS:BOOL=OFF + +//llama: enable thread sanitizer +LLAMA_SANITIZE_THREAD:BOOL=OFF + +//llama: enable undefined sanitizer +LLAMA_SANITIZE_UNDEFINED:BOOL=OFF + +//Build SSL support for the server +LLAMA_SERVER_SSL:BOOL=OFF + +//Command to build the project +MAKECOMMAND:STRING=/usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" + +//Path to a library. +MATH_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libm.so + +//Path to the memory checking command, used for memory error detection. +MEMORYCHECK_COMMAND:FILEPATH=/usr/bin/valgrind + +//File that contains suppressions for the memory checker +MEMORYCHECK_SUPPRESSIONS_FILE:FILEPATH= + +//CXX compiler flags for OpenMP parallelization +OpenMP_CXX_FLAGS:STRING=-fopenmp + +//CXX compiler libraries for OpenMP parallelization +OpenMP_CXX_LIB_NAMES:STRING=gomp;pthread + +//C compiler flags for OpenMP parallelization +OpenMP_C_FLAGS:STRING=-fopenmp + +//C compiler libraries for OpenMP parallelization +OpenMP_C_LIB_NAMES:STRING=gomp;pthread + +//Path to the gomp library for OpenMP +OpenMP_gomp_LIBRARY:FILEPATH=/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so + +//Path to the pthread library for OpenMP +OpenMP_pthread_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpthread.a + +//Name of the computer/site where compile is being run +SITE:STRING=mathisportable-HN-WX9X + +//Value Computed by CMake +ggml_BINARY_DIR:STATIC=/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml + +//Value Computed by CMake +ggml_IS_TOP_LEVEL:STATIC=OFF + +//Value Computed by CMake +ggml_SOURCE_DIR:STATIC=/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml + +//Value Computed by CMake +llama.cpp_BINARY_DIR:STATIC=/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build + +//Value Computed by CMake +llama.cpp_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +llama.cpp_SOURCE_DIR:STATIC=/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//STRINGS property for variable: CMAKE_BUILD_TYPE +CMAKE_BUILD_TYPE-STRINGS:INTERNAL=Debug;Release;MinSizeRel;RelWithDebInfo +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//ADVANCED property for variable: CMAKE_CTEST_COMMAND +CMAKE_CTEST_COMMAND-ADVANCED:INTERNAL=1 +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1 +//Have include pthread.h +CMAKE_HAVE_PTHREAD_H:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp +//ADVANCED property for variable: CMAKE_INSTALL_BINDIR +CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATADIR +CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR +CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR +CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR +CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INFODIR +CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR +CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR +CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR +CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR +CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_MANDIR +CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR +CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR +CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR +CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR +CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR +CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=43 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: COVERAGE_COMMAND +COVERAGE_COMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: COVERAGE_EXTRA_FLAGS +COVERAGE_EXTRA_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CTEST_SUBMIT_RETRY_COUNT +CTEST_SUBMIT_RETRY_COUNT-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CTEST_SUBMIT_RETRY_DELAY +CTEST_SUBMIT_RETRY_DELAY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: DART_TESTING_TIMEOUT +DART_TESTING_TIMEOUT-ADVANCED:INTERNAL=1 +//Details about finding Git +FIND_PACKAGE_MESSAGE_DETAILS_Git:INTERNAL=[/usr/bin/git][v2.34.1()] +//Details about finding OpenMP +FIND_PACKAGE_MESSAGE_DETAILS_OpenMP:INTERNAL=[TRUE][TRUE][c ][v4.5()] +//Details about finding OpenMP_C +FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_C:INTERNAL=[-fopenmp][/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so][/usr/lib/x86_64-linux-gnu/libpthread.a][v4.5()] +//Details about finding OpenMP_CXX +FIND_PACKAGE_MESSAGE_DETAILS_OpenMP_CXX:INTERNAL=[-fopenmp][/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so][/usr/lib/x86_64-linux-gnu/libpthread.a][v4.5()] +//Details about finding Threads +FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()] +//ADVANCED property for variable: GITCOMMAND +GITCOMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: GIT_EXECUTABLE +GIT_EXECUTABLE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MAKECOMMAND +MAKECOMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MEMORYCHECK_COMMAND +MEMORYCHECK_COMMAND-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MEMORYCHECK_SUPPRESSIONS_FILE +MEMORYCHECK_SUPPRESSIONS_FILE-ADVANCED:INTERNAL=1 +//Result of TRY_COMPILE +OpenMP_COMPILE_RESULT_CXX_fopenmp:INTERNAL=TRUE +//Result of TRY_COMPILE +OpenMP_COMPILE_RESULT_C_fopenmp:INTERNAL=TRUE +//ADVANCED property for variable: OpenMP_CXX_FLAGS +OpenMP_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OpenMP_CXX_LIB_NAMES +OpenMP_CXX_LIB_NAMES-ADVANCED:INTERNAL=1 +//CXX compiler's OpenMP specification date +OpenMP_CXX_SPEC_DATE:INTERNAL=201511 +//ADVANCED property for variable: OpenMP_C_FLAGS +OpenMP_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OpenMP_C_LIB_NAMES +OpenMP_C_LIB_NAMES-ADVANCED:INTERNAL=1 +//C compiler's OpenMP specification date +OpenMP_C_SPEC_DATE:INTERNAL=201511 +//Result of TRY_COMPILE +OpenMP_SPECTEST_CXX_:INTERNAL=TRUE +//Result of TRY_COMPILE +OpenMP_SPECTEST_C_:INTERNAL=TRUE +//ADVANCED property for variable: OpenMP_gomp_LIBRARY +OpenMP_gomp_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: OpenMP_pthread_LIBRARY +OpenMP_pthread_LIBRARY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: SITE +SITE-ADVANCED:INTERNAL=1 +//CMAKE_INSTALL_PREFIX during last run +_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local + diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CMakeCCompiler.cmake b/llama.cpp/build/CMakeFiles/3.22.1/CMakeCCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..488ad37510279ee3a1dc535c7ccd5a2cf9a69d5b --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "11.4.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-11") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake b/llama.cpp/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..345e9307d98d4da7a2cb8a1cad976671f62ac568 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "11.4.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-11") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-11") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin b/llama.cpp/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..3fd1d46a5ae76b18f23624abfda5b74161044185 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_C.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f1901373878efd64fb8d123f266ec93db00a3523087d52afa0fff59401a75ce +size 15968 diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin b/llama.cpp/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..87823cd3db5512ed817d32f456859d5cece062b9 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:706369b9a080132db3bd9f26616f30a752f9376201eb47cfb747ef4b34d7120e +size 15992 diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CMakeSystem.cmake b/llama.cpp/build/CMakeFiles/3.22.1/CMakeSystem.cmake new file mode 100644 index 0000000000000000000000000000000000000000..07aea7e4f4fa9de359286b068ff98c0cec9d21d9 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.8.0-49-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.8.0-49-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.8.0-49-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.8.0-49-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000000000000000000000000000000000000..41b99d7783c1e447962d3183b641863e61a8edd0 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/a.out b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/a.out new file mode 100644 index 0000000000000000000000000000000000000000..c786756abbd10a6ac500dd20933efa409d328d0c Binary files /dev/null and b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/a.out differ diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000000000000000000000000000000000000..25c62a8c3cb40764ac539370df9ec347bdd99b79 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out new file mode 100644 index 0000000000000000000000000000000000000000..9944be481759fba2110a3ba6af6d9c647c7ea1a9 Binary files /dev/null and b/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out differ diff --git a/llama.cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/CMakeFiles/CMakeOutput.log b/llama.cpp/build/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000000000000000000000000000000000..9944e35835cda6780eefb8b23ac300c22697ac0c --- /dev/null +++ b/llama.cpp/build/CMakeFiles/CMakeOutput.log @@ -0,0 +1,877 @@ +The system is: Linux - 6.8.0-49-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out" + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_00341/fast && /usr/bin/gmake -f CMakeFiles/cmTC_00341.dir/build.make CMakeFiles/cmTC_00341.dir/build +gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -v -o CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_00341.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_00341.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccqyKkse.s +GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: 50eaa2331df977b8016186198deb2d18 +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_00341.dir/' + as -v --64 -o CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o /tmp/ccqyKkse.s +GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.' +Linking C executable cmTC_00341 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_00341.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o -o cmTC_00341 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_00341' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_00341.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9udRwY.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_00341 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_00341' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_00341.' +gmake[1]: Leaving directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/11/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_00341/fast && /usr/bin/gmake -f CMakeFiles/cmTC_00341.dir/build.make CMakeFiles/cmTC_00341.dir/build] + ignore line: [gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_00341.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_00341.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccqyKkse.s] + ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 50eaa2331df977b8016186198deb2d18] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_00341.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o /tmp/ccqyKkse.s] + ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.'] + ignore line: [Linking C executable cmTC_00341] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_00341.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o -o cmTC_00341 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_00341' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_00341.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9udRwY.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_00341 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc9udRwY.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_00341] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [CMakeFiles/cmTC_00341.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_d9844/fast && /usr/bin/gmake -f CMakeFiles/cmTC_d9844.dir/build.make CMakeFiles/cmTC_d9844.dir/build +gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -v -o CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d9844.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_d9844.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccZuya7Z.s +GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d9844.dir/' + as -v --64 -o CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccZuya7Z.s +GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.' +Linking CXX executable cmTC_d9844 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d9844.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_d9844 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_d9844' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_d9844.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8Y7GdU.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_d9844 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_d9844' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_d9844.' +gmake[1]: Leaving directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' + + + +Parsed CXX implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/11] + add: [/usr/include/x86_64-linux-gnu/c++/11] + add: [/usr/include/c++/11/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/11/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/11] ==> [/usr/include/c++/11] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/11] ==> [/usr/include/x86_64-linux-gnu/c++/11] + collapse include dir [/usr/include/c++/11/backward] ==> [/usr/include/c++/11/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/11/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/11/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/11;/usr/include/x86_64-linux-gnu/c++/11;/usr/include/c++/11/backward;/usr/lib/gcc/x86_64-linux-gnu/11/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_d9844/fast && /usr/bin/gmake -f CMakeFiles/cmTC_d9844.dir/build.make CMakeFiles/cmTC_d9844.dir/build] + ignore line: [gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d9844.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_d9844.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccZuya7Z.s] + ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++17 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d9844.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccZuya7Z.s] + ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_d9844] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d9844.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_d9844 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_d9844' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_d9844.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8Y7GdU.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_d9844 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc8Y7GdU.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_d9844] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [CMakeFiles/cmTC_d9844.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Determining if the include file pthread.h exists passed with the following output: +Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_86a48/fast && /usr/bin/gmake -f CMakeFiles/cmTC_86a48.dir/build.make CMakeFiles/cmTC_86a48.dir/build +gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_86a48.dir/CheckIncludeFile.c.o +/usr/bin/cc -std=gnu11 -o CMakeFiles/cmTC_86a48.dir/CheckIncludeFile.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c" +Linking C executable cmTC_86a48 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_86a48.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_86a48.dir/CheckIncludeFile.c.o -o cmTC_86a48 +gmake[1]: Leaving directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' + + + +Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD succeeded with the following output: +Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_70755/fast && /usr/bin/gmake -f CMakeFiles/cmTC_70755.dir/build.make CMakeFiles/cmTC_70755.dir/build +gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_70755.dir/src.c.o +/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -std=gnu11 -o CMakeFiles/cmTC_70755.dir/src.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp/src.c" +Linking C executable cmTC_70755 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_70755.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_70755.dir/src.c.o -o cmTC_70755 +gmake[1]: Leaving directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' + + +Source file was: +#include + +static void* test_func(void* data) +{ + return data; +} + +int main(void) +{ + pthread_t thread; + pthread_create(&thread, NULL, test_func, NULL); + pthread_detach(thread); + pthread_cancel(thread); + pthread_join(thread, NULL); + pthread_atfork(NULL, NULL, NULL); + pthread_exit(NULL); + + return 0; +} + +Detecting C OpenMP compiler ABI info compiled with the following output: +Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_cb314/fast && /usr/bin/gmake -f CMakeFiles/cmTC_cb314.dir/build.make CMakeFiles/cmTC_cb314.dir/build +gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o +/usr/bin/cc -fopenmp -v -std=gnu11 -o CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c" +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu11' '-o' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o' '-c' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_cb314.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c -quiet -dumpdir CMakeFiles/cmTC_cb314.dir/ -dumpbase OpenMPTryFlag.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -std=gnu11 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczKFyzm.s +GNU C11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: 50eaa2331df977b8016186198deb2d18 +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu11' '-o' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o' '-c' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_cb314.dir/' + as -v --64 -o CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o /tmp/cczKFyzm.s +GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu11' '-o' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o' '-c' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.' +Linking C executable cmTC_cb314 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cb314.dir/link.txt --verbose=1 +/usr/bin/cc -fopenmp -v CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o -o cmTC_cb314 -v +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgomp.spec +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_cb314' '-v' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_cb314.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccNW6vNn.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_cb314 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o -lgomp -lgcc --push-state --as-needed -lgcc_s --pop-state -lpthread -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadend.o +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_cb314' '-v' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_cb314.' +gmake[1]: Leaving directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' + + + +Parsed C OpenMP implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_cb314/fast && /usr/bin/gmake -f CMakeFiles/cmTC_cb314.dir/build.make CMakeFiles/cmTC_cb314.dir/build] + ignore line: [gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o] + ignore line: [/usr/bin/cc -fopenmp -v -std=gnu11 -o CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c"] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu11' '-o' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o' '-c' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_cb314.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1 -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c -quiet -dumpdir CMakeFiles/cmTC_cb314.dir/ -dumpbase OpenMPTryFlag.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -std=gnu11 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczKFyzm.s] + ignore line: [GNU C11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 50eaa2331df977b8016186198deb2d18] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu11' '-o' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o' '-c' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_cb314.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o /tmp/cczKFyzm.s] + ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu11' '-o' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o' '-c' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.'] + ignore line: [Linking C executable cmTC_cb314] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cb314.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -fopenmp -v CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o -o cmTC_cb314 -v ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgomp.spec] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_cb314' '-v' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_cb314.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccNW6vNn.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_cb314 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o -lgomp -lgcc --push-state --as-needed -lgcc_s --pop-state -lpthread -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadend.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccNW6vNn.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lpthread] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_cb314] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [CMakeFiles/cmTC_cb314.dir/OpenMPTryFlag.c.o] ==> ignore + arg [-lgomp] ==> lib [gomp] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lpthread] ==> lib [pthread] + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [gomp;gcc;gcc_s;pthread;c;gcc;gcc_s] + implicit objs: [] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Detecting CXX OpenMP compiler ABI info compiled with the following output: +Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_f9ba0/fast && /usr/bin/gmake -f CMakeFiles/cmTC_f9ba0.dir/build.make CMakeFiles/cmTC_f9ba0.dir/build +gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o +/usr/bin/c++ -fopenmp -v -std=gnu++11 -o CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp" +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++11' '-o' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_f9ba0.dir/' + /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_f9ba0.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++11 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccBuayhC.s +GNU C++11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11" +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/11 + /usr/include/x86_64-linux-gnu/c++/11 + /usr/include/c++/11/backward + /usr/lib/gcc/x86_64-linux-gnu/11/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C++11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu) + compiled by GNU C version 11.4.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++11' '-o' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_f9ba0.dir/' + as -v --64 -o CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o /tmp/ccBuayhC.s +GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++11' '-o' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.' +Linking CXX executable cmTC_f9ba0 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f9ba0.dir/link.txt --verbose=1 +/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o -o cmTC_f9ba0 -v +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/ +Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgomp.spec +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_f9ba0' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_f9ba0.' + /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWfQpO1.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f9ba0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadend.o +COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_f9ba0' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_f9ba0.' +gmake[1]: Leaving directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp' + + + +Parsed CXX OpenMP implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_f9ba0/fast && /usr/bin/gmake -f CMakeFiles/cmTC_f9ba0.dir/build.make CMakeFiles/cmTC_f9ba0.dir/build] + ignore line: [gmake[1]: Entering directory '/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o] + ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++11 -o CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp"] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++11' '-o' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_f9ba0.dir/'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_f9ba0.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++11 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccBuayhC.s] + ignore line: [GNU C++11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/11"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/11] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/11] + ignore line: [ /usr/include/c++/11/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/11/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++11 (Ubuntu 11.4.0-1ubuntu1~22.04) version 11.4.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 11.4.0 GMP version 6.2.1 MPFR version 4.1.0 MPC version 1.2.1 isl version isl-0.24-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: d591828bb4d392ae8b7b160e5bb0b95f] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++11' '-o' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_f9ba0.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o /tmp/ccBuayhC.s] + ignore line: [GNU assembler version 2.38 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.38] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++11' '-o' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.'] + ignore line: [Linking CXX executable cmTC_f9ba0] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f9ba0.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o -o cmTC_f9ba0 -v ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/11/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/11/../../../:/lib/:/usr/lib/] + ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/11/libgomp.spec] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_f9ba0' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_f9ba0.'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/11/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWfQpO1.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f9ba0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/11/crtoffloadend.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/11/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/11/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccWfQpO1.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lpthread] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_f9ba0] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] + arg [CMakeFiles/cmTC_f9ba0.dir/OpenMPTryFlag.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgomp] ==> lib [gomp] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lpthread] ==> lib [pthread] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11] ==> [/usr/lib/gcc/x86_64-linux-gnu/11] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/11/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gomp;gcc_s;gcc;pthread;c;gcc_s;gcc] + implicit objs: [] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/11;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + diff --git a/llama.cpp/build/CMakeFiles/CMakeRuleHashes.txt b/llama.cpp/build/CMakeFiles/CMakeRuleHashes.txt new file mode 100644 index 0000000000000000000000000000000000000000..5a6c41f2ed446a543c4b29734d22fb37d37b7d1e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/CMakeRuleHashes.txt @@ -0,0 +1,37 @@ +# Hashes of file build rules. +13d174e2f29e95d9eccbe054114144d4 ../common/build-info.cpp +bd7dc105d8c40adca18c689f7bc00dce CMakeFiles/Continuous +62f580324c51e297b73b21ade616f900 CMakeFiles/ContinuousBuild +6c8c953866c6f4a92c478b2677ccaa09 CMakeFiles/ContinuousConfigure +55647597398e838bba6730c09f638559 CMakeFiles/ContinuousCoverage +522bf15df9a33b954f746a6b9e339b7e CMakeFiles/ContinuousMemCheck +7cc1348fb5636d517ec159a811217217 CMakeFiles/ContinuousStart +84b1dec445548e45b816632dc52f8e23 CMakeFiles/ContinuousSubmit +29ee55ebb73049dd44a53f32802ea7cc CMakeFiles/ContinuousTest +e08cf2232d3daaca308d512056dc2e37 CMakeFiles/ContinuousUpdate +638520e4b2ce776530276a66342b3b45 CMakeFiles/Experimental +2eb647db59379f42ffb29ea30368ad0b CMakeFiles/ExperimentalBuild +0c9a78bf33762213eb206d8edfdaf48a CMakeFiles/ExperimentalConfigure +ab832682d5bb0254cdb6c7a4a9b2c27e CMakeFiles/ExperimentalCoverage +abc47c4aa5ed7c1792e976169277376b CMakeFiles/ExperimentalMemCheck +462b73c722def1892750632a233d18b8 CMakeFiles/ExperimentalStart +3b2615f85e77b7049383183dd51b6bcf CMakeFiles/ExperimentalSubmit +daa89255dbaf5974038051fc68f5d060 CMakeFiles/ExperimentalTest +c052fc0bb0c61a5cdcfe7d3538eee9fd CMakeFiles/ExperimentalUpdate +eb7395a6282fe93303604b8110623f8a CMakeFiles/Nightly +886b855e47cfed6c4547f07239181d0f CMakeFiles/NightlyBuild +f79961d3f2f680e52053d3fd557760e8 CMakeFiles/NightlyConfigure +e79739fe7f0c2405441d26a20d1d6b4f CMakeFiles/NightlyCoverage +7f10dc55b47a03c6b134181f8286768d CMakeFiles/NightlyMemCheck +5793ebaabed5fa14736484c443c8824e CMakeFiles/NightlyMemoryCheck +7059acc1936fe62fa050cb0d6ef174d6 CMakeFiles/NightlyStart +a1761c7134af322b8f9447f4cc33e875 CMakeFiles/NightlySubmit +4b1a1045777f96eac0502ce3b4b5400f CMakeFiles/NightlyTest +b588d0999722f3ab0381a7a796a5d56b CMakeFiles/NightlyUpdate +a0de7724bc9549822c607a45529dbacd examples/server/completion.js.hpp +f99c600a7e7259837750342c90fe6ea0 examples/server/deps_daisyui.min.css.hpp +f9835463cd476b5c22fbf0257f7afab6 examples/server/deps_markdown-it.js.hpp +befd043937811a91947b7ff5dcdc48f5 examples/server/deps_tailwindcss.js.hpp +51c7409952e231242232805d758aa7b5 examples/server/deps_vue.esm-browser.js.hpp +37705fadf5d1729f696ecfd6fd10da82 examples/server/index.html.hpp +c2b5e783cc7edf387e67f721f7d3be50 examples/server/loading.html.hpp diff --git a/llama.cpp/build/CMakeFiles/Continuous.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/Continuous.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Continuous.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/Continuous.dir/build.make b/llama.cpp/build/CMakeFiles/Continuous.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c263b91cd0ac0765253959b2006cbf63a019d201 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Continuous.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for Continuous. + +# Include any custom commands dependencies for this target. +include CMakeFiles/Continuous.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/Continuous.dir/progress.make + +CMakeFiles/Continuous: + /usr/bin/ctest -D Continuous + +Continuous: CMakeFiles/Continuous +Continuous: CMakeFiles/Continuous.dir/build.make +.PHONY : Continuous + +# Rule to build all files generated by this target. +CMakeFiles/Continuous.dir/build: Continuous +.PHONY : CMakeFiles/Continuous.dir/build + +CMakeFiles/Continuous.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Continuous.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Continuous.dir/clean + +CMakeFiles/Continuous.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/Continuous.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/Continuous.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/Continuous.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/Continuous.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7e1791cf8177d6f06e873e59e56292f12816be7f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Continuous.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/Continuous" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/Continuous.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/Continuous.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/Continuous.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4e014e0810f6c4573aafec81b46feaf0d739ae5f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Continuous.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for Continuous. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/Continuous.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/Continuous.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..86303622dcfd463b0ee108a835ce391b2100c2dd --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Continuous.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for Continuous. diff --git a/llama.cpp/build/CMakeFiles/Continuous.dir/progress.make b/llama.cpp/build/CMakeFiles/Continuous.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Continuous.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..cb0683cba19d65678ba2e17023cff8823df325b4 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousBuild. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousBuild.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousBuild.dir/progress.make + +CMakeFiles/ContinuousBuild: + /usr/bin/ctest -D ContinuousBuild + +ContinuousBuild: CMakeFiles/ContinuousBuild +ContinuousBuild: CMakeFiles/ContinuousBuild.dir/build.make +.PHONY : ContinuousBuild + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousBuild.dir/build: ContinuousBuild +.PHONY : CMakeFiles/ContinuousBuild.dir/build + +CMakeFiles/ContinuousBuild.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousBuild.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousBuild.dir/clean + +CMakeFiles/ContinuousBuild.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousBuild.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..afccd13683f11eeb51e1a07941748ada51842402 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousBuild" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousBuild.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..00b62ad4d704565063d1ad52fcd11352e64a5a0a --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousBuild. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..1cb8618262ee3601338a901719a30c0d06e1efad --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousBuild. diff --git a/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousBuild.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..411adb9122c939740e057d115c1db4ce6200a45f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousConfigure. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousConfigure.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousConfigure.dir/progress.make + +CMakeFiles/ContinuousConfigure: + /usr/bin/ctest -D ContinuousConfigure + +ContinuousConfigure: CMakeFiles/ContinuousConfigure +ContinuousConfigure: CMakeFiles/ContinuousConfigure.dir/build.make +.PHONY : ContinuousConfigure + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousConfigure.dir/build: ContinuousConfigure +.PHONY : CMakeFiles/ContinuousConfigure.dir/build + +CMakeFiles/ContinuousConfigure.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousConfigure.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousConfigure.dir/clean + +CMakeFiles/ContinuousConfigure.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousConfigure.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..eb51e20488797514d126ef55573faa6ea6f8c69b --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousConfigure" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousConfigure.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..584c8bb3f9b0b66cfd4db26bab3d82d6943e28f6 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousConfigure. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c8a342772f52fb62ee6f99e07623d970da5b4d86 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousConfigure. diff --git a/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..56a6cf237d7a643ccb97083c3ccbe530861743e8 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousCoverage. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousCoverage.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousCoverage.dir/progress.make + +CMakeFiles/ContinuousCoverage: + /usr/bin/ctest -D ContinuousCoverage + +ContinuousCoverage: CMakeFiles/ContinuousCoverage +ContinuousCoverage: CMakeFiles/ContinuousCoverage.dir/build.make +.PHONY : ContinuousCoverage + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousCoverage.dir/build: ContinuousCoverage +.PHONY : CMakeFiles/ContinuousCoverage.dir/build + +CMakeFiles/ContinuousCoverage.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousCoverage.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousCoverage.dir/clean + +CMakeFiles/ContinuousCoverage.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousCoverage.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6115f89bdf791f3b3260f7b39ad9f8fefcfc0d1f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousCoverage" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousCoverage.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8d1a807b14c177b3d98680c588a967311eaa7d78 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousCoverage. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..23d476b9f12f7c15337c4506c898ea5bbff2b2b3 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousCoverage. diff --git a/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1be4c87d669ccc61721e3d425907abdc32339209 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousMemCheck. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousMemCheck.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousMemCheck.dir/progress.make + +CMakeFiles/ContinuousMemCheck: + /usr/bin/ctest -D ContinuousMemCheck + +ContinuousMemCheck: CMakeFiles/ContinuousMemCheck +ContinuousMemCheck: CMakeFiles/ContinuousMemCheck.dir/build.make +.PHONY : ContinuousMemCheck + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousMemCheck.dir/build: ContinuousMemCheck +.PHONY : CMakeFiles/ContinuousMemCheck.dir/build + +CMakeFiles/ContinuousMemCheck.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousMemCheck.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousMemCheck.dir/clean + +CMakeFiles/ContinuousMemCheck.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousMemCheck.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ad69e7ff4553b55cfc354485edd47d4ad01ea363 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousMemCheck" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousMemCheck.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..930bb6168100a15d5e39f90ddc312ba74ab5c718 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousMemCheck. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..4f4fc23fcbab3b887380e8831186dc0ed313cd0e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousMemCheck. diff --git a/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousStart.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousStart.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..49f7ab5b75d1e5472686f1d0b1b4fb8017659cf6 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousStart. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousStart.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousStart.dir/progress.make + +CMakeFiles/ContinuousStart: + /usr/bin/ctest -D ContinuousStart + +ContinuousStart: CMakeFiles/ContinuousStart +ContinuousStart: CMakeFiles/ContinuousStart.dir/build.make +.PHONY : ContinuousStart + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousStart.dir/build: ContinuousStart +.PHONY : CMakeFiles/ContinuousStart.dir/build + +CMakeFiles/ContinuousStart.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousStart.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousStart.dir/clean + +CMakeFiles/ContinuousStart.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousStart.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousStart.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousStart.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..13d5b2bcc3bcf36afa7a3e45cb8da752b90d76a5 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousStart" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousStart.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousStart.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..af626145dde9b6c5889aeb738d30d2b1e766685c --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousStart. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousStart.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..fcc8893db867422d5add04a817f9f16d83bf2469 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousStart. diff --git a/llama.cpp/build/CMakeFiles/ContinuousStart.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousStart.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..91aeafec043bda6c6df6e7b836a87f20868b00d9 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousSubmit. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousSubmit.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousSubmit.dir/progress.make + +CMakeFiles/ContinuousSubmit: + /usr/bin/ctest -D ContinuousSubmit + +ContinuousSubmit: CMakeFiles/ContinuousSubmit +ContinuousSubmit: CMakeFiles/ContinuousSubmit.dir/build.make +.PHONY : ContinuousSubmit + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousSubmit.dir/build: ContinuousSubmit +.PHONY : CMakeFiles/ContinuousSubmit.dir/build + +CMakeFiles/ContinuousSubmit.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousSubmit.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousSubmit.dir/clean + +CMakeFiles/ContinuousSubmit.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousSubmit.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cc66ba37777ccbac292828077290fbd248bb8aac --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousSubmit" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousSubmit.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..338091693ef428fefff14d76daef474e33fce6e7 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousSubmit. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..73d7404b91a9d0fad7b056a6ffc404831bdeed8c --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousSubmit. diff --git a/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousTest.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousTest.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..7e7f6b5bf6684963a0c0077cfd35f7b415306d7d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousTest. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousTest.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousTest.dir/progress.make + +CMakeFiles/ContinuousTest: + /usr/bin/ctest -D ContinuousTest + +ContinuousTest: CMakeFiles/ContinuousTest +ContinuousTest: CMakeFiles/ContinuousTest.dir/build.make +.PHONY : ContinuousTest + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousTest.dir/build: ContinuousTest +.PHONY : CMakeFiles/ContinuousTest.dir/build + +CMakeFiles/ContinuousTest.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousTest.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousTest.dir/clean + +CMakeFiles/ContinuousTest.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousTest.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousTest.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousTest.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ff11d485d8ab87784c4450edc72bc5d423d2f884 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousTest" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousTest.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousTest.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..24d664a29feab92b647c6293cd0efc385dc39ef9 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousTest. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousTest.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..bd7c1d1f5ab8524ac039d86bcc38640e6353793e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousTest. diff --git a/llama.cpp/build/CMakeFiles/ContinuousTest.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousTest.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/build.make b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..4b60e711810395d22da012273961c600b08e99fb --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ContinuousUpdate. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ContinuousUpdate.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ContinuousUpdate.dir/progress.make + +CMakeFiles/ContinuousUpdate: + /usr/bin/ctest -D ContinuousUpdate + +ContinuousUpdate: CMakeFiles/ContinuousUpdate +ContinuousUpdate: CMakeFiles/ContinuousUpdate.dir/build.make +.PHONY : ContinuousUpdate + +# Rule to build all files generated by this target. +CMakeFiles/ContinuousUpdate.dir/build: ContinuousUpdate +.PHONY : CMakeFiles/ContinuousUpdate.dir/build + +CMakeFiles/ContinuousUpdate.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ContinuousUpdate.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ContinuousUpdate.dir/clean + +CMakeFiles/ContinuousUpdate.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ContinuousUpdate.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7a77a24c329433762bf3f6526ec1749016e5420d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ContinuousUpdate" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ContinuousUpdate.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b37322694ea9827fa102afa6bfe62a771105a02d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ContinuousUpdate. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..ed8de925658f103a9ecc392a4036fe7ea89f0b3c --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ContinuousUpdate. diff --git a/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/progress.make b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/Experimental.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/Experimental.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Experimental.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/Experimental.dir/build.make b/llama.cpp/build/CMakeFiles/Experimental.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f0e8da8d1c594b39e842bb8156ed87ae64886e28 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Experimental.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for Experimental. + +# Include any custom commands dependencies for this target. +include CMakeFiles/Experimental.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/Experimental.dir/progress.make + +CMakeFiles/Experimental: + /usr/bin/ctest -D Experimental + +Experimental: CMakeFiles/Experimental +Experimental: CMakeFiles/Experimental.dir/build.make +.PHONY : Experimental + +# Rule to build all files generated by this target. +CMakeFiles/Experimental.dir/build: Experimental +.PHONY : CMakeFiles/Experimental.dir/build + +CMakeFiles/Experimental.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Experimental.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Experimental.dir/clean + +CMakeFiles/Experimental.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/Experimental.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/Experimental.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/Experimental.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/Experimental.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..799e7082f2b793f2322e0d90b70651a0d51fdc41 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Experimental.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/Experimental" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/Experimental.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/Experimental.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/Experimental.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..df83d58ef39902b388c0336178ccae0758ee67f4 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Experimental.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for Experimental. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/Experimental.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/Experimental.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2619b9b517364e22e399c52a75202a7f48c2259a --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Experimental.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for Experimental. diff --git a/llama.cpp/build/CMakeFiles/Experimental.dir/progress.make b/llama.cpp/build/CMakeFiles/Experimental.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Experimental.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..04ecb45ae14472b4a26d2adfe014fd594f140c68 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalBuild. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalBuild.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalBuild.dir/progress.make + +CMakeFiles/ExperimentalBuild: + /usr/bin/ctest -D ExperimentalBuild + +ExperimentalBuild: CMakeFiles/ExperimentalBuild +ExperimentalBuild: CMakeFiles/ExperimentalBuild.dir/build.make +.PHONY : ExperimentalBuild + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalBuild.dir/build: ExperimentalBuild +.PHONY : CMakeFiles/ExperimentalBuild.dir/build + +CMakeFiles/ExperimentalBuild.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalBuild.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalBuild.dir/clean + +CMakeFiles/ExperimentalBuild.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalBuild.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3354e3f1c027423f504d335ab0922234b465279c --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalBuild" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalBuild.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7608631423ffd1d316182f2fc00e48ceacf013d2 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalBuild. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..34d91606300131a468dcfdab021438c97e4197b4 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalBuild. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..978b96cc6ea0d7cd910f0b77408fc5e0a9c887f6 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalConfigure. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalConfigure.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalConfigure.dir/progress.make + +CMakeFiles/ExperimentalConfigure: + /usr/bin/ctest -D ExperimentalConfigure + +ExperimentalConfigure: CMakeFiles/ExperimentalConfigure +ExperimentalConfigure: CMakeFiles/ExperimentalConfigure.dir/build.make +.PHONY : ExperimentalConfigure + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalConfigure.dir/build: ExperimentalConfigure +.PHONY : CMakeFiles/ExperimentalConfigure.dir/build + +CMakeFiles/ExperimentalConfigure.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalConfigure.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalConfigure.dir/clean + +CMakeFiles/ExperimentalConfigure.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalConfigure.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..69e4a71991fdd9cb942e4401fd019d2c5f7fedc3 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalConfigure" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalConfigure.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..073879663cd4999b7aa8cb27a976a2a4c069b6b0 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalConfigure. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..51fc32c423789bcb2a256b3c758d0c562b64c1ec --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalConfigure. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..dd17d4328ebd813ec9bd50366ed441235bbe1f68 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalCoverage. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalCoverage.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalCoverage.dir/progress.make + +CMakeFiles/ExperimentalCoverage: + /usr/bin/ctest -D ExperimentalCoverage + +ExperimentalCoverage: CMakeFiles/ExperimentalCoverage +ExperimentalCoverage: CMakeFiles/ExperimentalCoverage.dir/build.make +.PHONY : ExperimentalCoverage + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalCoverage.dir/build: ExperimentalCoverage +.PHONY : CMakeFiles/ExperimentalCoverage.dir/build + +CMakeFiles/ExperimentalCoverage.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalCoverage.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalCoverage.dir/clean + +CMakeFiles/ExperimentalCoverage.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalCoverage.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b8d6597a57093393ae4dd09108c0efa7b196ded2 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalCoverage" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalCoverage.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4c327cbb35a23f563c6c11c84e7013b0becc797e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalCoverage. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..d3bffd388e150073fd2c3378bb97cae63f4def7d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalCoverage. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..8d914d953e3204ed42e0267b26994a9cee7f214e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalMemCheck. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalMemCheck.dir/progress.make + +CMakeFiles/ExperimentalMemCheck: + /usr/bin/ctest -D ExperimentalMemCheck + +ExperimentalMemCheck: CMakeFiles/ExperimentalMemCheck +ExperimentalMemCheck: CMakeFiles/ExperimentalMemCheck.dir/build.make +.PHONY : ExperimentalMemCheck + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalMemCheck.dir/build: ExperimentalMemCheck +.PHONY : CMakeFiles/ExperimentalMemCheck.dir/build + +CMakeFiles/ExperimentalMemCheck.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalMemCheck.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalMemCheck.dir/clean + +CMakeFiles/ExperimentalMemCheck.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalMemCheck.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ed3f7bc0d2aa68a4a79efc34462b4627ed820838 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalMemCheck" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalMemCheck.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ab194c2b9206a5fa008d8ee3900fdddeed1c9e1a --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalMemCheck. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5d0d9acc87fbbd32048643dee2548eb5118a9f51 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalMemCheck. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..641719cd680711abbbd3bcea516b661c3cdfd36c --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalStart. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalStart.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalStart.dir/progress.make + +CMakeFiles/ExperimentalStart: + /usr/bin/ctest -D ExperimentalStart + +ExperimentalStart: CMakeFiles/ExperimentalStart +ExperimentalStart: CMakeFiles/ExperimentalStart.dir/build.make +.PHONY : ExperimentalStart + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalStart.dir/build: ExperimentalStart +.PHONY : CMakeFiles/ExperimentalStart.dir/build + +CMakeFiles/ExperimentalStart.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalStart.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalStart.dir/clean + +CMakeFiles/ExperimentalStart.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalStart.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4e2736b1b868f5fd19b5bae524ae0a78f5331665 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalStart" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalStart.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..29aab519f60f934007fca885d7871eb30168d693 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalStart. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a636e5c05ed17e9bc18ef5edf5c26364c2534cc5 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalStart. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalStart.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0c77c75a89fcce904180b4d3187b4e6c9a75365e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalSubmit. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalSubmit.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalSubmit.dir/progress.make + +CMakeFiles/ExperimentalSubmit: + /usr/bin/ctest -D ExperimentalSubmit + +ExperimentalSubmit: CMakeFiles/ExperimentalSubmit +ExperimentalSubmit: CMakeFiles/ExperimentalSubmit.dir/build.make +.PHONY : ExperimentalSubmit + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalSubmit.dir/build: ExperimentalSubmit +.PHONY : CMakeFiles/ExperimentalSubmit.dir/build + +CMakeFiles/ExperimentalSubmit.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalSubmit.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalSubmit.dir/clean + +CMakeFiles/ExperimentalSubmit.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalSubmit.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d130e45a3ca86f262efb965f2d63e1da56772ed7 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalSubmit" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalSubmit.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..444017272764d5b504a543c6ba7c8ce48953d4af --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalSubmit. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..7fa97b1601cbb8c04048a8391ed3e9b1ba9b2e34 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalSubmit. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2172df6f04b88f3298487b8d5589323264474271 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalTest. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalTest.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalTest.dir/progress.make + +CMakeFiles/ExperimentalTest: + /usr/bin/ctest -D ExperimentalTest + +ExperimentalTest: CMakeFiles/ExperimentalTest +ExperimentalTest: CMakeFiles/ExperimentalTest.dir/build.make +.PHONY : ExperimentalTest + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalTest.dir/build: ExperimentalTest +.PHONY : CMakeFiles/ExperimentalTest.dir/build + +CMakeFiles/ExperimentalTest.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalTest.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalTest.dir/clean + +CMakeFiles/ExperimentalTest.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalTest.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4348aa36d03d852cad3229df1db21029afb3c573 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalTest" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalTest.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..fab28a9448f84ce74cd09f30db9fff5d89f7e6e7 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalTest. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..fbeb091d4c343d8e4c0c99123429a26297407341 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalTest. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalTest.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/build.make b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..19e3765e769246f05b01616408e63fdcd6a2a5cf --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for ExperimentalUpdate. + +# Include any custom commands dependencies for this target. +include CMakeFiles/ExperimentalUpdate.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/ExperimentalUpdate.dir/progress.make + +CMakeFiles/ExperimentalUpdate: + /usr/bin/ctest -D ExperimentalUpdate + +ExperimentalUpdate: CMakeFiles/ExperimentalUpdate +ExperimentalUpdate: CMakeFiles/ExperimentalUpdate.dir/build.make +.PHONY : ExperimentalUpdate + +# Rule to build all files generated by this target. +CMakeFiles/ExperimentalUpdate.dir/build: ExperimentalUpdate +.PHONY : CMakeFiles/ExperimentalUpdate.dir/build + +CMakeFiles/ExperimentalUpdate.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/ExperimentalUpdate.dir/cmake_clean.cmake +.PHONY : CMakeFiles/ExperimentalUpdate.dir/clean + +CMakeFiles/ExperimentalUpdate.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/ExperimentalUpdate.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..23190494323c3f610ef3f4706149811c4fb9c9cd --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/ExperimentalUpdate" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/ExperimentalUpdate.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..30e8f2cac2f5a3b5bd03df79206d32ba1dcd7629 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for ExperimentalUpdate. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..aa7a97edf195dd442c6a81de115112ad5860c0d8 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for ExperimentalUpdate. diff --git a/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/progress.make b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPCheckVersion.c b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPCheckVersion.c new file mode 100644 index 0000000000000000000000000000000000000000..3321e6b19b3c52f8f3d0f5618c5b3602205d7c8f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPCheckVersion.c @@ -0,0 +1,17 @@ + +#include +#include +const char ompver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M', + 'P', '-', 'd', 'a', 't', 'e', '[', + ('0' + ((_OPENMP/100000)%10)), + ('0' + ((_OPENMP/10000)%10)), + ('0' + ((_OPENMP/1000)%10)), + ('0' + ((_OPENMP/100)%10)), + ('0' + ((_OPENMP/10)%10)), + ('0' + ((_OPENMP/1)%10)), + ']', '\0' }; +int main(void) +{ + puts(ompver_str); + return 0; +} diff --git a/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPCheckVersion.cpp b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPCheckVersion.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3321e6b19b3c52f8f3d0f5618c5b3602205d7c8f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPCheckVersion.cpp @@ -0,0 +1,17 @@ + +#include +#include +const char ompver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M', + 'P', '-', 'd', 'a', 't', 'e', '[', + ('0' + ((_OPENMP/100000)%10)), + ('0' + ((_OPENMP/10000)%10)), + ('0' + ((_OPENMP/1000)%10)), + ('0' + ((_OPENMP/100)%10)), + ('0' + ((_OPENMP/10)%10)), + ('0' + ((_OPENMP/1)%10)), + ']', '\0' }; +int main(void) +{ + puts(ompver_str); + return 0; +} diff --git a/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c new file mode 100644 index 0000000000000000000000000000000000000000..4aea0b0914cbbad2c0156aa2215491e70bc84b13 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.c @@ -0,0 +1,12 @@ + +#include +int main(void) { +#ifdef _OPENMP + omp_get_max_threads(); + return 0; +#elif defined(__HIP_DEVICE_COMPILE__) + return 0; +#else + breaks_on_purpose +#endif +} diff --git a/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4aea0b0914cbbad2c0156aa2215491e70bc84b13 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp @@ -0,0 +1,12 @@ + +#include +int main(void) { +#ifdef _OPENMP + omp_get_max_threads(); + return 0; +#elif defined(__HIP_DEVICE_COMPILE__) + return 0; +#else + breaks_on_purpose +#endif +} diff --git a/llama.cpp/build/CMakeFiles/FindOpenMP/ompver_C.bin b/llama.cpp/build/CMakeFiles/FindOpenMP/ompver_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..47eaa907996c0adb4fd56e18159caae60ba5de49 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/FindOpenMP/ompver_C.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dab9f8aae61d84d60d6a753552290673861fa2d3d43190fdd2b769cb852ff3f +size 16240 diff --git a/llama.cpp/build/CMakeFiles/FindOpenMP/ompver_CXX.bin b/llama.cpp/build/CMakeFiles/FindOpenMP/ompver_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..84a063cba0efa7d3cedc394cdf29d1f861fdd7c2 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/FindOpenMP/ompver_CXX.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ef621e77b228a21f7ee9260ec5927e8f97b93def889e455cba0b59b249b2ce6 +size 16248 diff --git a/llama.cpp/build/CMakeFiles/Makefile.cmake b/llama.cpp/build/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ee13ac830915347c5112ab53695c1b30bf558107 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Makefile.cmake @@ -0,0 +1,340 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.22.1/CMakeCCompiler.cmake" + "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake" + "CMakeFiles/3.22.1/CMakeSystem.cmake" + "CMakeFiles/FindOpenMP/OpenMPCheckVersion.c" + "CMakeFiles/FindOpenMP/OpenMPCheckVersion.cpp" + "CMakeFiles/FindOpenMP/OpenMPTryFlag.c" + "CMakeFiles/FindOpenMP/OpenMPTryFlag.cpp" + "../cmake/build-info.cmake" + "../cmake/common.cmake" + "../cmake/git-vars.cmake" + "../cmake/llama-config.cmake.in" + "../cmake/llama.pc.in" + "../common/CMakeLists.txt" + "../examples/CMakeLists.txt" + "../examples/batched-bench/CMakeLists.txt" + "../examples/batched/CMakeLists.txt" + "../examples/convert-llama2c-to-ggml/CMakeLists.txt" + "../examples/cvector-generator/CMakeLists.txt" + "../examples/embedding/CMakeLists.txt" + "../examples/eval-callback/CMakeLists.txt" + "../examples/export-lora/CMakeLists.txt" + "../examples/gbnf-validator/CMakeLists.txt" + "../examples/gguf-hash/CMakeLists.txt" + "../examples/gguf-split/CMakeLists.txt" + "../examples/gguf/CMakeLists.txt" + "../examples/gritlm/CMakeLists.txt" + "../examples/imatrix/CMakeLists.txt" + "../examples/infill/CMakeLists.txt" + "../examples/llama-bench/CMakeLists.txt" + "../examples/llava/CMakeLists.txt" + "../examples/lookahead/CMakeLists.txt" + "../examples/lookup/CMakeLists.txt" + "../examples/main/CMakeLists.txt" + "../examples/parallel/CMakeLists.txt" + "../examples/passkey/CMakeLists.txt" + "../examples/perplexity/CMakeLists.txt" + "../examples/quantize-stats/CMakeLists.txt" + "../examples/quantize/CMakeLists.txt" + "../examples/retrieval/CMakeLists.txt" + "../examples/run/CMakeLists.txt" + "../examples/save-load-state/CMakeLists.txt" + "../examples/server/CMakeLists.txt" + "../examples/simple-chat/CMakeLists.txt" + "../examples/simple/CMakeLists.txt" + "../examples/speculative-simple/CMakeLists.txt" + "../examples/speculative/CMakeLists.txt" + "../examples/tokenize/CMakeLists.txt" + "../ggml/CMakeLists.txt" + "../ggml/src/CMakeLists.txt" + "../ggml/src/ggml-cpu/CMakeLists.txt" + "../pocs/CMakeLists.txt" + "../pocs/vdot/CMakeLists.txt" + "../src/CMakeLists.txt" + "../tests/CMakeLists.txt" + "/usr/share/cmake-3.22/Modules/BasicConfigVersion-SameMajorVersion.cmake.in" + "/usr/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + "/usr/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + "/usr/share/cmake-3.22/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.22/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" + "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.22/Modules/CMakePackageConfigHelpers.cmake" + "/usr/share/cmake-3.22/Modules/CMakeParseArguments.cmake" + "/usr/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/usr/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + "/usr/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + "/usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake-3.22/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.22/Modules/CTest.cmake" + "/usr/share/cmake-3.22/Modules/CTestTargets.cmake" + "/usr/share/cmake-3.22/Modules/CTestUseLaunchers.cmake" + "/usr/share/cmake-3.22/Modules/CheckCSourceCompiles.cmake" + "/usr/share/cmake-3.22/Modules/CheckCXXCompilerFlag.cmake" + "/usr/share/cmake-3.22/Modules/CheckCXXSourceCompiles.cmake" + "/usr/share/cmake-3.22/Modules/CheckIncludeFile.c.in" + "/usr/share/cmake-3.22/Modules/CheckIncludeFile.cmake" + "/usr/share/cmake-3.22/Modules/CheckIncludeFileCXX.cmake" + "/usr/share/cmake-3.22/Modules/CheckLibraryExists.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GNU-FindBinUtils.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.22/Modules/DartConfiguration.tcl.in" + "/usr/share/cmake-3.22/Modules/FindGit.cmake" + "/usr/share/cmake-3.22/Modules/FindOpenMP.cmake" + "/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake" + "/usr/share/cmake-3.22/Modules/FindPackageMessage.cmake" + "/usr/share/cmake-3.22/Modules/FindThreads.cmake" + "/usr/share/cmake-3.22/Modules/GNUInstallDirs.cmake" + "/usr/share/cmake-3.22/Modules/Internal/CheckCompilerFlag.cmake" + "/usr/share/cmake-3.22/Modules/Internal/CheckSourceCompiles.cmake" + "/usr/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake-3.22/Modules/Platform/Linux-Determine-CXX.cmake" + "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.22/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + "/usr/share/cmake-3.22/Modules/WriteBasicConfigVersionFile.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.22.1/CMakeSystem.cmake" + "CMakeFiles/3.22.1/CMakeCCompiler.cmake" + "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake" + "CMakeFiles/3.22.1/CMakeCCompiler.cmake" + "CMakeFiles/3.22.1/CMakeCXXCompiler.cmake" + "llama-config.cmake" + "llama-version.cmake" + "llama.pc" + "DartConfiguration.tcl" + "CMakeFiles/CMakeDirectoryInformation.cmake" + "ggml/CMakeFiles/CMakeDirectoryInformation.cmake" + "ggml/src/CMakeFiles/CMakeDirectoryInformation.cmake" + "ggml/src/ggml-cpu/CMakeFiles/CMakeDirectoryInformation.cmake" + "src/CMakeFiles/CMakeDirectoryInformation.cmake" + "common/CMakeFiles/CMakeDirectoryInformation.cmake" + "tests/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/batched-bench/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/batched/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/embedding/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/eval-callback/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/gbnf-validator/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/gguf-hash/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/gguf-split/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/gguf/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/gritlm/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/imatrix/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/infill/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/llama-bench/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/lookahead/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/lookup/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/main/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/parallel/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/passkey/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/perplexity/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/quantize/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/retrieval/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/server/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/save-load-state/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/run/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/simple/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/simple-chat/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/speculative/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/speculative-simple/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/tokenize/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/convert-llama2c-to-ggml/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/cvector-generator/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/export-lora/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/quantize-stats/CMakeFiles/CMakeDirectoryInformation.cmake" + "examples/llava/CMakeFiles/CMakeDirectoryInformation.cmake" + "pocs/CMakeFiles/CMakeDirectoryInformation.cmake" + "pocs/vdot/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/Experimental.dir/DependInfo.cmake" + "CMakeFiles/Nightly.dir/DependInfo.cmake" + "CMakeFiles/Continuous.dir/DependInfo.cmake" + "CMakeFiles/NightlyMemoryCheck.dir/DependInfo.cmake" + "CMakeFiles/NightlyStart.dir/DependInfo.cmake" + "CMakeFiles/NightlyUpdate.dir/DependInfo.cmake" + "CMakeFiles/NightlyConfigure.dir/DependInfo.cmake" + "CMakeFiles/NightlyBuild.dir/DependInfo.cmake" + "CMakeFiles/NightlyTest.dir/DependInfo.cmake" + "CMakeFiles/NightlyCoverage.dir/DependInfo.cmake" + "CMakeFiles/NightlyMemCheck.dir/DependInfo.cmake" + "CMakeFiles/NightlySubmit.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalStart.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalUpdate.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalConfigure.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalBuild.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalTest.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalCoverage.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalMemCheck.dir/DependInfo.cmake" + "CMakeFiles/ExperimentalSubmit.dir/DependInfo.cmake" + "CMakeFiles/ContinuousStart.dir/DependInfo.cmake" + "CMakeFiles/ContinuousUpdate.dir/DependInfo.cmake" + "CMakeFiles/ContinuousConfigure.dir/DependInfo.cmake" + "CMakeFiles/ContinuousBuild.dir/DependInfo.cmake" + "CMakeFiles/ContinuousTest.dir/DependInfo.cmake" + "CMakeFiles/ContinuousCoverage.dir/DependInfo.cmake" + "CMakeFiles/ContinuousMemCheck.dir/DependInfo.cmake" + "CMakeFiles/ContinuousSubmit.dir/DependInfo.cmake" + "ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + "ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "src/CMakeFiles/llama.dir/DependInfo.cmake" + "common/CMakeFiles/build_info.dir/DependInfo.cmake" + "common/CMakeFiles/common.dir/DependInfo.cmake" + "tests/CMakeFiles/test-tokenizer-0.dir/DependInfo.cmake" + "tests/CMakeFiles/test-tokenizer-1-bpe.dir/DependInfo.cmake" + "tests/CMakeFiles/test-tokenizer-1-spm.dir/DependInfo.cmake" + "tests/CMakeFiles/test-log.dir/DependInfo.cmake" + "tests/CMakeFiles/test-arg-parser.dir/DependInfo.cmake" + "tests/CMakeFiles/test-sampling.dir/DependInfo.cmake" + "tests/CMakeFiles/test-chat-template.dir/DependInfo.cmake" + "tests/CMakeFiles/test-grammar-parser.dir/DependInfo.cmake" + "tests/CMakeFiles/test-grammar-integration.dir/DependInfo.cmake" + "tests/CMakeFiles/test-llama-grammar.dir/DependInfo.cmake" + "tests/CMakeFiles/test-backend-ops.dir/DependInfo.cmake" + "tests/CMakeFiles/test-model-load-cancel.dir/DependInfo.cmake" + "tests/CMakeFiles/test-autorelease.dir/DependInfo.cmake" + "tests/CMakeFiles/test-barrier.dir/DependInfo.cmake" + "tests/CMakeFiles/test-quantize-fns.dir/DependInfo.cmake" + "tests/CMakeFiles/test-quantize-perf.dir/DependInfo.cmake" + "tests/CMakeFiles/test-rope.dir/DependInfo.cmake" + "tests/CMakeFiles/test-json-schema-to-grammar.dir/DependInfo.cmake" + "tests/CMakeFiles/test-c.dir/DependInfo.cmake" + "examples/batched-bench/CMakeFiles/llama-batched-bench.dir/DependInfo.cmake" + "examples/batched/CMakeFiles/llama-batched.dir/DependInfo.cmake" + "examples/embedding/CMakeFiles/llama-embedding.dir/DependInfo.cmake" + "examples/eval-callback/CMakeFiles/llama-eval-callback.dir/DependInfo.cmake" + "examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/DependInfo.cmake" + "examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/DependInfo.cmake" + "examples/gguf-hash/CMakeFiles/xxhash.dir/DependInfo.cmake" + "examples/gguf-hash/CMakeFiles/sha1.dir/DependInfo.cmake" + "examples/gguf-hash/CMakeFiles/sha256.dir/DependInfo.cmake" + "examples/gguf-split/CMakeFiles/llama-gguf-split.dir/DependInfo.cmake" + "examples/gguf/CMakeFiles/llama-gguf.dir/DependInfo.cmake" + "examples/gritlm/CMakeFiles/llama-gritlm.dir/DependInfo.cmake" + "examples/imatrix/CMakeFiles/llama-imatrix.dir/DependInfo.cmake" + "examples/infill/CMakeFiles/llama-infill.dir/DependInfo.cmake" + "examples/llama-bench/CMakeFiles/llama-bench.dir/DependInfo.cmake" + "examples/lookahead/CMakeFiles/llama-lookahead.dir/DependInfo.cmake" + "examples/lookup/CMakeFiles/llama-lookup.dir/DependInfo.cmake" + "examples/lookup/CMakeFiles/llama-lookup-create.dir/DependInfo.cmake" + "examples/lookup/CMakeFiles/llama-lookup-merge.dir/DependInfo.cmake" + "examples/lookup/CMakeFiles/llama-lookup-stats.dir/DependInfo.cmake" + "examples/main/CMakeFiles/llama-cli.dir/DependInfo.cmake" + "examples/parallel/CMakeFiles/llama-parallel.dir/DependInfo.cmake" + "examples/passkey/CMakeFiles/llama-passkey.dir/DependInfo.cmake" + "examples/perplexity/CMakeFiles/llama-perplexity.dir/DependInfo.cmake" + "examples/quantize/CMakeFiles/llama-quantize.dir/DependInfo.cmake" + "examples/retrieval/CMakeFiles/llama-retrieval.dir/DependInfo.cmake" + "examples/server/CMakeFiles/llama-server.dir/DependInfo.cmake" + "examples/save-load-state/CMakeFiles/llama-save-load-state.dir/DependInfo.cmake" + "examples/run/CMakeFiles/llama-run.dir/DependInfo.cmake" + "examples/simple/CMakeFiles/llama-simple.dir/DependInfo.cmake" + "examples/simple-chat/CMakeFiles/llama-simple-chat.dir/DependInfo.cmake" + "examples/speculative/CMakeFiles/llama-speculative.dir/DependInfo.cmake" + "examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/DependInfo.cmake" + "examples/tokenize/CMakeFiles/llama-tokenize.dir/DependInfo.cmake" + "examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/DependInfo.cmake" + "examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/DependInfo.cmake" + "examples/export-lora/CMakeFiles/llama-export-lora.dir/DependInfo.cmake" + "examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/DependInfo.cmake" + "examples/llava/CMakeFiles/llava.dir/DependInfo.cmake" + "examples/llava/CMakeFiles/llava_static.dir/DependInfo.cmake" + "examples/llava/CMakeFiles/llava_shared.dir/DependInfo.cmake" + "examples/llava/CMakeFiles/llama-llava-cli.dir/DependInfo.cmake" + "examples/llava/CMakeFiles/llama-minicpmv-cli.dir/DependInfo.cmake" + "pocs/vdot/CMakeFiles/llama-vdot.dir/DependInfo.cmake" + "pocs/vdot/CMakeFiles/llama-q8dot.dir/DependInfo.cmake" + ) diff --git a/llama.cpp/build/CMakeFiles/Makefile2 b/llama.cpp/build/CMakeFiles/Makefile2 new file mode 100644 index 0000000000000000000000000000000000000000..a9634568dfa2d46291f2224cc7b289690ed981bf --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Makefile2 @@ -0,0 +1,3761 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: ggml/all +all: src/all +all: common/all +all: tests/all +all: examples/all +all: pocs/all +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: ggml/preinstall +preinstall: src/preinstall +preinstall: common/preinstall +preinstall: tests/preinstall +preinstall: examples/preinstall +preinstall: pocs/preinstall +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/Experimental.dir/clean +clean: CMakeFiles/Nightly.dir/clean +clean: CMakeFiles/Continuous.dir/clean +clean: CMakeFiles/NightlyMemoryCheck.dir/clean +clean: CMakeFiles/NightlyStart.dir/clean +clean: CMakeFiles/NightlyUpdate.dir/clean +clean: CMakeFiles/NightlyConfigure.dir/clean +clean: CMakeFiles/NightlyBuild.dir/clean +clean: CMakeFiles/NightlyTest.dir/clean +clean: CMakeFiles/NightlyCoverage.dir/clean +clean: CMakeFiles/NightlyMemCheck.dir/clean +clean: CMakeFiles/NightlySubmit.dir/clean +clean: CMakeFiles/ExperimentalStart.dir/clean +clean: CMakeFiles/ExperimentalUpdate.dir/clean +clean: CMakeFiles/ExperimentalConfigure.dir/clean +clean: CMakeFiles/ExperimentalBuild.dir/clean +clean: CMakeFiles/ExperimentalTest.dir/clean +clean: CMakeFiles/ExperimentalCoverage.dir/clean +clean: CMakeFiles/ExperimentalMemCheck.dir/clean +clean: CMakeFiles/ExperimentalSubmit.dir/clean +clean: CMakeFiles/ContinuousStart.dir/clean +clean: CMakeFiles/ContinuousUpdate.dir/clean +clean: CMakeFiles/ContinuousConfigure.dir/clean +clean: CMakeFiles/ContinuousBuild.dir/clean +clean: CMakeFiles/ContinuousTest.dir/clean +clean: CMakeFiles/ContinuousCoverage.dir/clean +clean: CMakeFiles/ContinuousMemCheck.dir/clean +clean: CMakeFiles/ContinuousSubmit.dir/clean +clean: ggml/clean +clean: src/clean +clean: common/clean +clean: tests/clean +clean: examples/clean +clean: pocs/clean +.PHONY : clean + +#============================================================================= +# Directory level rules for directory common + +# Recursive "all" directory target. +common/all: common/CMakeFiles/build_info.dir/all +common/all: common/CMakeFiles/common.dir/all +.PHONY : common/all + +# Recursive "preinstall" directory target. +common/preinstall: +.PHONY : common/preinstall + +# Recursive "clean" directory target. +common/clean: common/CMakeFiles/build_info.dir/clean +common/clean: common/CMakeFiles/common.dir/clean +.PHONY : common/clean + +#============================================================================= +# Directory level rules for directory examples + +# Recursive "all" directory target. +examples/all: examples/batched-bench/all +examples/all: examples/batched/all +examples/all: examples/embedding/all +examples/all: examples/eval-callback/all +examples/all: examples/gbnf-validator/all +examples/all: examples/gguf-hash/all +examples/all: examples/gguf-split/all +examples/all: examples/gguf/all +examples/all: examples/gritlm/all +examples/all: examples/imatrix/all +examples/all: examples/infill/all +examples/all: examples/llama-bench/all +examples/all: examples/lookahead/all +examples/all: examples/lookup/all +examples/all: examples/main/all +examples/all: examples/parallel/all +examples/all: examples/passkey/all +examples/all: examples/perplexity/all +examples/all: examples/quantize/all +examples/all: examples/retrieval/all +examples/all: examples/server/all +examples/all: examples/save-load-state/all +examples/all: examples/run/all +examples/all: examples/simple/all +examples/all: examples/simple-chat/all +examples/all: examples/speculative/all +examples/all: examples/speculative-simple/all +examples/all: examples/tokenize/all +examples/all: examples/convert-llama2c-to-ggml/all +examples/all: examples/cvector-generator/all +examples/all: examples/export-lora/all +examples/all: examples/quantize-stats/all +examples/all: examples/llava/all +.PHONY : examples/all + +# Recursive "preinstall" directory target. +examples/preinstall: examples/batched-bench/preinstall +examples/preinstall: examples/batched/preinstall +examples/preinstall: examples/embedding/preinstall +examples/preinstall: examples/eval-callback/preinstall +examples/preinstall: examples/gbnf-validator/preinstall +examples/preinstall: examples/gguf-hash/preinstall +examples/preinstall: examples/gguf-split/preinstall +examples/preinstall: examples/gguf/preinstall +examples/preinstall: examples/gritlm/preinstall +examples/preinstall: examples/imatrix/preinstall +examples/preinstall: examples/infill/preinstall +examples/preinstall: examples/llama-bench/preinstall +examples/preinstall: examples/lookahead/preinstall +examples/preinstall: examples/lookup/preinstall +examples/preinstall: examples/main/preinstall +examples/preinstall: examples/parallel/preinstall +examples/preinstall: examples/passkey/preinstall +examples/preinstall: examples/perplexity/preinstall +examples/preinstall: examples/quantize/preinstall +examples/preinstall: examples/retrieval/preinstall +examples/preinstall: examples/server/preinstall +examples/preinstall: examples/save-load-state/preinstall +examples/preinstall: examples/run/preinstall +examples/preinstall: examples/simple/preinstall +examples/preinstall: examples/simple-chat/preinstall +examples/preinstall: examples/speculative/preinstall +examples/preinstall: examples/speculative-simple/preinstall +examples/preinstall: examples/tokenize/preinstall +examples/preinstall: examples/convert-llama2c-to-ggml/preinstall +examples/preinstall: examples/cvector-generator/preinstall +examples/preinstall: examples/export-lora/preinstall +examples/preinstall: examples/quantize-stats/preinstall +examples/preinstall: examples/llava/preinstall +.PHONY : examples/preinstall + +# Recursive "clean" directory target. +examples/clean: examples/batched-bench/clean +examples/clean: examples/batched/clean +examples/clean: examples/embedding/clean +examples/clean: examples/eval-callback/clean +examples/clean: examples/gbnf-validator/clean +examples/clean: examples/gguf-hash/clean +examples/clean: examples/gguf-split/clean +examples/clean: examples/gguf/clean +examples/clean: examples/gritlm/clean +examples/clean: examples/imatrix/clean +examples/clean: examples/infill/clean +examples/clean: examples/llama-bench/clean +examples/clean: examples/lookahead/clean +examples/clean: examples/lookup/clean +examples/clean: examples/main/clean +examples/clean: examples/parallel/clean +examples/clean: examples/passkey/clean +examples/clean: examples/perplexity/clean +examples/clean: examples/quantize/clean +examples/clean: examples/retrieval/clean +examples/clean: examples/server/clean +examples/clean: examples/save-load-state/clean +examples/clean: examples/run/clean +examples/clean: examples/simple/clean +examples/clean: examples/simple-chat/clean +examples/clean: examples/speculative/clean +examples/clean: examples/speculative-simple/clean +examples/clean: examples/tokenize/clean +examples/clean: examples/convert-llama2c-to-ggml/clean +examples/clean: examples/cvector-generator/clean +examples/clean: examples/export-lora/clean +examples/clean: examples/quantize-stats/clean +examples/clean: examples/llava/clean +.PHONY : examples/clean + +#============================================================================= +# Directory level rules for directory examples/batched + +# Recursive "all" directory target. +examples/batched/all: examples/batched/CMakeFiles/llama-batched.dir/all +.PHONY : examples/batched/all + +# Recursive "preinstall" directory target. +examples/batched/preinstall: +.PHONY : examples/batched/preinstall + +# Recursive "clean" directory target. +examples/batched/clean: examples/batched/CMakeFiles/llama-batched.dir/clean +.PHONY : examples/batched/clean + +#============================================================================= +# Directory level rules for directory examples/batched-bench + +# Recursive "all" directory target. +examples/batched-bench/all: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all +.PHONY : examples/batched-bench/all + +# Recursive "preinstall" directory target. +examples/batched-bench/preinstall: +.PHONY : examples/batched-bench/preinstall + +# Recursive "clean" directory target. +examples/batched-bench/clean: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/clean +.PHONY : examples/batched-bench/clean + +#============================================================================= +# Directory level rules for directory examples/convert-llama2c-to-ggml + +# Recursive "all" directory target. +examples/convert-llama2c-to-ggml/all: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all +.PHONY : examples/convert-llama2c-to-ggml/all + +# Recursive "preinstall" directory target. +examples/convert-llama2c-to-ggml/preinstall: +.PHONY : examples/convert-llama2c-to-ggml/preinstall + +# Recursive "clean" directory target. +examples/convert-llama2c-to-ggml/clean: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/clean +.PHONY : examples/convert-llama2c-to-ggml/clean + +#============================================================================= +# Directory level rules for directory examples/cvector-generator + +# Recursive "all" directory target. +examples/cvector-generator/all: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all +.PHONY : examples/cvector-generator/all + +# Recursive "preinstall" directory target. +examples/cvector-generator/preinstall: +.PHONY : examples/cvector-generator/preinstall + +# Recursive "clean" directory target. +examples/cvector-generator/clean: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/clean +.PHONY : examples/cvector-generator/clean + +#============================================================================= +# Directory level rules for directory examples/embedding + +# Recursive "all" directory target. +examples/embedding/all: examples/embedding/CMakeFiles/llama-embedding.dir/all +.PHONY : examples/embedding/all + +# Recursive "preinstall" directory target. +examples/embedding/preinstall: +.PHONY : examples/embedding/preinstall + +# Recursive "clean" directory target. +examples/embedding/clean: examples/embedding/CMakeFiles/llama-embedding.dir/clean +.PHONY : examples/embedding/clean + +#============================================================================= +# Directory level rules for directory examples/eval-callback + +# Recursive "all" directory target. +examples/eval-callback/all: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all +.PHONY : examples/eval-callback/all + +# Recursive "preinstall" directory target. +examples/eval-callback/preinstall: +.PHONY : examples/eval-callback/preinstall + +# Recursive "clean" directory target. +examples/eval-callback/clean: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/clean +.PHONY : examples/eval-callback/clean + +#============================================================================= +# Directory level rules for directory examples/export-lora + +# Recursive "all" directory target. +examples/export-lora/all: examples/export-lora/CMakeFiles/llama-export-lora.dir/all +.PHONY : examples/export-lora/all + +# Recursive "preinstall" directory target. +examples/export-lora/preinstall: +.PHONY : examples/export-lora/preinstall + +# Recursive "clean" directory target. +examples/export-lora/clean: examples/export-lora/CMakeFiles/llama-export-lora.dir/clean +.PHONY : examples/export-lora/clean + +#============================================================================= +# Directory level rules for directory examples/gbnf-validator + +# Recursive "all" directory target. +examples/gbnf-validator/all: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all +.PHONY : examples/gbnf-validator/all + +# Recursive "preinstall" directory target. +examples/gbnf-validator/preinstall: +.PHONY : examples/gbnf-validator/preinstall + +# Recursive "clean" directory target. +examples/gbnf-validator/clean: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/clean +.PHONY : examples/gbnf-validator/clean + +#============================================================================= +# Directory level rules for directory examples/gguf + +# Recursive "all" directory target. +examples/gguf/all: examples/gguf/CMakeFiles/llama-gguf.dir/all +.PHONY : examples/gguf/all + +# Recursive "preinstall" directory target. +examples/gguf/preinstall: +.PHONY : examples/gguf/preinstall + +# Recursive "clean" directory target. +examples/gguf/clean: examples/gguf/CMakeFiles/llama-gguf.dir/clean +.PHONY : examples/gguf/clean + +#============================================================================= +# Directory level rules for directory examples/gguf-hash + +# Recursive "all" directory target. +examples/gguf-hash/all: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all +examples/gguf-hash/all: examples/gguf-hash/CMakeFiles/xxhash.dir/all +examples/gguf-hash/all: examples/gguf-hash/CMakeFiles/sha1.dir/all +examples/gguf-hash/all: examples/gguf-hash/CMakeFiles/sha256.dir/all +.PHONY : examples/gguf-hash/all + +# Recursive "preinstall" directory target. +examples/gguf-hash/preinstall: +.PHONY : examples/gguf-hash/preinstall + +# Recursive "clean" directory target. +examples/gguf-hash/clean: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/clean +examples/gguf-hash/clean: examples/gguf-hash/CMakeFiles/xxhash.dir/clean +examples/gguf-hash/clean: examples/gguf-hash/CMakeFiles/sha1.dir/clean +examples/gguf-hash/clean: examples/gguf-hash/CMakeFiles/sha256.dir/clean +.PHONY : examples/gguf-hash/clean + +#============================================================================= +# Directory level rules for directory examples/gguf-split + +# Recursive "all" directory target. +examples/gguf-split/all: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all +.PHONY : examples/gguf-split/all + +# Recursive "preinstall" directory target. +examples/gguf-split/preinstall: +.PHONY : examples/gguf-split/preinstall + +# Recursive "clean" directory target. +examples/gguf-split/clean: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/clean +.PHONY : examples/gguf-split/clean + +#============================================================================= +# Directory level rules for directory examples/gritlm + +# Recursive "all" directory target. +examples/gritlm/all: examples/gritlm/CMakeFiles/llama-gritlm.dir/all +.PHONY : examples/gritlm/all + +# Recursive "preinstall" directory target. +examples/gritlm/preinstall: +.PHONY : examples/gritlm/preinstall + +# Recursive "clean" directory target. +examples/gritlm/clean: examples/gritlm/CMakeFiles/llama-gritlm.dir/clean +.PHONY : examples/gritlm/clean + +#============================================================================= +# Directory level rules for directory examples/imatrix + +# Recursive "all" directory target. +examples/imatrix/all: examples/imatrix/CMakeFiles/llama-imatrix.dir/all +.PHONY : examples/imatrix/all + +# Recursive "preinstall" directory target. +examples/imatrix/preinstall: +.PHONY : examples/imatrix/preinstall + +# Recursive "clean" directory target. +examples/imatrix/clean: examples/imatrix/CMakeFiles/llama-imatrix.dir/clean +.PHONY : examples/imatrix/clean + +#============================================================================= +# Directory level rules for directory examples/infill + +# Recursive "all" directory target. +examples/infill/all: examples/infill/CMakeFiles/llama-infill.dir/all +.PHONY : examples/infill/all + +# Recursive "preinstall" directory target. +examples/infill/preinstall: +.PHONY : examples/infill/preinstall + +# Recursive "clean" directory target. +examples/infill/clean: examples/infill/CMakeFiles/llama-infill.dir/clean +.PHONY : examples/infill/clean + +#============================================================================= +# Directory level rules for directory examples/llama-bench + +# Recursive "all" directory target. +examples/llama-bench/all: examples/llama-bench/CMakeFiles/llama-bench.dir/all +.PHONY : examples/llama-bench/all + +# Recursive "preinstall" directory target. +examples/llama-bench/preinstall: +.PHONY : examples/llama-bench/preinstall + +# Recursive "clean" directory target. +examples/llama-bench/clean: examples/llama-bench/CMakeFiles/llama-bench.dir/clean +.PHONY : examples/llama-bench/clean + +#============================================================================= +# Directory level rules for directory examples/llava + +# Recursive "all" directory target. +examples/llava/all: examples/llava/CMakeFiles/llava.dir/all +examples/llava/all: examples/llava/CMakeFiles/llava_static.dir/all +examples/llava/all: examples/llava/CMakeFiles/llava_shared.dir/all +examples/llava/all: examples/llava/CMakeFiles/llama-llava-cli.dir/all +examples/llava/all: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all +.PHONY : examples/llava/all + +# Recursive "preinstall" directory target. +examples/llava/preinstall: +.PHONY : examples/llava/preinstall + +# Recursive "clean" directory target. +examples/llava/clean: examples/llava/CMakeFiles/llava.dir/clean +examples/llava/clean: examples/llava/CMakeFiles/llava_static.dir/clean +examples/llava/clean: examples/llava/CMakeFiles/llava_shared.dir/clean +examples/llava/clean: examples/llava/CMakeFiles/llama-llava-cli.dir/clean +examples/llava/clean: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/clean +.PHONY : examples/llava/clean + +#============================================================================= +# Directory level rules for directory examples/lookahead + +# Recursive "all" directory target. +examples/lookahead/all: examples/lookahead/CMakeFiles/llama-lookahead.dir/all +.PHONY : examples/lookahead/all + +# Recursive "preinstall" directory target. +examples/lookahead/preinstall: +.PHONY : examples/lookahead/preinstall + +# Recursive "clean" directory target. +examples/lookahead/clean: examples/lookahead/CMakeFiles/llama-lookahead.dir/clean +.PHONY : examples/lookahead/clean + +#============================================================================= +# Directory level rules for directory examples/lookup + +# Recursive "all" directory target. +examples/lookup/all: examples/lookup/CMakeFiles/llama-lookup.dir/all +examples/lookup/all: examples/lookup/CMakeFiles/llama-lookup-create.dir/all +examples/lookup/all: examples/lookup/CMakeFiles/llama-lookup-merge.dir/all +examples/lookup/all: examples/lookup/CMakeFiles/llama-lookup-stats.dir/all +.PHONY : examples/lookup/all + +# Recursive "preinstall" directory target. +examples/lookup/preinstall: +.PHONY : examples/lookup/preinstall + +# Recursive "clean" directory target. +examples/lookup/clean: examples/lookup/CMakeFiles/llama-lookup.dir/clean +examples/lookup/clean: examples/lookup/CMakeFiles/llama-lookup-create.dir/clean +examples/lookup/clean: examples/lookup/CMakeFiles/llama-lookup-merge.dir/clean +examples/lookup/clean: examples/lookup/CMakeFiles/llama-lookup-stats.dir/clean +.PHONY : examples/lookup/clean + +#============================================================================= +# Directory level rules for directory examples/main + +# Recursive "all" directory target. +examples/main/all: examples/main/CMakeFiles/llama-cli.dir/all +.PHONY : examples/main/all + +# Recursive "preinstall" directory target. +examples/main/preinstall: +.PHONY : examples/main/preinstall + +# Recursive "clean" directory target. +examples/main/clean: examples/main/CMakeFiles/llama-cli.dir/clean +.PHONY : examples/main/clean + +#============================================================================= +# Directory level rules for directory examples/parallel + +# Recursive "all" directory target. +examples/parallel/all: examples/parallel/CMakeFiles/llama-parallel.dir/all +.PHONY : examples/parallel/all + +# Recursive "preinstall" directory target. +examples/parallel/preinstall: +.PHONY : examples/parallel/preinstall + +# Recursive "clean" directory target. +examples/parallel/clean: examples/parallel/CMakeFiles/llama-parallel.dir/clean +.PHONY : examples/parallel/clean + +#============================================================================= +# Directory level rules for directory examples/passkey + +# Recursive "all" directory target. +examples/passkey/all: examples/passkey/CMakeFiles/llama-passkey.dir/all +.PHONY : examples/passkey/all + +# Recursive "preinstall" directory target. +examples/passkey/preinstall: +.PHONY : examples/passkey/preinstall + +# Recursive "clean" directory target. +examples/passkey/clean: examples/passkey/CMakeFiles/llama-passkey.dir/clean +.PHONY : examples/passkey/clean + +#============================================================================= +# Directory level rules for directory examples/perplexity + +# Recursive "all" directory target. +examples/perplexity/all: examples/perplexity/CMakeFiles/llama-perplexity.dir/all +.PHONY : examples/perplexity/all + +# Recursive "preinstall" directory target. +examples/perplexity/preinstall: +.PHONY : examples/perplexity/preinstall + +# Recursive "clean" directory target. +examples/perplexity/clean: examples/perplexity/CMakeFiles/llama-perplexity.dir/clean +.PHONY : examples/perplexity/clean + +#============================================================================= +# Directory level rules for directory examples/quantize + +# Recursive "all" directory target. +examples/quantize/all: examples/quantize/CMakeFiles/llama-quantize.dir/all +.PHONY : examples/quantize/all + +# Recursive "preinstall" directory target. +examples/quantize/preinstall: +.PHONY : examples/quantize/preinstall + +# Recursive "clean" directory target. +examples/quantize/clean: examples/quantize/CMakeFiles/llama-quantize.dir/clean +.PHONY : examples/quantize/clean + +#============================================================================= +# Directory level rules for directory examples/quantize-stats + +# Recursive "all" directory target. +examples/quantize-stats/all: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all +.PHONY : examples/quantize-stats/all + +# Recursive "preinstall" directory target. +examples/quantize-stats/preinstall: +.PHONY : examples/quantize-stats/preinstall + +# Recursive "clean" directory target. +examples/quantize-stats/clean: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/clean +.PHONY : examples/quantize-stats/clean + +#============================================================================= +# Directory level rules for directory examples/retrieval + +# Recursive "all" directory target. +examples/retrieval/all: examples/retrieval/CMakeFiles/llama-retrieval.dir/all +.PHONY : examples/retrieval/all + +# Recursive "preinstall" directory target. +examples/retrieval/preinstall: +.PHONY : examples/retrieval/preinstall + +# Recursive "clean" directory target. +examples/retrieval/clean: examples/retrieval/CMakeFiles/llama-retrieval.dir/clean +.PHONY : examples/retrieval/clean + +#============================================================================= +# Directory level rules for directory examples/run + +# Recursive "all" directory target. +examples/run/all: examples/run/CMakeFiles/llama-run.dir/all +.PHONY : examples/run/all + +# Recursive "preinstall" directory target. +examples/run/preinstall: +.PHONY : examples/run/preinstall + +# Recursive "clean" directory target. +examples/run/clean: examples/run/CMakeFiles/llama-run.dir/clean +.PHONY : examples/run/clean + +#============================================================================= +# Directory level rules for directory examples/save-load-state + +# Recursive "all" directory target. +examples/save-load-state/all: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all +.PHONY : examples/save-load-state/all + +# Recursive "preinstall" directory target. +examples/save-load-state/preinstall: +.PHONY : examples/save-load-state/preinstall + +# Recursive "clean" directory target. +examples/save-load-state/clean: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/clean +.PHONY : examples/save-load-state/clean + +#============================================================================= +# Directory level rules for directory examples/server + +# Recursive "all" directory target. +examples/server/all: examples/server/CMakeFiles/llama-server.dir/all +.PHONY : examples/server/all + +# Recursive "preinstall" directory target. +examples/server/preinstall: +.PHONY : examples/server/preinstall + +# Recursive "clean" directory target. +examples/server/clean: examples/server/CMakeFiles/llama-server.dir/clean +.PHONY : examples/server/clean + +#============================================================================= +# Directory level rules for directory examples/simple + +# Recursive "all" directory target. +examples/simple/all: examples/simple/CMakeFiles/llama-simple.dir/all +.PHONY : examples/simple/all + +# Recursive "preinstall" directory target. +examples/simple/preinstall: +.PHONY : examples/simple/preinstall + +# Recursive "clean" directory target. +examples/simple/clean: examples/simple/CMakeFiles/llama-simple.dir/clean +.PHONY : examples/simple/clean + +#============================================================================= +# Directory level rules for directory examples/simple-chat + +# Recursive "all" directory target. +examples/simple-chat/all: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all +.PHONY : examples/simple-chat/all + +# Recursive "preinstall" directory target. +examples/simple-chat/preinstall: +.PHONY : examples/simple-chat/preinstall + +# Recursive "clean" directory target. +examples/simple-chat/clean: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/clean +.PHONY : examples/simple-chat/clean + +#============================================================================= +# Directory level rules for directory examples/speculative + +# Recursive "all" directory target. +examples/speculative/all: examples/speculative/CMakeFiles/llama-speculative.dir/all +.PHONY : examples/speculative/all + +# Recursive "preinstall" directory target. +examples/speculative/preinstall: +.PHONY : examples/speculative/preinstall + +# Recursive "clean" directory target. +examples/speculative/clean: examples/speculative/CMakeFiles/llama-speculative.dir/clean +.PHONY : examples/speculative/clean + +#============================================================================= +# Directory level rules for directory examples/speculative-simple + +# Recursive "all" directory target. +examples/speculative-simple/all: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all +.PHONY : examples/speculative-simple/all + +# Recursive "preinstall" directory target. +examples/speculative-simple/preinstall: +.PHONY : examples/speculative-simple/preinstall + +# Recursive "clean" directory target. +examples/speculative-simple/clean: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/clean +.PHONY : examples/speculative-simple/clean + +#============================================================================= +# Directory level rules for directory examples/tokenize + +# Recursive "all" directory target. +examples/tokenize/all: examples/tokenize/CMakeFiles/llama-tokenize.dir/all +.PHONY : examples/tokenize/all + +# Recursive "preinstall" directory target. +examples/tokenize/preinstall: +.PHONY : examples/tokenize/preinstall + +# Recursive "clean" directory target. +examples/tokenize/clean: examples/tokenize/CMakeFiles/llama-tokenize.dir/clean +.PHONY : examples/tokenize/clean + +#============================================================================= +# Directory level rules for directory ggml + +# Recursive "all" directory target. +ggml/all: ggml/src/all +.PHONY : ggml/all + +# Recursive "preinstall" directory target. +ggml/preinstall: ggml/src/preinstall +.PHONY : ggml/preinstall + +# Recursive "clean" directory target. +ggml/clean: ggml/src/clean +.PHONY : ggml/clean + +#============================================================================= +# Directory level rules for directory ggml/src + +# Recursive "all" directory target. +ggml/src/all: ggml/src/CMakeFiles/ggml-base.dir/all +ggml/src/all: ggml/src/CMakeFiles/ggml.dir/all +ggml/src/all: ggml/src/ggml-cpu/all +.PHONY : ggml/src/all + +# Recursive "preinstall" directory target. +ggml/src/preinstall: ggml/src/ggml-cpu/preinstall +.PHONY : ggml/src/preinstall + +# Recursive "clean" directory target. +ggml/src/clean: ggml/src/CMakeFiles/ggml-base.dir/clean +ggml/src/clean: ggml/src/CMakeFiles/ggml.dir/clean +ggml/src/clean: ggml/src/ggml-cpu/clean +.PHONY : ggml/src/clean + +#============================================================================= +# Directory level rules for directory ggml/src/ggml-cpu + +# Recursive "all" directory target. +ggml/src/ggml-cpu/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +.PHONY : ggml/src/ggml-cpu/all + +# Recursive "preinstall" directory target. +ggml/src/ggml-cpu/preinstall: +.PHONY : ggml/src/ggml-cpu/preinstall + +# Recursive "clean" directory target. +ggml/src/ggml-cpu/clean: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/clean +.PHONY : ggml/src/ggml-cpu/clean + +#============================================================================= +# Directory level rules for directory pocs + +# Recursive "all" directory target. +pocs/all: pocs/vdot/all +.PHONY : pocs/all + +# Recursive "preinstall" directory target. +pocs/preinstall: pocs/vdot/preinstall +.PHONY : pocs/preinstall + +# Recursive "clean" directory target. +pocs/clean: pocs/vdot/clean +.PHONY : pocs/clean + +#============================================================================= +# Directory level rules for directory pocs/vdot + +# Recursive "all" directory target. +pocs/vdot/all: pocs/vdot/CMakeFiles/llama-vdot.dir/all +pocs/vdot/all: pocs/vdot/CMakeFiles/llama-q8dot.dir/all +.PHONY : pocs/vdot/all + +# Recursive "preinstall" directory target. +pocs/vdot/preinstall: +.PHONY : pocs/vdot/preinstall + +# Recursive "clean" directory target. +pocs/vdot/clean: pocs/vdot/CMakeFiles/llama-vdot.dir/clean +pocs/vdot/clean: pocs/vdot/CMakeFiles/llama-q8dot.dir/clean +.PHONY : pocs/vdot/clean + +#============================================================================= +# Directory level rules for directory src + +# Recursive "all" directory target. +src/all: src/CMakeFiles/llama.dir/all +.PHONY : src/all + +# Recursive "preinstall" directory target. +src/preinstall: +.PHONY : src/preinstall + +# Recursive "clean" directory target. +src/clean: src/CMakeFiles/llama.dir/clean +.PHONY : src/clean + +#============================================================================= +# Directory level rules for directory tests + +# Recursive "all" directory target. +tests/all: tests/CMakeFiles/test-tokenizer-0.dir/all +tests/all: tests/CMakeFiles/test-tokenizer-1-bpe.dir/all +tests/all: tests/CMakeFiles/test-tokenizer-1-spm.dir/all +tests/all: tests/CMakeFiles/test-log.dir/all +tests/all: tests/CMakeFiles/test-arg-parser.dir/all +tests/all: tests/CMakeFiles/test-sampling.dir/all +tests/all: tests/CMakeFiles/test-chat-template.dir/all +tests/all: tests/CMakeFiles/test-grammar-parser.dir/all +tests/all: tests/CMakeFiles/test-grammar-integration.dir/all +tests/all: tests/CMakeFiles/test-llama-grammar.dir/all +tests/all: tests/CMakeFiles/test-backend-ops.dir/all +tests/all: tests/CMakeFiles/test-model-load-cancel.dir/all +tests/all: tests/CMakeFiles/test-autorelease.dir/all +tests/all: tests/CMakeFiles/test-barrier.dir/all +tests/all: tests/CMakeFiles/test-quantize-fns.dir/all +tests/all: tests/CMakeFiles/test-quantize-perf.dir/all +tests/all: tests/CMakeFiles/test-rope.dir/all +tests/all: tests/CMakeFiles/test-json-schema-to-grammar.dir/all +tests/all: tests/CMakeFiles/test-c.dir/all +.PHONY : tests/all + +# Recursive "preinstall" directory target. +tests/preinstall: +.PHONY : tests/preinstall + +# Recursive "clean" directory target. +tests/clean: tests/CMakeFiles/test-tokenizer-0.dir/clean +tests/clean: tests/CMakeFiles/test-tokenizer-1-bpe.dir/clean +tests/clean: tests/CMakeFiles/test-tokenizer-1-spm.dir/clean +tests/clean: tests/CMakeFiles/test-log.dir/clean +tests/clean: tests/CMakeFiles/test-arg-parser.dir/clean +tests/clean: tests/CMakeFiles/test-sampling.dir/clean +tests/clean: tests/CMakeFiles/test-chat-template.dir/clean +tests/clean: tests/CMakeFiles/test-grammar-parser.dir/clean +tests/clean: tests/CMakeFiles/test-grammar-integration.dir/clean +tests/clean: tests/CMakeFiles/test-llama-grammar.dir/clean +tests/clean: tests/CMakeFiles/test-backend-ops.dir/clean +tests/clean: tests/CMakeFiles/test-model-load-cancel.dir/clean +tests/clean: tests/CMakeFiles/test-autorelease.dir/clean +tests/clean: tests/CMakeFiles/test-barrier.dir/clean +tests/clean: tests/CMakeFiles/test-quantize-fns.dir/clean +tests/clean: tests/CMakeFiles/test-quantize-perf.dir/clean +tests/clean: tests/CMakeFiles/test-rope.dir/clean +tests/clean: tests/CMakeFiles/test-json-schema-to-grammar.dir/clean +tests/clean: tests/CMakeFiles/test-c.dir/clean +.PHONY : tests/clean + +#============================================================================= +# Target rules for target CMakeFiles/Experimental.dir + +# All Build rule for target. +CMakeFiles/Experimental.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Experimental.dir/build.make CMakeFiles/Experimental.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/Experimental.dir/build.make CMakeFiles/Experimental.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target Experimental" +.PHONY : CMakeFiles/Experimental.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/Experimental.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/Experimental.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/Experimental.dir/rule + +# Convenience name for target. +Experimental: CMakeFiles/Experimental.dir/rule +.PHONY : Experimental + +# clean rule for target. +CMakeFiles/Experimental.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Experimental.dir/build.make CMakeFiles/Experimental.dir/clean +.PHONY : CMakeFiles/Experimental.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/Nightly.dir + +# All Build rule for target. +CMakeFiles/Nightly.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Nightly.dir/build.make CMakeFiles/Nightly.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/Nightly.dir/build.make CMakeFiles/Nightly.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target Nightly" +.PHONY : CMakeFiles/Nightly.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/Nightly.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/Nightly.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/Nightly.dir/rule + +# Convenience name for target. +Nightly: CMakeFiles/Nightly.dir/rule +.PHONY : Nightly + +# clean rule for target. +CMakeFiles/Nightly.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Nightly.dir/build.make CMakeFiles/Nightly.dir/clean +.PHONY : CMakeFiles/Nightly.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/Continuous.dir + +# All Build rule for target. +CMakeFiles/Continuous.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Continuous.dir/build.make CMakeFiles/Continuous.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/Continuous.dir/build.make CMakeFiles/Continuous.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target Continuous" +.PHONY : CMakeFiles/Continuous.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/Continuous.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/Continuous.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/Continuous.dir/rule + +# Convenience name for target. +Continuous: CMakeFiles/Continuous.dir/rule +.PHONY : Continuous + +# clean rule for target. +CMakeFiles/Continuous.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Continuous.dir/build.make CMakeFiles/Continuous.dir/clean +.PHONY : CMakeFiles/Continuous.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyMemoryCheck.dir + +# All Build rule for target. +CMakeFiles/NightlyMemoryCheck.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemoryCheck.dir/build.make CMakeFiles/NightlyMemoryCheck.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemoryCheck.dir/build.make CMakeFiles/NightlyMemoryCheck.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyMemoryCheck" +.PHONY : CMakeFiles/NightlyMemoryCheck.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyMemoryCheck.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyMemoryCheck.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyMemoryCheck.dir/rule + +# Convenience name for target. +NightlyMemoryCheck: CMakeFiles/NightlyMemoryCheck.dir/rule +.PHONY : NightlyMemoryCheck + +# clean rule for target. +CMakeFiles/NightlyMemoryCheck.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemoryCheck.dir/build.make CMakeFiles/NightlyMemoryCheck.dir/clean +.PHONY : CMakeFiles/NightlyMemoryCheck.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyStart.dir + +# All Build rule for target. +CMakeFiles/NightlyStart.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyStart.dir/build.make CMakeFiles/NightlyStart.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyStart.dir/build.make CMakeFiles/NightlyStart.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyStart" +.PHONY : CMakeFiles/NightlyStart.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyStart.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyStart.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyStart.dir/rule + +# Convenience name for target. +NightlyStart: CMakeFiles/NightlyStart.dir/rule +.PHONY : NightlyStart + +# clean rule for target. +CMakeFiles/NightlyStart.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyStart.dir/build.make CMakeFiles/NightlyStart.dir/clean +.PHONY : CMakeFiles/NightlyStart.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyUpdate.dir + +# All Build rule for target. +CMakeFiles/NightlyUpdate.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyUpdate.dir/build.make CMakeFiles/NightlyUpdate.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyUpdate.dir/build.make CMakeFiles/NightlyUpdate.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyUpdate" +.PHONY : CMakeFiles/NightlyUpdate.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyUpdate.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyUpdate.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyUpdate.dir/rule + +# Convenience name for target. +NightlyUpdate: CMakeFiles/NightlyUpdate.dir/rule +.PHONY : NightlyUpdate + +# clean rule for target. +CMakeFiles/NightlyUpdate.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyUpdate.dir/build.make CMakeFiles/NightlyUpdate.dir/clean +.PHONY : CMakeFiles/NightlyUpdate.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyConfigure.dir + +# All Build rule for target. +CMakeFiles/NightlyConfigure.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyConfigure.dir/build.make CMakeFiles/NightlyConfigure.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyConfigure.dir/build.make CMakeFiles/NightlyConfigure.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyConfigure" +.PHONY : CMakeFiles/NightlyConfigure.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyConfigure.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyConfigure.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyConfigure.dir/rule + +# Convenience name for target. +NightlyConfigure: CMakeFiles/NightlyConfigure.dir/rule +.PHONY : NightlyConfigure + +# clean rule for target. +CMakeFiles/NightlyConfigure.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyConfigure.dir/build.make CMakeFiles/NightlyConfigure.dir/clean +.PHONY : CMakeFiles/NightlyConfigure.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyBuild.dir + +# All Build rule for target. +CMakeFiles/NightlyBuild.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyBuild.dir/build.make CMakeFiles/NightlyBuild.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyBuild.dir/build.make CMakeFiles/NightlyBuild.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyBuild" +.PHONY : CMakeFiles/NightlyBuild.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyBuild.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyBuild.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyBuild.dir/rule + +# Convenience name for target. +NightlyBuild: CMakeFiles/NightlyBuild.dir/rule +.PHONY : NightlyBuild + +# clean rule for target. +CMakeFiles/NightlyBuild.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyBuild.dir/build.make CMakeFiles/NightlyBuild.dir/clean +.PHONY : CMakeFiles/NightlyBuild.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyTest.dir + +# All Build rule for target. +CMakeFiles/NightlyTest.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyTest.dir/build.make CMakeFiles/NightlyTest.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyTest.dir/build.make CMakeFiles/NightlyTest.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyTest" +.PHONY : CMakeFiles/NightlyTest.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyTest.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyTest.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyTest.dir/rule + +# Convenience name for target. +NightlyTest: CMakeFiles/NightlyTest.dir/rule +.PHONY : NightlyTest + +# clean rule for target. +CMakeFiles/NightlyTest.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyTest.dir/build.make CMakeFiles/NightlyTest.dir/clean +.PHONY : CMakeFiles/NightlyTest.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyCoverage.dir + +# All Build rule for target. +CMakeFiles/NightlyCoverage.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyCoverage.dir/build.make CMakeFiles/NightlyCoverage.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyCoverage.dir/build.make CMakeFiles/NightlyCoverage.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyCoverage" +.PHONY : CMakeFiles/NightlyCoverage.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyCoverage.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyCoverage.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyCoverage.dir/rule + +# Convenience name for target. +NightlyCoverage: CMakeFiles/NightlyCoverage.dir/rule +.PHONY : NightlyCoverage + +# clean rule for target. +CMakeFiles/NightlyCoverage.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyCoverage.dir/build.make CMakeFiles/NightlyCoverage.dir/clean +.PHONY : CMakeFiles/NightlyCoverage.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlyMemCheck.dir + +# All Build rule for target. +CMakeFiles/NightlyMemCheck.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemCheck.dir/build.make CMakeFiles/NightlyMemCheck.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemCheck.dir/build.make CMakeFiles/NightlyMemCheck.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlyMemCheck" +.PHONY : CMakeFiles/NightlyMemCheck.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlyMemCheck.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlyMemCheck.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlyMemCheck.dir/rule + +# Convenience name for target. +NightlyMemCheck: CMakeFiles/NightlyMemCheck.dir/rule +.PHONY : NightlyMemCheck + +# clean rule for target. +CMakeFiles/NightlyMemCheck.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemCheck.dir/build.make CMakeFiles/NightlyMemCheck.dir/clean +.PHONY : CMakeFiles/NightlyMemCheck.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/NightlySubmit.dir + +# All Build rule for target. +CMakeFiles/NightlySubmit.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlySubmit.dir/build.make CMakeFiles/NightlySubmit.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlySubmit.dir/build.make CMakeFiles/NightlySubmit.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target NightlySubmit" +.PHONY : CMakeFiles/NightlySubmit.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/NightlySubmit.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/NightlySubmit.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/NightlySubmit.dir/rule + +# Convenience name for target. +NightlySubmit: CMakeFiles/NightlySubmit.dir/rule +.PHONY : NightlySubmit + +# clean rule for target. +CMakeFiles/NightlySubmit.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlySubmit.dir/build.make CMakeFiles/NightlySubmit.dir/clean +.PHONY : CMakeFiles/NightlySubmit.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalStart.dir + +# All Build rule for target. +CMakeFiles/ExperimentalStart.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalStart.dir/build.make CMakeFiles/ExperimentalStart.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalStart.dir/build.make CMakeFiles/ExperimentalStart.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalStart" +.PHONY : CMakeFiles/ExperimentalStart.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalStart.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalStart.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalStart.dir/rule + +# Convenience name for target. +ExperimentalStart: CMakeFiles/ExperimentalStart.dir/rule +.PHONY : ExperimentalStart + +# clean rule for target. +CMakeFiles/ExperimentalStart.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalStart.dir/build.make CMakeFiles/ExperimentalStart.dir/clean +.PHONY : CMakeFiles/ExperimentalStart.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalUpdate.dir + +# All Build rule for target. +CMakeFiles/ExperimentalUpdate.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalUpdate.dir/build.make CMakeFiles/ExperimentalUpdate.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalUpdate.dir/build.make CMakeFiles/ExperimentalUpdate.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalUpdate" +.PHONY : CMakeFiles/ExperimentalUpdate.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalUpdate.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalUpdate.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalUpdate.dir/rule + +# Convenience name for target. +ExperimentalUpdate: CMakeFiles/ExperimentalUpdate.dir/rule +.PHONY : ExperimentalUpdate + +# clean rule for target. +CMakeFiles/ExperimentalUpdate.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalUpdate.dir/build.make CMakeFiles/ExperimentalUpdate.dir/clean +.PHONY : CMakeFiles/ExperimentalUpdate.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalConfigure.dir + +# All Build rule for target. +CMakeFiles/ExperimentalConfigure.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalConfigure.dir/build.make CMakeFiles/ExperimentalConfigure.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalConfigure.dir/build.make CMakeFiles/ExperimentalConfigure.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalConfigure" +.PHONY : CMakeFiles/ExperimentalConfigure.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalConfigure.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalConfigure.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalConfigure.dir/rule + +# Convenience name for target. +ExperimentalConfigure: CMakeFiles/ExperimentalConfigure.dir/rule +.PHONY : ExperimentalConfigure + +# clean rule for target. +CMakeFiles/ExperimentalConfigure.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalConfigure.dir/build.make CMakeFiles/ExperimentalConfigure.dir/clean +.PHONY : CMakeFiles/ExperimentalConfigure.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalBuild.dir + +# All Build rule for target. +CMakeFiles/ExperimentalBuild.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalBuild.dir/build.make CMakeFiles/ExperimentalBuild.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalBuild.dir/build.make CMakeFiles/ExperimentalBuild.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalBuild" +.PHONY : CMakeFiles/ExperimentalBuild.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalBuild.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalBuild.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalBuild.dir/rule + +# Convenience name for target. +ExperimentalBuild: CMakeFiles/ExperimentalBuild.dir/rule +.PHONY : ExperimentalBuild + +# clean rule for target. +CMakeFiles/ExperimentalBuild.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalBuild.dir/build.make CMakeFiles/ExperimentalBuild.dir/clean +.PHONY : CMakeFiles/ExperimentalBuild.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalTest.dir + +# All Build rule for target. +CMakeFiles/ExperimentalTest.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalTest.dir/build.make CMakeFiles/ExperimentalTest.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalTest.dir/build.make CMakeFiles/ExperimentalTest.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalTest" +.PHONY : CMakeFiles/ExperimentalTest.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalTest.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalTest.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalTest.dir/rule + +# Convenience name for target. +ExperimentalTest: CMakeFiles/ExperimentalTest.dir/rule +.PHONY : ExperimentalTest + +# clean rule for target. +CMakeFiles/ExperimentalTest.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalTest.dir/build.make CMakeFiles/ExperimentalTest.dir/clean +.PHONY : CMakeFiles/ExperimentalTest.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalCoverage.dir + +# All Build rule for target. +CMakeFiles/ExperimentalCoverage.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalCoverage.dir/build.make CMakeFiles/ExperimentalCoverage.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalCoverage.dir/build.make CMakeFiles/ExperimentalCoverage.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalCoverage" +.PHONY : CMakeFiles/ExperimentalCoverage.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalCoverage.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalCoverage.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalCoverage.dir/rule + +# Convenience name for target. +ExperimentalCoverage: CMakeFiles/ExperimentalCoverage.dir/rule +.PHONY : ExperimentalCoverage + +# clean rule for target. +CMakeFiles/ExperimentalCoverage.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalCoverage.dir/build.make CMakeFiles/ExperimentalCoverage.dir/clean +.PHONY : CMakeFiles/ExperimentalCoverage.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalMemCheck.dir + +# All Build rule for target. +CMakeFiles/ExperimentalMemCheck.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalMemCheck.dir/build.make CMakeFiles/ExperimentalMemCheck.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalMemCheck.dir/build.make CMakeFiles/ExperimentalMemCheck.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalMemCheck" +.PHONY : CMakeFiles/ExperimentalMemCheck.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalMemCheck.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalMemCheck.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalMemCheck.dir/rule + +# Convenience name for target. +ExperimentalMemCheck: CMakeFiles/ExperimentalMemCheck.dir/rule +.PHONY : ExperimentalMemCheck + +# clean rule for target. +CMakeFiles/ExperimentalMemCheck.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalMemCheck.dir/build.make CMakeFiles/ExperimentalMemCheck.dir/clean +.PHONY : CMakeFiles/ExperimentalMemCheck.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ExperimentalSubmit.dir + +# All Build rule for target. +CMakeFiles/ExperimentalSubmit.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalSubmit.dir/build.make CMakeFiles/ExperimentalSubmit.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalSubmit.dir/build.make CMakeFiles/ExperimentalSubmit.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ExperimentalSubmit" +.PHONY : CMakeFiles/ExperimentalSubmit.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ExperimentalSubmit.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ExperimentalSubmit.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ExperimentalSubmit.dir/rule + +# Convenience name for target. +ExperimentalSubmit: CMakeFiles/ExperimentalSubmit.dir/rule +.PHONY : ExperimentalSubmit + +# clean rule for target. +CMakeFiles/ExperimentalSubmit.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalSubmit.dir/build.make CMakeFiles/ExperimentalSubmit.dir/clean +.PHONY : CMakeFiles/ExperimentalSubmit.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousStart.dir + +# All Build rule for target. +CMakeFiles/ContinuousStart.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousStart.dir/build.make CMakeFiles/ContinuousStart.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousStart.dir/build.make CMakeFiles/ContinuousStart.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousStart" +.PHONY : CMakeFiles/ContinuousStart.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousStart.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousStart.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousStart.dir/rule + +# Convenience name for target. +ContinuousStart: CMakeFiles/ContinuousStart.dir/rule +.PHONY : ContinuousStart + +# clean rule for target. +CMakeFiles/ContinuousStart.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousStart.dir/build.make CMakeFiles/ContinuousStart.dir/clean +.PHONY : CMakeFiles/ContinuousStart.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousUpdate.dir + +# All Build rule for target. +CMakeFiles/ContinuousUpdate.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousUpdate.dir/build.make CMakeFiles/ContinuousUpdate.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousUpdate.dir/build.make CMakeFiles/ContinuousUpdate.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousUpdate" +.PHONY : CMakeFiles/ContinuousUpdate.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousUpdate.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousUpdate.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousUpdate.dir/rule + +# Convenience name for target. +ContinuousUpdate: CMakeFiles/ContinuousUpdate.dir/rule +.PHONY : ContinuousUpdate + +# clean rule for target. +CMakeFiles/ContinuousUpdate.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousUpdate.dir/build.make CMakeFiles/ContinuousUpdate.dir/clean +.PHONY : CMakeFiles/ContinuousUpdate.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousConfigure.dir + +# All Build rule for target. +CMakeFiles/ContinuousConfigure.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousConfigure.dir/build.make CMakeFiles/ContinuousConfigure.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousConfigure.dir/build.make CMakeFiles/ContinuousConfigure.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousConfigure" +.PHONY : CMakeFiles/ContinuousConfigure.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousConfigure.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousConfigure.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousConfigure.dir/rule + +# Convenience name for target. +ContinuousConfigure: CMakeFiles/ContinuousConfigure.dir/rule +.PHONY : ContinuousConfigure + +# clean rule for target. +CMakeFiles/ContinuousConfigure.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousConfigure.dir/build.make CMakeFiles/ContinuousConfigure.dir/clean +.PHONY : CMakeFiles/ContinuousConfigure.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousBuild.dir + +# All Build rule for target. +CMakeFiles/ContinuousBuild.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousBuild.dir/build.make CMakeFiles/ContinuousBuild.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousBuild.dir/build.make CMakeFiles/ContinuousBuild.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousBuild" +.PHONY : CMakeFiles/ContinuousBuild.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousBuild.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousBuild.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousBuild.dir/rule + +# Convenience name for target. +ContinuousBuild: CMakeFiles/ContinuousBuild.dir/rule +.PHONY : ContinuousBuild + +# clean rule for target. +CMakeFiles/ContinuousBuild.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousBuild.dir/build.make CMakeFiles/ContinuousBuild.dir/clean +.PHONY : CMakeFiles/ContinuousBuild.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousTest.dir + +# All Build rule for target. +CMakeFiles/ContinuousTest.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousTest.dir/build.make CMakeFiles/ContinuousTest.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousTest.dir/build.make CMakeFiles/ContinuousTest.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousTest" +.PHONY : CMakeFiles/ContinuousTest.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousTest.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousTest.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousTest.dir/rule + +# Convenience name for target. +ContinuousTest: CMakeFiles/ContinuousTest.dir/rule +.PHONY : ContinuousTest + +# clean rule for target. +CMakeFiles/ContinuousTest.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousTest.dir/build.make CMakeFiles/ContinuousTest.dir/clean +.PHONY : CMakeFiles/ContinuousTest.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousCoverage.dir + +# All Build rule for target. +CMakeFiles/ContinuousCoverage.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousCoverage.dir/build.make CMakeFiles/ContinuousCoverage.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousCoverage.dir/build.make CMakeFiles/ContinuousCoverage.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousCoverage" +.PHONY : CMakeFiles/ContinuousCoverage.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousCoverage.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousCoverage.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousCoverage.dir/rule + +# Convenience name for target. +ContinuousCoverage: CMakeFiles/ContinuousCoverage.dir/rule +.PHONY : ContinuousCoverage + +# clean rule for target. +CMakeFiles/ContinuousCoverage.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousCoverage.dir/build.make CMakeFiles/ContinuousCoverage.dir/clean +.PHONY : CMakeFiles/ContinuousCoverage.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousMemCheck.dir + +# All Build rule for target. +CMakeFiles/ContinuousMemCheck.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousMemCheck.dir/build.make CMakeFiles/ContinuousMemCheck.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousMemCheck.dir/build.make CMakeFiles/ContinuousMemCheck.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousMemCheck" +.PHONY : CMakeFiles/ContinuousMemCheck.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousMemCheck.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousMemCheck.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousMemCheck.dir/rule + +# Convenience name for target. +ContinuousMemCheck: CMakeFiles/ContinuousMemCheck.dir/rule +.PHONY : ContinuousMemCheck + +# clean rule for target. +CMakeFiles/ContinuousMemCheck.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousMemCheck.dir/build.make CMakeFiles/ContinuousMemCheck.dir/clean +.PHONY : CMakeFiles/ContinuousMemCheck.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/ContinuousSubmit.dir + +# All Build rule for target. +CMakeFiles/ContinuousSubmit.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousSubmit.dir/build.make CMakeFiles/ContinuousSubmit.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousSubmit.dir/build.make CMakeFiles/ContinuousSubmit.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target ContinuousSubmit" +.PHONY : CMakeFiles/ContinuousSubmit.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/ContinuousSubmit.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ContinuousSubmit.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : CMakeFiles/ContinuousSubmit.dir/rule + +# Convenience name for target. +ContinuousSubmit: CMakeFiles/ContinuousSubmit.dir/rule +.PHONY : ContinuousSubmit + +# clean rule for target. +CMakeFiles/ContinuousSubmit.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousSubmit.dir/build.make CMakeFiles/ContinuousSubmit.dir/clean +.PHONY : CMakeFiles/ContinuousSubmit.dir/clean + +#============================================================================= +# Target rules for target ggml/src/CMakeFiles/ggml-base.dir + +# All Build rule for target. +ggml/src/CMakeFiles/ggml-base.dir/all: + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/depend + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=8,9,10,11 "Built target ggml-base" +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/all + +# Build rule for subdir invocation for target. +ggml/src/CMakeFiles/ggml-base.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 4 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/CMakeFiles/ggml-base.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/rule + +# Convenience name for target. +ggml-base: ggml/src/CMakeFiles/ggml-base.dir/rule +.PHONY : ggml-base + +# clean rule for target. +ggml/src/CMakeFiles/ggml-base.dir/clean: + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/clean +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/clean + +#============================================================================= +# Target rules for target ggml/src/CMakeFiles/ggml.dir + +# All Build rule for target. +ggml/src/CMakeFiles/ggml.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +ggml/src/CMakeFiles/ggml.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/depend + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=7 "Built target ggml" +.PHONY : ggml/src/CMakeFiles/ggml.dir/all + +# Build rule for subdir invocation for target. +ggml/src/CMakeFiles/ggml.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 10 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/CMakeFiles/ggml.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : ggml/src/CMakeFiles/ggml.dir/rule + +# Convenience name for target. +ggml: ggml/src/CMakeFiles/ggml.dir/rule +.PHONY : ggml + +# clean rule for target. +ggml/src/CMakeFiles/ggml.dir/clean: + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/clean +.PHONY : ggml/src/CMakeFiles/ggml.dir/clean + +#============================================================================= +# Target rules for target ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir + +# All Build rule for target. +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all + $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend + $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=12,13,14,15,16 "Built target ggml-cpu" +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all + +# Build rule for subdir invocation for target. +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 9 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule + +# Convenience name for target. +ggml-cpu: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule +.PHONY : ggml-cpu + +# clean rule for target. +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/clean: + $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/clean +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/clean + +#============================================================================= +# Target rules for target src/CMakeFiles/llama.dir + +# All Build rule for target. +src/CMakeFiles/llama.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +src/CMakeFiles/llama.dir/all: ggml/src/CMakeFiles/ggml.dir/all +src/CMakeFiles/llama.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all + $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/depend + $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=17,18,19,20 "Built target llama" +.PHONY : src/CMakeFiles/llama.dir/all + +# Build rule for subdir invocation for target. +src/CMakeFiles/llama.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 14 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/CMakeFiles/llama.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : src/CMakeFiles/llama.dir/rule + +# Convenience name for target. +llama: src/CMakeFiles/llama.dir/rule +.PHONY : llama + +# clean rule for target. +src/CMakeFiles/llama.dir/clean: + $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/clean +.PHONY : src/CMakeFiles/llama.dir/clean + +#============================================================================= +# Target rules for target common/CMakeFiles/build_info.dir + +# All Build rule for target. +common/CMakeFiles/build_info.dir/all: + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/depend + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=1 "Built target build_info" +.PHONY : common/CMakeFiles/build_info.dir/all + +# Build rule for subdir invocation for target. +common/CMakeFiles/build_info.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/CMakeFiles/build_info.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : common/CMakeFiles/build_info.dir/rule + +# Convenience name for target. +build_info: common/CMakeFiles/build_info.dir/rule +.PHONY : build_info + +# clean rule for target. +common/CMakeFiles/build_info.dir/clean: + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/clean +.PHONY : common/CMakeFiles/build_info.dir/clean + +#============================================================================= +# Target rules for target common/CMakeFiles/common.dir + +# All Build rule for target. +common/CMakeFiles/common.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +common/CMakeFiles/common.dir/all: ggml/src/CMakeFiles/ggml.dir/all +common/CMakeFiles/common.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +common/CMakeFiles/common.dir/all: src/CMakeFiles/llama.dir/all +common/CMakeFiles/common.dir/all: common/CMakeFiles/build_info.dir/all + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/depend + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=2,3,4,5,6 "Built target common" +.PHONY : common/CMakeFiles/common.dir/all + +# Build rule for subdir invocation for target. +common/CMakeFiles/common.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 20 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/CMakeFiles/common.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : common/CMakeFiles/common.dir/rule + +# Convenience name for target. +common: common/CMakeFiles/common.dir/rule +.PHONY : common + +# clean rule for target. +common/CMakeFiles/common.dir/clean: + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/clean +.PHONY : common/CMakeFiles/common.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-tokenizer-0.dir + +# All Build rule for target. +tests/CMakeFiles/test-tokenizer-0.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-tokenizer-0.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-tokenizer-0.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-tokenizer-0.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-tokenizer-0.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-tokenizer-0.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=97 "Built target test-tokenizer-0" +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-tokenizer-0.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-tokenizer-0.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/rule + +# Convenience name for target. +test-tokenizer-0: tests/CMakeFiles/test-tokenizer-0.dir/rule +.PHONY : test-tokenizer-0 + +# clean rule for target. +tests/CMakeFiles/test-tokenizer-0.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/clean +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-tokenizer-1-bpe.dir + +# All Build rule for target. +tests/CMakeFiles/test-tokenizer-1-bpe.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-tokenizer-1-bpe.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-tokenizer-1-bpe.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-tokenizer-1-bpe.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-tokenizer-1-bpe.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-tokenizer-1-bpe.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=98 "Built target test-tokenizer-1-bpe" +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-tokenizer-1-bpe.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule + +# Convenience name for target. +test-tokenizer-1-bpe: tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule +.PHONY : test-tokenizer-1-bpe + +# clean rule for target. +tests/CMakeFiles/test-tokenizer-1-bpe.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/clean +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-tokenizer-1-spm.dir + +# All Build rule for target. +tests/CMakeFiles/test-tokenizer-1-spm.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-tokenizer-1-spm.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-tokenizer-1-spm.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-tokenizer-1-spm.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-tokenizer-1-spm.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-tokenizer-1-spm.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=99 "Built target test-tokenizer-1-spm" +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-tokenizer-1-spm.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-tokenizer-1-spm.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/rule + +# Convenience name for target. +test-tokenizer-1-spm: tests/CMakeFiles/test-tokenizer-1-spm.dir/rule +.PHONY : test-tokenizer-1-spm + +# clean rule for target. +tests/CMakeFiles/test-tokenizer-1-spm.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/clean +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-log.dir + +# All Build rule for target. +tests/CMakeFiles/test-log.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-log.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-log.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-log.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-log.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-log.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=87 "Built target test-log" +.PHONY : tests/CMakeFiles/test-log.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-log.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-log.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-log.dir/rule + +# Convenience name for target. +test-log: tests/CMakeFiles/test-log.dir/rule +.PHONY : test-log + +# clean rule for target. +tests/CMakeFiles/test-log.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/clean +.PHONY : tests/CMakeFiles/test-log.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-arg-parser.dir + +# All Build rule for target. +tests/CMakeFiles/test-arg-parser.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-arg-parser.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-arg-parser.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-arg-parser.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-arg-parser.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-arg-parser.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=71 "Built target test-arg-parser" +.PHONY : tests/CMakeFiles/test-arg-parser.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-arg-parser.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-arg-parser.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-arg-parser.dir/rule + +# Convenience name for target. +test-arg-parser: tests/CMakeFiles/test-arg-parser.dir/rule +.PHONY : test-arg-parser + +# clean rule for target. +tests/CMakeFiles/test-arg-parser.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/clean +.PHONY : tests/CMakeFiles/test-arg-parser.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-sampling.dir + +# All Build rule for target. +tests/CMakeFiles/test-sampling.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-sampling.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-sampling.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-sampling.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-sampling.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-sampling.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=95,96 "Built target test-sampling" +.PHONY : tests/CMakeFiles/test-sampling.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-sampling.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-sampling.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-sampling.dir/rule + +# Convenience name for target. +test-sampling: tests/CMakeFiles/test-sampling.dir/rule +.PHONY : test-sampling + +# clean rule for target. +tests/CMakeFiles/test-sampling.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/clean +.PHONY : tests/CMakeFiles/test-sampling.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-chat-template.dir + +# All Build rule for target. +tests/CMakeFiles/test-chat-template.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-chat-template.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-chat-template.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-chat-template.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-chat-template.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-chat-template.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=79 "Built target test-chat-template" +.PHONY : tests/CMakeFiles/test-chat-template.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-chat-template.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-chat-template.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-chat-template.dir/rule + +# Convenience name for target. +test-chat-template: tests/CMakeFiles/test-chat-template.dir/rule +.PHONY : test-chat-template + +# clean rule for target. +tests/CMakeFiles/test-chat-template.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/clean +.PHONY : tests/CMakeFiles/test-chat-template.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-grammar-parser.dir + +# All Build rule for target. +tests/CMakeFiles/test-grammar-parser.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-grammar-parser.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-grammar-parser.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-grammar-parser.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-grammar-parser.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-grammar-parser.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=82 "Built target test-grammar-parser" +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-grammar-parser.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-grammar-parser.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/rule + +# Convenience name for target. +test-grammar-parser: tests/CMakeFiles/test-grammar-parser.dir/rule +.PHONY : test-grammar-parser + +# clean rule for target. +tests/CMakeFiles/test-grammar-parser.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/clean +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-grammar-integration.dir + +# All Build rule for target. +tests/CMakeFiles/test-grammar-integration.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-grammar-integration.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-grammar-integration.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-grammar-integration.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-grammar-integration.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-grammar-integration.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=80,81 "Built target test-grammar-integration" +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-grammar-integration.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-grammar-integration.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/rule + +# Convenience name for target. +test-grammar-integration: tests/CMakeFiles/test-grammar-integration.dir/rule +.PHONY : test-grammar-integration + +# clean rule for target. +tests/CMakeFiles/test-grammar-integration.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/clean +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-llama-grammar.dir + +# All Build rule for target. +tests/CMakeFiles/test-llama-grammar.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-llama-grammar.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-llama-grammar.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-llama-grammar.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-llama-grammar.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-llama-grammar.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=85,86 "Built target test-llama-grammar" +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-llama-grammar.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-llama-grammar.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/rule + +# Convenience name for target. +test-llama-grammar: tests/CMakeFiles/test-llama-grammar.dir/rule +.PHONY : test-llama-grammar + +# clean rule for target. +tests/CMakeFiles/test-llama-grammar.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/clean +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-backend-ops.dir + +# All Build rule for target. +tests/CMakeFiles/test-backend-ops.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-backend-ops.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-backend-ops.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-backend-ops.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-backend-ops.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-backend-ops.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=74,75 "Built target test-backend-ops" +.PHONY : tests/CMakeFiles/test-backend-ops.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-backend-ops.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-backend-ops.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-backend-ops.dir/rule + +# Convenience name for target. +test-backend-ops: tests/CMakeFiles/test-backend-ops.dir/rule +.PHONY : test-backend-ops + +# clean rule for target. +tests/CMakeFiles/test-backend-ops.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/clean +.PHONY : tests/CMakeFiles/test-backend-ops.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-model-load-cancel.dir + +# All Build rule for target. +tests/CMakeFiles/test-model-load-cancel.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-model-load-cancel.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-model-load-cancel.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-model-load-cancel.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-model-load-cancel.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-model-load-cancel.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=88,89 "Built target test-model-load-cancel" +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-model-load-cancel.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-model-load-cancel.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/rule + +# Convenience name for target. +test-model-load-cancel: tests/CMakeFiles/test-model-load-cancel.dir/rule +.PHONY : test-model-load-cancel + +# clean rule for target. +tests/CMakeFiles/test-model-load-cancel.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/clean +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-autorelease.dir + +# All Build rule for target. +tests/CMakeFiles/test-autorelease.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-autorelease.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-autorelease.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-autorelease.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-autorelease.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-autorelease.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=72,73 "Built target test-autorelease" +.PHONY : tests/CMakeFiles/test-autorelease.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-autorelease.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-autorelease.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-autorelease.dir/rule + +# Convenience name for target. +test-autorelease: tests/CMakeFiles/test-autorelease.dir/rule +.PHONY : test-autorelease + +# clean rule for target. +tests/CMakeFiles/test-autorelease.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/clean +.PHONY : tests/CMakeFiles/test-autorelease.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-barrier.dir + +# All Build rule for target. +tests/CMakeFiles/test-barrier.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-barrier.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-barrier.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-barrier.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-barrier.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-barrier.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=76 "Built target test-barrier" +.PHONY : tests/CMakeFiles/test-barrier.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-barrier.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-barrier.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-barrier.dir/rule + +# Convenience name for target. +test-barrier: tests/CMakeFiles/test-barrier.dir/rule +.PHONY : test-barrier + +# clean rule for target. +tests/CMakeFiles/test-barrier.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/clean +.PHONY : tests/CMakeFiles/test-barrier.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-quantize-fns.dir + +# All Build rule for target. +tests/CMakeFiles/test-quantize-fns.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-quantize-fns.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-quantize-fns.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-quantize-fns.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-quantize-fns.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-quantize-fns.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=90,91 "Built target test-quantize-fns" +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-quantize-fns.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-quantize-fns.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/rule + +# Convenience name for target. +test-quantize-fns: tests/CMakeFiles/test-quantize-fns.dir/rule +.PHONY : test-quantize-fns + +# clean rule for target. +tests/CMakeFiles/test-quantize-fns.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/clean +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-quantize-perf.dir + +# All Build rule for target. +tests/CMakeFiles/test-quantize-perf.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-quantize-perf.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-quantize-perf.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-quantize-perf.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-quantize-perf.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-quantize-perf.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=92 "Built target test-quantize-perf" +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-quantize-perf.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-quantize-perf.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/rule + +# Convenience name for target. +test-quantize-perf: tests/CMakeFiles/test-quantize-perf.dir/rule +.PHONY : test-quantize-perf + +# clean rule for target. +tests/CMakeFiles/test-quantize-perf.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/clean +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-rope.dir + +# All Build rule for target. +tests/CMakeFiles/test-rope.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-rope.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-rope.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-rope.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-rope.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-rope.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=93,94 "Built target test-rope" +.PHONY : tests/CMakeFiles/test-rope.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-rope.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-rope.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-rope.dir/rule + +# Convenience name for target. +test-rope: tests/CMakeFiles/test-rope.dir/rule +.PHONY : test-rope + +# clean rule for target. +tests/CMakeFiles/test-rope.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/clean +.PHONY : tests/CMakeFiles/test-rope.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-json-schema-to-grammar.dir + +# All Build rule for target. +tests/CMakeFiles/test-json-schema-to-grammar.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-json-schema-to-grammar.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-json-schema-to-grammar.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-json-schema-to-grammar.dir/all: src/CMakeFiles/llama.dir/all +tests/CMakeFiles/test-json-schema-to-grammar.dir/all: common/CMakeFiles/build_info.dir/all +tests/CMakeFiles/test-json-schema-to-grammar.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=83,84 "Built target test-json-schema-to-grammar" +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-json-schema-to-grammar.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-json-schema-to-grammar.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/rule + +# Convenience name for target. +test-json-schema-to-grammar: tests/CMakeFiles/test-json-schema-to-grammar.dir/rule +.PHONY : test-json-schema-to-grammar + +# clean rule for target. +tests/CMakeFiles/test-json-schema-to-grammar.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/clean +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/clean + +#============================================================================= +# Target rules for target tests/CMakeFiles/test-c.dir + +# All Build rule for target. +tests/CMakeFiles/test-c.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +tests/CMakeFiles/test-c.dir/all: ggml/src/CMakeFiles/ggml.dir/all +tests/CMakeFiles/test-c.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +tests/CMakeFiles/test-c.dir/all: src/CMakeFiles/llama.dir/all + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/depend + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=77,78 "Built target test-c" +.PHONY : tests/CMakeFiles/test-c.dir/all + +# Build rule for subdir invocation for target. +tests/CMakeFiles/test-c.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 16 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-c.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : tests/CMakeFiles/test-c.dir/rule + +# Convenience name for target. +test-c: tests/CMakeFiles/test-c.dir/rule +.PHONY : test-c + +# clean rule for target. +tests/CMakeFiles/test-c.dir/clean: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/clean +.PHONY : tests/CMakeFiles/test-c.dir/clean + +#============================================================================= +# Target rules for target examples/batched-bench/CMakeFiles/llama-batched-bench.dir + +# All Build rule for target. +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all: src/CMakeFiles/llama.dir/all +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all: common/CMakeFiles/build_info.dir/all +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend + $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=22 "Built target llama-batched-bench" +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all + +# Build rule for subdir invocation for target. +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched-bench/CMakeFiles/llama-batched-bench.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule + +# Convenience name for target. +llama-batched-bench: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule +.PHONY : llama-batched-bench + +# clean rule for target. +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/clean +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/clean + +#============================================================================= +# Target rules for target examples/batched/CMakeFiles/llama-batched.dir + +# All Build rule for target. +examples/batched/CMakeFiles/llama-batched.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/batched/CMakeFiles/llama-batched.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/batched/CMakeFiles/llama-batched.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/batched/CMakeFiles/llama-batched.dir/all: src/CMakeFiles/llama.dir/all +examples/batched/CMakeFiles/llama-batched.dir/all: common/CMakeFiles/build_info.dir/all +examples/batched/CMakeFiles/llama-batched.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/depend + $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=21 "Built target llama-batched" +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/all + +# Build rule for subdir invocation for target. +examples/batched/CMakeFiles/llama-batched.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched/CMakeFiles/llama-batched.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/rule + +# Convenience name for target. +llama-batched: examples/batched/CMakeFiles/llama-batched.dir/rule +.PHONY : llama-batched + +# clean rule for target. +examples/batched/CMakeFiles/llama-batched.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/clean +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/clean + +#============================================================================= +# Target rules for target examples/embedding/CMakeFiles/llama-embedding.dir + +# All Build rule for target. +examples/embedding/CMakeFiles/llama-embedding.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/embedding/CMakeFiles/llama-embedding.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/embedding/CMakeFiles/llama-embedding.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/embedding/CMakeFiles/llama-embedding.dir/all: src/CMakeFiles/llama.dir/all +examples/embedding/CMakeFiles/llama-embedding.dir/all: common/CMakeFiles/build_info.dir/all +examples/embedding/CMakeFiles/llama-embedding.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/depend + $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=27,28 "Built target llama-embedding" +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/all + +# Build rule for subdir invocation for target. +examples/embedding/CMakeFiles/llama-embedding.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/embedding/CMakeFiles/llama-embedding.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/rule + +# Convenience name for target. +llama-embedding: examples/embedding/CMakeFiles/llama-embedding.dir/rule +.PHONY : llama-embedding + +# clean rule for target. +examples/embedding/CMakeFiles/llama-embedding.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/clean +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/clean + +#============================================================================= +# Target rules for target examples/eval-callback/CMakeFiles/llama-eval-callback.dir + +# All Build rule for target. +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all: src/CMakeFiles/llama.dir/all +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all: common/CMakeFiles/build_info.dir/all +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend + $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=29 "Built target llama-eval-callback" +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all + +# Build rule for subdir invocation for target. +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/eval-callback/CMakeFiles/llama-eval-callback.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule + +# Convenience name for target. +llama-eval-callback: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule +.PHONY : llama-eval-callback + +# clean rule for target. +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/clean +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/clean + +#============================================================================= +# Target rules for target examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir + +# All Build rule for target. +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all: src/CMakeFiles/llama.dir/all +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all: common/CMakeFiles/build_info.dir/all +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=31 "Built target llama-gbnf-validator" +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all + +# Build rule for subdir invocation for target. +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule + +# Convenience name for target. +llama-gbnf-validator: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule +.PHONY : llama-gbnf-validator + +# clean rule for target. +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/clean +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/clean + +#============================================================================= +# Target rules for target examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir + +# All Build rule for target. +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all: examples/gguf-hash/CMakeFiles/xxhash.dir/all +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all: examples/gguf-hash/CMakeFiles/sha1.dir/all +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all: examples/gguf-hash/CMakeFiles/sha256.dir/all + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=33 "Built target llama-gguf-hash" +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all + +# Build rule for subdir invocation for target. +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 13 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule + +# Convenience name for target. +llama-gguf-hash: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule +.PHONY : llama-gguf-hash + +# clean rule for target. +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/clean +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/clean + +#============================================================================= +# Target rules for target examples/gguf-hash/CMakeFiles/xxhash.dir + +# All Build rule for target. +examples/gguf-hash/CMakeFiles/xxhash.dir/all: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=100 "Built target xxhash" +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/all + +# Build rule for subdir invocation for target. +examples/gguf-hash/CMakeFiles/xxhash.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/xxhash.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/rule + +# Convenience name for target. +xxhash: examples/gguf-hash/CMakeFiles/xxhash.dir/rule +.PHONY : xxhash + +# clean rule for target. +examples/gguf-hash/CMakeFiles/xxhash.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/clean +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/clean + +#============================================================================= +# Target rules for target examples/gguf-hash/CMakeFiles/sha1.dir + +# All Build rule for target. +examples/gguf-hash/CMakeFiles/sha1.dir/all: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target sha1" +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/all + +# Build rule for subdir invocation for target. +examples/gguf-hash/CMakeFiles/sha1.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/sha1.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/rule + +# Convenience name for target. +sha1: examples/gguf-hash/CMakeFiles/sha1.dir/rule +.PHONY : sha1 + +# clean rule for target. +examples/gguf-hash/CMakeFiles/sha1.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/clean +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/clean + +#============================================================================= +# Target rules for target examples/gguf-hash/CMakeFiles/sha256.dir + +# All Build rule for target. +examples/gguf-hash/CMakeFiles/sha256.dir/all: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=70 "Built target sha256" +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/all + +# Build rule for subdir invocation for target. +examples/gguf-hash/CMakeFiles/sha256.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/sha256.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/rule + +# Convenience name for target. +sha256: examples/gguf-hash/CMakeFiles/sha256.dir/rule +.PHONY : sha256 + +# clean rule for target. +examples/gguf-hash/CMakeFiles/sha256.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/clean +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/clean + +#============================================================================= +# Target rules for target examples/gguf-split/CMakeFiles/llama-gguf-split.dir + +# All Build rule for target. +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all: src/CMakeFiles/llama.dir/all +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all: common/CMakeFiles/build_info.dir/all +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=34 "Built target llama-gguf-split" +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all + +# Build rule for subdir invocation for target. +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-split/CMakeFiles/llama-gguf-split.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule + +# Convenience name for target. +llama-gguf-split: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule +.PHONY : llama-gguf-split + +# clean rule for target. +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/clean +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/clean + +#============================================================================= +# Target rules for target examples/gguf/CMakeFiles/llama-gguf.dir + +# All Build rule for target. +examples/gguf/CMakeFiles/llama-gguf.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/gguf/CMakeFiles/llama-gguf.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/gguf/CMakeFiles/llama-gguf.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all + $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=32 "Built target llama-gguf" +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/all + +# Build rule for subdir invocation for target. +examples/gguf/CMakeFiles/llama-gguf.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 11 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf/CMakeFiles/llama-gguf.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/rule + +# Convenience name for target. +llama-gguf: examples/gguf/CMakeFiles/llama-gguf.dir/rule +.PHONY : llama-gguf + +# clean rule for target. +examples/gguf/CMakeFiles/llama-gguf.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/clean +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/clean + +#============================================================================= +# Target rules for target examples/gritlm/CMakeFiles/llama-gritlm.dir + +# All Build rule for target. +examples/gritlm/CMakeFiles/llama-gritlm.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/gritlm/CMakeFiles/llama-gritlm.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/gritlm/CMakeFiles/llama-gritlm.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/gritlm/CMakeFiles/llama-gritlm.dir/all: src/CMakeFiles/llama.dir/all +examples/gritlm/CMakeFiles/llama-gritlm.dir/all: common/CMakeFiles/build_info.dir/all +examples/gritlm/CMakeFiles/llama-gritlm.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/depend + $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=35 "Built target llama-gritlm" +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/all + +# Build rule for subdir invocation for target. +examples/gritlm/CMakeFiles/llama-gritlm.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gritlm/CMakeFiles/llama-gritlm.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/rule + +# Convenience name for target. +llama-gritlm: examples/gritlm/CMakeFiles/llama-gritlm.dir/rule +.PHONY : llama-gritlm + +# clean rule for target. +examples/gritlm/CMakeFiles/llama-gritlm.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/clean +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/clean + +#============================================================================= +# Target rules for target examples/imatrix/CMakeFiles/llama-imatrix.dir + +# All Build rule for target. +examples/imatrix/CMakeFiles/llama-imatrix.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/imatrix/CMakeFiles/llama-imatrix.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/imatrix/CMakeFiles/llama-imatrix.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/imatrix/CMakeFiles/llama-imatrix.dir/all: src/CMakeFiles/llama.dir/all +examples/imatrix/CMakeFiles/llama-imatrix.dir/all: common/CMakeFiles/build_info.dir/all +examples/imatrix/CMakeFiles/llama-imatrix.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/depend + $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=36 "Built target llama-imatrix" +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/all + +# Build rule for subdir invocation for target. +examples/imatrix/CMakeFiles/llama-imatrix.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/imatrix/CMakeFiles/llama-imatrix.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/rule + +# Convenience name for target. +llama-imatrix: examples/imatrix/CMakeFiles/llama-imatrix.dir/rule +.PHONY : llama-imatrix + +# clean rule for target. +examples/imatrix/CMakeFiles/llama-imatrix.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/clean +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/clean + +#============================================================================= +# Target rules for target examples/infill/CMakeFiles/llama-infill.dir + +# All Build rule for target. +examples/infill/CMakeFiles/llama-infill.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/infill/CMakeFiles/llama-infill.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/infill/CMakeFiles/llama-infill.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/infill/CMakeFiles/llama-infill.dir/all: src/CMakeFiles/llama.dir/all +examples/infill/CMakeFiles/llama-infill.dir/all: common/CMakeFiles/build_info.dir/all +examples/infill/CMakeFiles/llama-infill.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/depend + $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=37 "Built target llama-infill" +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/all + +# Build rule for subdir invocation for target. +examples/infill/CMakeFiles/llama-infill.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/infill/CMakeFiles/llama-infill.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/rule + +# Convenience name for target. +llama-infill: examples/infill/CMakeFiles/llama-infill.dir/rule +.PHONY : llama-infill + +# clean rule for target. +examples/infill/CMakeFiles/llama-infill.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/clean +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/clean + +#============================================================================= +# Target rules for target examples/llama-bench/CMakeFiles/llama-bench.dir + +# All Build rule for target. +examples/llama-bench/CMakeFiles/llama-bench.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/llama-bench/CMakeFiles/llama-bench.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/llama-bench/CMakeFiles/llama-bench.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/llama-bench/CMakeFiles/llama-bench.dir/all: src/CMakeFiles/llama.dir/all +examples/llama-bench/CMakeFiles/llama-bench.dir/all: common/CMakeFiles/build_info.dir/all +examples/llama-bench/CMakeFiles/llama-bench.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/depend + $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=23 "Built target llama-bench" +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/all + +# Build rule for subdir invocation for target. +examples/llama-bench/CMakeFiles/llama-bench.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llama-bench/CMakeFiles/llama-bench.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/rule + +# Convenience name for target. +llama-bench: examples/llama-bench/CMakeFiles/llama-bench.dir/rule +.PHONY : llama-bench + +# clean rule for target. +examples/llama-bench/CMakeFiles/llama-bench.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/clean +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/clean + +#============================================================================= +# Target rules for target examples/lookahead/CMakeFiles/llama-lookahead.dir + +# All Build rule for target. +examples/lookahead/CMakeFiles/llama-lookahead.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/lookahead/CMakeFiles/llama-lookahead.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/lookahead/CMakeFiles/llama-lookahead.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/lookahead/CMakeFiles/llama-lookahead.dir/all: src/CMakeFiles/llama.dir/all +examples/lookahead/CMakeFiles/llama-lookahead.dir/all: common/CMakeFiles/build_info.dir/all +examples/lookahead/CMakeFiles/llama-lookahead.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/depend + $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=40 "Built target llama-lookahead" +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/all + +# Build rule for subdir invocation for target. +examples/lookahead/CMakeFiles/llama-lookahead.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookahead/CMakeFiles/llama-lookahead.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/rule + +# Convenience name for target. +llama-lookahead: examples/lookahead/CMakeFiles/llama-lookahead.dir/rule +.PHONY : llama-lookahead + +# clean rule for target. +examples/lookahead/CMakeFiles/llama-lookahead.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/clean +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/clean + +#============================================================================= +# Target rules for target examples/lookup/CMakeFiles/llama-lookup.dir + +# All Build rule for target. +examples/lookup/CMakeFiles/llama-lookup.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/lookup/CMakeFiles/llama-lookup.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/lookup/CMakeFiles/llama-lookup.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/lookup/CMakeFiles/llama-lookup.dir/all: src/CMakeFiles/llama.dir/all +examples/lookup/CMakeFiles/llama-lookup.dir/all: common/CMakeFiles/build_info.dir/all +examples/lookup/CMakeFiles/llama-lookup.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/depend + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=41 "Built target llama-lookup" +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/all + +# Build rule for subdir invocation for target. +examples/lookup/CMakeFiles/llama-lookup.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/rule + +# Convenience name for target. +llama-lookup: examples/lookup/CMakeFiles/llama-lookup.dir/rule +.PHONY : llama-lookup + +# clean rule for target. +examples/lookup/CMakeFiles/llama-lookup.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/clean +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/clean + +#============================================================================= +# Target rules for target examples/lookup/CMakeFiles/llama-lookup-create.dir + +# All Build rule for target. +examples/lookup/CMakeFiles/llama-lookup-create.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/lookup/CMakeFiles/llama-lookup-create.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/lookup/CMakeFiles/llama-lookup-create.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/lookup/CMakeFiles/llama-lookup-create.dir/all: src/CMakeFiles/llama.dir/all +examples/lookup/CMakeFiles/llama-lookup-create.dir/all: common/CMakeFiles/build_info.dir/all +examples/lookup/CMakeFiles/llama-lookup-create.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/depend + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=42 "Built target llama-lookup-create" +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/all + +# Build rule for subdir invocation for target. +examples/lookup/CMakeFiles/llama-lookup-create.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup-create.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/rule + +# Convenience name for target. +llama-lookup-create: examples/lookup/CMakeFiles/llama-lookup-create.dir/rule +.PHONY : llama-lookup-create + +# clean rule for target. +examples/lookup/CMakeFiles/llama-lookup-create.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/clean +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/clean + +#============================================================================= +# Target rules for target examples/lookup/CMakeFiles/llama-lookup-merge.dir + +# All Build rule for target. +examples/lookup/CMakeFiles/llama-lookup-merge.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/lookup/CMakeFiles/llama-lookup-merge.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/lookup/CMakeFiles/llama-lookup-merge.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/lookup/CMakeFiles/llama-lookup-merge.dir/all: src/CMakeFiles/llama.dir/all +examples/lookup/CMakeFiles/llama-lookup-merge.dir/all: common/CMakeFiles/build_info.dir/all +examples/lookup/CMakeFiles/llama-lookup-merge.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=43 "Built target llama-lookup-merge" +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/all + +# Build rule for subdir invocation for target. +examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup-merge.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule + +# Convenience name for target. +llama-lookup-merge: examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule +.PHONY : llama-lookup-merge + +# clean rule for target. +examples/lookup/CMakeFiles/llama-lookup-merge.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/clean +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/clean + +#============================================================================= +# Target rules for target examples/lookup/CMakeFiles/llama-lookup-stats.dir + +# All Build rule for target. +examples/lookup/CMakeFiles/llama-lookup-stats.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/lookup/CMakeFiles/llama-lookup-stats.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/lookup/CMakeFiles/llama-lookup-stats.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/lookup/CMakeFiles/llama-lookup-stats.dir/all: src/CMakeFiles/llama.dir/all +examples/lookup/CMakeFiles/llama-lookup-stats.dir/all: common/CMakeFiles/build_info.dir/all +examples/lookup/CMakeFiles/llama-lookup-stats.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=44 "Built target llama-lookup-stats" +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/all + +# Build rule for subdir invocation for target. +examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup-stats.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule + +# Convenience name for target. +llama-lookup-stats: examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule +.PHONY : llama-lookup-stats + +# clean rule for target. +examples/lookup/CMakeFiles/llama-lookup-stats.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/clean +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/clean + +#============================================================================= +# Target rules for target examples/main/CMakeFiles/llama-cli.dir + +# All Build rule for target. +examples/main/CMakeFiles/llama-cli.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/main/CMakeFiles/llama-cli.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/main/CMakeFiles/llama-cli.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/main/CMakeFiles/llama-cli.dir/all: src/CMakeFiles/llama.dir/all +examples/main/CMakeFiles/llama-cli.dir/all: common/CMakeFiles/build_info.dir/all +examples/main/CMakeFiles/llama-cli.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/depend + $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=24 "Built target llama-cli" +.PHONY : examples/main/CMakeFiles/llama-cli.dir/all + +# Build rule for subdir invocation for target. +examples/main/CMakeFiles/llama-cli.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/main/CMakeFiles/llama-cli.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/main/CMakeFiles/llama-cli.dir/rule + +# Convenience name for target. +llama-cli: examples/main/CMakeFiles/llama-cli.dir/rule +.PHONY : llama-cli + +# clean rule for target. +examples/main/CMakeFiles/llama-cli.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/clean +.PHONY : examples/main/CMakeFiles/llama-cli.dir/clean + +#============================================================================= +# Target rules for target examples/parallel/CMakeFiles/llama-parallel.dir + +# All Build rule for target. +examples/parallel/CMakeFiles/llama-parallel.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/parallel/CMakeFiles/llama-parallel.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/parallel/CMakeFiles/llama-parallel.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/parallel/CMakeFiles/llama-parallel.dir/all: src/CMakeFiles/llama.dir/all +examples/parallel/CMakeFiles/llama-parallel.dir/all: common/CMakeFiles/build_info.dir/all +examples/parallel/CMakeFiles/llama-parallel.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/depend + $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=46 "Built target llama-parallel" +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/all + +# Build rule for subdir invocation for target. +examples/parallel/CMakeFiles/llama-parallel.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/parallel/CMakeFiles/llama-parallel.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/rule + +# Convenience name for target. +llama-parallel: examples/parallel/CMakeFiles/llama-parallel.dir/rule +.PHONY : llama-parallel + +# clean rule for target. +examples/parallel/CMakeFiles/llama-parallel.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/clean +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/clean + +#============================================================================= +# Target rules for target examples/passkey/CMakeFiles/llama-passkey.dir + +# All Build rule for target. +examples/passkey/CMakeFiles/llama-passkey.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/passkey/CMakeFiles/llama-passkey.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/passkey/CMakeFiles/llama-passkey.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/passkey/CMakeFiles/llama-passkey.dir/all: src/CMakeFiles/llama.dir/all +examples/passkey/CMakeFiles/llama-passkey.dir/all: common/CMakeFiles/build_info.dir/all +examples/passkey/CMakeFiles/llama-passkey.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/depend + $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=47 "Built target llama-passkey" +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/all + +# Build rule for subdir invocation for target. +examples/passkey/CMakeFiles/llama-passkey.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/passkey/CMakeFiles/llama-passkey.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/rule + +# Convenience name for target. +llama-passkey: examples/passkey/CMakeFiles/llama-passkey.dir/rule +.PHONY : llama-passkey + +# clean rule for target. +examples/passkey/CMakeFiles/llama-passkey.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/clean +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/clean + +#============================================================================= +# Target rules for target examples/perplexity/CMakeFiles/llama-perplexity.dir + +# All Build rule for target. +examples/perplexity/CMakeFiles/llama-perplexity.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/perplexity/CMakeFiles/llama-perplexity.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/perplexity/CMakeFiles/llama-perplexity.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/perplexity/CMakeFiles/llama-perplexity.dir/all: src/CMakeFiles/llama.dir/all +examples/perplexity/CMakeFiles/llama-perplexity.dir/all: common/CMakeFiles/build_info.dir/all +examples/perplexity/CMakeFiles/llama-perplexity.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/depend + $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=48 "Built target llama-perplexity" +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/all + +# Build rule for subdir invocation for target. +examples/perplexity/CMakeFiles/llama-perplexity.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/perplexity/CMakeFiles/llama-perplexity.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/rule + +# Convenience name for target. +llama-perplexity: examples/perplexity/CMakeFiles/llama-perplexity.dir/rule +.PHONY : llama-perplexity + +# clean rule for target. +examples/perplexity/CMakeFiles/llama-perplexity.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/clean +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/clean + +#============================================================================= +# Target rules for target examples/quantize/CMakeFiles/llama-quantize.dir + +# All Build rule for target. +examples/quantize/CMakeFiles/llama-quantize.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/quantize/CMakeFiles/llama-quantize.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/quantize/CMakeFiles/llama-quantize.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/quantize/CMakeFiles/llama-quantize.dir/all: src/CMakeFiles/llama.dir/all +examples/quantize/CMakeFiles/llama-quantize.dir/all: common/CMakeFiles/build_info.dir/all +examples/quantize/CMakeFiles/llama-quantize.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/depend + $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=51 "Built target llama-quantize" +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/all + +# Build rule for subdir invocation for target. +examples/quantize/CMakeFiles/llama-quantize.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize/CMakeFiles/llama-quantize.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/rule + +# Convenience name for target. +llama-quantize: examples/quantize/CMakeFiles/llama-quantize.dir/rule +.PHONY : llama-quantize + +# clean rule for target. +examples/quantize/CMakeFiles/llama-quantize.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/clean +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/clean + +#============================================================================= +# Target rules for target examples/retrieval/CMakeFiles/llama-retrieval.dir + +# All Build rule for target. +examples/retrieval/CMakeFiles/llama-retrieval.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/retrieval/CMakeFiles/llama-retrieval.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/retrieval/CMakeFiles/llama-retrieval.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/retrieval/CMakeFiles/llama-retrieval.dir/all: src/CMakeFiles/llama.dir/all +examples/retrieval/CMakeFiles/llama-retrieval.dir/all: common/CMakeFiles/build_info.dir/all +examples/retrieval/CMakeFiles/llama-retrieval.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/depend + $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=53 "Built target llama-retrieval" +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/all + +# Build rule for subdir invocation for target. +examples/retrieval/CMakeFiles/llama-retrieval.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/retrieval/CMakeFiles/llama-retrieval.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/rule + +# Convenience name for target. +llama-retrieval: examples/retrieval/CMakeFiles/llama-retrieval.dir/rule +.PHONY : llama-retrieval + +# clean rule for target. +examples/retrieval/CMakeFiles/llama-retrieval.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/clean +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/clean + +#============================================================================= +# Target rules for target examples/server/CMakeFiles/llama-server.dir + +# All Build rule for target. +examples/server/CMakeFiles/llama-server.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/server/CMakeFiles/llama-server.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/server/CMakeFiles/llama-server.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/server/CMakeFiles/llama-server.dir/all: src/CMakeFiles/llama.dir/all +examples/server/CMakeFiles/llama-server.dir/all: common/CMakeFiles/build_info.dir/all +examples/server/CMakeFiles/llama-server.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/depend + $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=56,57,58,59,60 "Built target llama-server" +.PHONY : examples/server/CMakeFiles/llama-server.dir/all + +# Build rule for subdir invocation for target. +examples/server/CMakeFiles/llama-server.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 25 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/server/CMakeFiles/llama-server.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/server/CMakeFiles/llama-server.dir/rule + +# Convenience name for target. +llama-server: examples/server/CMakeFiles/llama-server.dir/rule +.PHONY : llama-server + +# clean rule for target. +examples/server/CMakeFiles/llama-server.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/clean +.PHONY : examples/server/CMakeFiles/llama-server.dir/clean + +#============================================================================= +# Target rules for target examples/save-load-state/CMakeFiles/llama-save-load-state.dir + +# All Build rule for target. +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all: src/CMakeFiles/llama.dir/all +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all: common/CMakeFiles/build_info.dir/all +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend + $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=55 "Built target llama-save-load-state" +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all + +# Build rule for subdir invocation for target. +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/save-load-state/CMakeFiles/llama-save-load-state.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule + +# Convenience name for target. +llama-save-load-state: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule +.PHONY : llama-save-load-state + +# clean rule for target. +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/clean +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/clean + +#============================================================================= +# Target rules for target examples/run/CMakeFiles/llama-run.dir + +# All Build rule for target. +examples/run/CMakeFiles/llama-run.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/run/CMakeFiles/llama-run.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/run/CMakeFiles/llama-run.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/run/CMakeFiles/llama-run.dir/all: src/CMakeFiles/llama.dir/all + $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/depend + $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=54 "Built target llama-run" +.PHONY : examples/run/CMakeFiles/llama-run.dir/all + +# Build rule for subdir invocation for target. +examples/run/CMakeFiles/llama-run.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 15 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/run/CMakeFiles/llama-run.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/run/CMakeFiles/llama-run.dir/rule + +# Convenience name for target. +llama-run: examples/run/CMakeFiles/llama-run.dir/rule +.PHONY : llama-run + +# clean rule for target. +examples/run/CMakeFiles/llama-run.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/clean +.PHONY : examples/run/CMakeFiles/llama-run.dir/clean + +#============================================================================= +# Target rules for target examples/simple/CMakeFiles/llama-simple.dir + +# All Build rule for target. +examples/simple/CMakeFiles/llama-simple.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/simple/CMakeFiles/llama-simple.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/simple/CMakeFiles/llama-simple.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/simple/CMakeFiles/llama-simple.dir/all: src/CMakeFiles/llama.dir/all + $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/depend + $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=61 "Built target llama-simple" +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/all + +# Build rule for subdir invocation for target. +examples/simple/CMakeFiles/llama-simple.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 15 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple/CMakeFiles/llama-simple.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/rule + +# Convenience name for target. +llama-simple: examples/simple/CMakeFiles/llama-simple.dir/rule +.PHONY : llama-simple + +# clean rule for target. +examples/simple/CMakeFiles/llama-simple.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/clean +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/clean + +#============================================================================= +# Target rules for target examples/simple-chat/CMakeFiles/llama-simple-chat.dir + +# All Build rule for target. +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all: src/CMakeFiles/llama.dir/all + $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend + $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=62 "Built target llama-simple-chat" +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all + +# Build rule for subdir invocation for target. +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 15 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple-chat/CMakeFiles/llama-simple-chat.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule + +# Convenience name for target. +llama-simple-chat: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule +.PHONY : llama-simple-chat + +# clean rule for target. +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/clean +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/clean + +#============================================================================= +# Target rules for target examples/speculative/CMakeFiles/llama-speculative.dir + +# All Build rule for target. +examples/speculative/CMakeFiles/llama-speculative.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/speculative/CMakeFiles/llama-speculative.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/speculative/CMakeFiles/llama-speculative.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/speculative/CMakeFiles/llama-speculative.dir/all: src/CMakeFiles/llama.dir/all +examples/speculative/CMakeFiles/llama-speculative.dir/all: common/CMakeFiles/build_info.dir/all +examples/speculative/CMakeFiles/llama-speculative.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/depend + $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=63 "Built target llama-speculative" +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/all + +# Build rule for subdir invocation for target. +examples/speculative/CMakeFiles/llama-speculative.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative/CMakeFiles/llama-speculative.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/rule + +# Convenience name for target. +llama-speculative: examples/speculative/CMakeFiles/llama-speculative.dir/rule +.PHONY : llama-speculative + +# clean rule for target. +examples/speculative/CMakeFiles/llama-speculative.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/clean +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/clean + +#============================================================================= +# Target rules for target examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir + +# All Build rule for target. +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all: src/CMakeFiles/llama.dir/all +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all: common/CMakeFiles/build_info.dir/all +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend + $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=64 "Built target llama-speculative-simple" +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all + +# Build rule for subdir invocation for target. +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule + +# Convenience name for target. +llama-speculative-simple: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule +.PHONY : llama-speculative-simple + +# clean rule for target. +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/clean +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/clean + +#============================================================================= +# Target rules for target examples/tokenize/CMakeFiles/llama-tokenize.dir + +# All Build rule for target. +examples/tokenize/CMakeFiles/llama-tokenize.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/tokenize/CMakeFiles/llama-tokenize.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/tokenize/CMakeFiles/llama-tokenize.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/tokenize/CMakeFiles/llama-tokenize.dir/all: src/CMakeFiles/llama.dir/all +examples/tokenize/CMakeFiles/llama-tokenize.dir/all: common/CMakeFiles/build_info.dir/all +examples/tokenize/CMakeFiles/llama-tokenize.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/depend + $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=65 "Built target llama-tokenize" +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/all + +# Build rule for subdir invocation for target. +examples/tokenize/CMakeFiles/llama-tokenize.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/tokenize/CMakeFiles/llama-tokenize.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/rule + +# Convenience name for target. +llama-tokenize: examples/tokenize/CMakeFiles/llama-tokenize.dir/rule +.PHONY : llama-tokenize + +# clean rule for target. +examples/tokenize/CMakeFiles/llama-tokenize.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/clean +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/clean + +#============================================================================= +# Target rules for target examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir + +# All Build rule for target. +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all: src/CMakeFiles/llama.dir/all +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all: common/CMakeFiles/build_info.dir/all +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend + $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=25 "Built target llama-convert-llama2c-to-ggml" +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all + +# Build rule for subdir invocation for target. +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule + +# Convenience name for target. +llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule +.PHONY : llama-convert-llama2c-to-ggml + +# clean rule for target. +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/clean +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/clean + +#============================================================================= +# Target rules for target examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir + +# All Build rule for target. +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all: src/CMakeFiles/llama.dir/all +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all: common/CMakeFiles/build_info.dir/all +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend + $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=26 "Built target llama-cvector-generator" +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all + +# Build rule for subdir invocation for target. +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule + +# Convenience name for target. +llama-cvector-generator: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule +.PHONY : llama-cvector-generator + +# clean rule for target. +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/clean +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/clean + +#============================================================================= +# Target rules for target examples/export-lora/CMakeFiles/llama-export-lora.dir + +# All Build rule for target. +examples/export-lora/CMakeFiles/llama-export-lora.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/export-lora/CMakeFiles/llama-export-lora.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/export-lora/CMakeFiles/llama-export-lora.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/export-lora/CMakeFiles/llama-export-lora.dir/all: src/CMakeFiles/llama.dir/all +examples/export-lora/CMakeFiles/llama-export-lora.dir/all: common/CMakeFiles/build_info.dir/all +examples/export-lora/CMakeFiles/llama-export-lora.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/depend + $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=30 "Built target llama-export-lora" +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/all + +# Build rule for subdir invocation for target. +examples/export-lora/CMakeFiles/llama-export-lora.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 21 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/export-lora/CMakeFiles/llama-export-lora.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/rule + +# Convenience name for target. +llama-export-lora: examples/export-lora/CMakeFiles/llama-export-lora.dir/rule +.PHONY : llama-export-lora + +# clean rule for target. +examples/export-lora/CMakeFiles/llama-export-lora.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/clean +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/clean + +#============================================================================= +# Target rules for target examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir + +# All Build rule for target. +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all: src/CMakeFiles/llama.dir/all +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all: common/CMakeFiles/build_info.dir/all + $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend + $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=52 "Built target llama-quantize-stats" +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all + +# Build rule for subdir invocation for target. +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 16 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule + +# Convenience name for target. +llama-quantize-stats: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule +.PHONY : llama-quantize-stats + +# clean rule for target. +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/clean +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/clean + +#============================================================================= +# Target rules for target examples/llava/CMakeFiles/llava.dir + +# All Build rule for target. +examples/llava/CMakeFiles/llava.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/llava/CMakeFiles/llava.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/llava/CMakeFiles/llava.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/llava/CMakeFiles/llava.dir/all: src/CMakeFiles/llama.dir/all + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/depend + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=68 "Built target llava" +.PHONY : examples/llava/CMakeFiles/llava.dir/all + +# Build rule for subdir invocation for target. +examples/llava/CMakeFiles/llava.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 15 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llava.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/llava/CMakeFiles/llava.dir/rule + +# Convenience name for target. +llava: examples/llava/CMakeFiles/llava.dir/rule +.PHONY : llava + +# clean rule for target. +examples/llava/CMakeFiles/llava.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/clean +.PHONY : examples/llava/CMakeFiles/llava.dir/clean + +#============================================================================= +# Target rules for target examples/llava/CMakeFiles/llava_static.dir + +# All Build rule for target. +examples/llava/CMakeFiles/llava_static.dir/all: examples/llava/CMakeFiles/llava.dir/all + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_static.dir/build.make examples/llava/CMakeFiles/llava_static.dir/depend + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_static.dir/build.make examples/llava/CMakeFiles/llava_static.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=69 "Built target llava_static" +.PHONY : examples/llava/CMakeFiles/llava_static.dir/all + +# Build rule for subdir invocation for target. +examples/llava/CMakeFiles/llava_static.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 16 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llava_static.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/llava/CMakeFiles/llava_static.dir/rule + +# Convenience name for target. +llava_static: examples/llava/CMakeFiles/llava_static.dir/rule +.PHONY : llava_static + +# clean rule for target. +examples/llava/CMakeFiles/llava_static.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_static.dir/build.make examples/llava/CMakeFiles/llava_static.dir/clean +.PHONY : examples/llava/CMakeFiles/llava_static.dir/clean + +#============================================================================= +# Target rules for target examples/llava/CMakeFiles/llava_shared.dir + +# All Build rule for target. +examples/llava/CMakeFiles/llava_shared.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/llava/CMakeFiles/llava_shared.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/llava/CMakeFiles/llava_shared.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/llava/CMakeFiles/llava_shared.dir/all: src/CMakeFiles/llama.dir/all +examples/llava/CMakeFiles/llava_shared.dir/all: examples/llava/CMakeFiles/llava.dir/all + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_shared.dir/build.make examples/llava/CMakeFiles/llava_shared.dir/depend + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_shared.dir/build.make examples/llava/CMakeFiles/llava_shared.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num= "Built target llava_shared" +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/all + +# Build rule for subdir invocation for target. +examples/llava/CMakeFiles/llava_shared.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 15 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llava_shared.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/rule + +# Convenience name for target. +llava_shared: examples/llava/CMakeFiles/llava_shared.dir/rule +.PHONY : llava_shared + +# clean rule for target. +examples/llava/CMakeFiles/llava_shared.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_shared.dir/build.make examples/llava/CMakeFiles/llava_shared.dir/clean +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/clean + +#============================================================================= +# Target rules for target examples/llava/CMakeFiles/llama-llava-cli.dir + +# All Build rule for target. +examples/llava/CMakeFiles/llama-llava-cli.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/llava/CMakeFiles/llama-llava-cli.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/llava/CMakeFiles/llama-llava-cli.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/llava/CMakeFiles/llama-llava-cli.dir/all: src/CMakeFiles/llama.dir/all +examples/llava/CMakeFiles/llama-llava-cli.dir/all: common/CMakeFiles/build_info.dir/all +examples/llava/CMakeFiles/llama-llava-cli.dir/all: common/CMakeFiles/common.dir/all +examples/llava/CMakeFiles/llama-llava-cli.dir/all: examples/llava/CMakeFiles/llava.dir/all + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/depend + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=38,39 "Built target llama-llava-cli" +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/all + +# Build rule for subdir invocation for target. +examples/llava/CMakeFiles/llama-llava-cli.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 23 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llama-llava-cli.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/rule + +# Convenience name for target. +llama-llava-cli: examples/llava/CMakeFiles/llama-llava-cli.dir/rule +.PHONY : llama-llava-cli + +# clean rule for target. +examples/llava/CMakeFiles/llama-llava-cli.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/clean +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/clean + +#============================================================================= +# Target rules for target examples/llava/CMakeFiles/llama-minicpmv-cli.dir + +# All Build rule for target. +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: ggml/src/CMakeFiles/ggml.dir/all +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: src/CMakeFiles/llama.dir/all +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: common/CMakeFiles/build_info.dir/all +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: common/CMakeFiles/common.dir/all +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all: examples/llava/CMakeFiles/llava.dir/all + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=45 "Built target llama-minicpmv-cli" +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all + +# Build rule for subdir invocation for target. +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llama-minicpmv-cli.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule + +# Convenience name for target. +llama-minicpmv-cli: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule +.PHONY : llama-minicpmv-cli + +# clean rule for target. +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/clean: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/clean +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/clean + +#============================================================================= +# Target rules for target pocs/vdot/CMakeFiles/llama-vdot.dir + +# All Build rule for target. +pocs/vdot/CMakeFiles/llama-vdot.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +pocs/vdot/CMakeFiles/llama-vdot.dir/all: ggml/src/CMakeFiles/ggml.dir/all +pocs/vdot/CMakeFiles/llama-vdot.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +pocs/vdot/CMakeFiles/llama-vdot.dir/all: src/CMakeFiles/llama.dir/all +pocs/vdot/CMakeFiles/llama-vdot.dir/all: common/CMakeFiles/build_info.dir/all +pocs/vdot/CMakeFiles/llama-vdot.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/depend + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=66,67 "Built target llama-vdot" +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/all + +# Build rule for subdir invocation for target. +pocs/vdot/CMakeFiles/llama-vdot.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/CMakeFiles/llama-vdot.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/rule + +# Convenience name for target. +llama-vdot: pocs/vdot/CMakeFiles/llama-vdot.dir/rule +.PHONY : llama-vdot + +# clean rule for target. +pocs/vdot/CMakeFiles/llama-vdot.dir/clean: + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/clean +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/clean + +#============================================================================= +# Target rules for target pocs/vdot/CMakeFiles/llama-q8dot.dir + +# All Build rule for target. +pocs/vdot/CMakeFiles/llama-q8dot.dir/all: ggml/src/CMakeFiles/ggml-base.dir/all +pocs/vdot/CMakeFiles/llama-q8dot.dir/all: ggml/src/CMakeFiles/ggml.dir/all +pocs/vdot/CMakeFiles/llama-q8dot.dir/all: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/all +pocs/vdot/CMakeFiles/llama-q8dot.dir/all: src/CMakeFiles/llama.dir/all +pocs/vdot/CMakeFiles/llama-q8dot.dir/all: common/CMakeFiles/build_info.dir/all +pocs/vdot/CMakeFiles/llama-q8dot.dir/all: common/CMakeFiles/common.dir/all + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/depend + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=49,50 "Built target llama-q8dot" +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/all + +# Build rule for subdir invocation for target. +pocs/vdot/CMakeFiles/llama-q8dot.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 22 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/CMakeFiles/llama-q8dot.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/rule + +# Convenience name for target. +llama-q8dot: pocs/vdot/CMakeFiles/llama-q8dot.dir/rule +.PHONY : llama-q8dot + +# clean rule for target. +pocs/vdot/CMakeFiles/llama-q8dot.dir/clean: + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/clean +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/CMakeFiles/Nightly.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/Nightly.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Nightly.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/Nightly.dir/build.make b/llama.cpp/build/CMakeFiles/Nightly.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..17a508e77765db7b390327e16cace530b0f49236 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Nightly.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for Nightly. + +# Include any custom commands dependencies for this target. +include CMakeFiles/Nightly.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/Nightly.dir/progress.make + +CMakeFiles/Nightly: + /usr/bin/ctest -D Nightly + +Nightly: CMakeFiles/Nightly +Nightly: CMakeFiles/Nightly.dir/build.make +.PHONY : Nightly + +# Rule to build all files generated by this target. +CMakeFiles/Nightly.dir/build: Nightly +.PHONY : CMakeFiles/Nightly.dir/build + +CMakeFiles/Nightly.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Nightly.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Nightly.dir/clean + +CMakeFiles/Nightly.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/Nightly.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/Nightly.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/Nightly.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/Nightly.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..99a4ac149fbc87eaff43f33138bf97d980167986 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Nightly.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/Nightly" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/Nightly.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/Nightly.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/Nightly.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b53ef7a75d20d77c9484b1a6c2d7208b4a485e2d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Nightly.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for Nightly. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/Nightly.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/Nightly.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a85d2c815e0c948f05b0c844306861447908f59f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Nightly.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for Nightly. diff --git a/llama.cpp/build/CMakeFiles/Nightly.dir/progress.make b/llama.cpp/build/CMakeFiles/Nightly.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/Nightly.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyBuild.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyBuild.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..9c215eb78a92314121397899c5f815bd458f7f63 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyBuild. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyBuild.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyBuild.dir/progress.make + +CMakeFiles/NightlyBuild: + /usr/bin/ctest -D NightlyBuild + +NightlyBuild: CMakeFiles/NightlyBuild +NightlyBuild: CMakeFiles/NightlyBuild.dir/build.make +.PHONY : NightlyBuild + +# Rule to build all files generated by this target. +CMakeFiles/NightlyBuild.dir/build: NightlyBuild +.PHONY : CMakeFiles/NightlyBuild.dir/build + +CMakeFiles/NightlyBuild.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyBuild.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyBuild.dir/clean + +CMakeFiles/NightlyBuild.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyBuild.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyBuild.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyBuild.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7aa38a7847f108b629144b324ece47f81eb950dd --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyBuild" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyBuild.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyBuild.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..da2f347558e17fc36e441ffd69ba6e38d315b1df --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyBuild. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyBuild.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..89e696096246844f328561b5cadf467a7c8a4077 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyBuild. diff --git a/llama.cpp/build/CMakeFiles/NightlyBuild.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyBuild.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b89c5adc978fcd80ad7b6888342ec8f0d7f29adb --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyConfigure. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyConfigure.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyConfigure.dir/progress.make + +CMakeFiles/NightlyConfigure: + /usr/bin/ctest -D NightlyConfigure + +NightlyConfigure: CMakeFiles/NightlyConfigure +NightlyConfigure: CMakeFiles/NightlyConfigure.dir/build.make +.PHONY : NightlyConfigure + +# Rule to build all files generated by this target. +CMakeFiles/NightlyConfigure.dir/build: NightlyConfigure +.PHONY : CMakeFiles/NightlyConfigure.dir/build + +CMakeFiles/NightlyConfigure.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyConfigure.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyConfigure.dir/clean + +CMakeFiles/NightlyConfigure.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyConfigure.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..080c729b98b5ed38cc09b968dcc69760292f7d1a --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyConfigure" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyConfigure.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..973bd2a5ba166e06b0551e4578671158c59f5d45 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyConfigure. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3e550dad8e1286ef78ce5a05d1d8908f8300e7bb --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyConfigure. diff --git a/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyConfigure.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c03317fcbc7c26eb1e59851ae2eaf9543c4e4f1b --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyCoverage. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyCoverage.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyCoverage.dir/progress.make + +CMakeFiles/NightlyCoverage: + /usr/bin/ctest -D NightlyCoverage + +NightlyCoverage: CMakeFiles/NightlyCoverage +NightlyCoverage: CMakeFiles/NightlyCoverage.dir/build.make +.PHONY : NightlyCoverage + +# Rule to build all files generated by this target. +CMakeFiles/NightlyCoverage.dir/build: NightlyCoverage +.PHONY : CMakeFiles/NightlyCoverage.dir/build + +CMakeFiles/NightlyCoverage.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyCoverage.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyCoverage.dir/clean + +CMakeFiles/NightlyCoverage.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyCoverage.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d6cba89b076ae520aa072d721e25a138891aa1a2 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyCoverage" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyCoverage.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9f188a1ee6a56130d2892f59e5b20b6315f1817f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyCoverage. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3092ba3e90fb4ac3eae62da09a1e5dd2de242850 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyCoverage. diff --git a/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyCoverage.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d504377683e446c56e6d425eeeffb84d7b37fd25 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyMemCheck. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyMemCheck.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyMemCheck.dir/progress.make + +CMakeFiles/NightlyMemCheck: + /usr/bin/ctest -D NightlyMemCheck + +NightlyMemCheck: CMakeFiles/NightlyMemCheck +NightlyMemCheck: CMakeFiles/NightlyMemCheck.dir/build.make +.PHONY : NightlyMemCheck + +# Rule to build all files generated by this target. +CMakeFiles/NightlyMemCheck.dir/build: NightlyMemCheck +.PHONY : CMakeFiles/NightlyMemCheck.dir/build + +CMakeFiles/NightlyMemCheck.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyMemCheck.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyMemCheck.dir/clean + +CMakeFiles/NightlyMemCheck.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyMemCheck.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3c0e881a0a6d8cc082fa0ae04d307c72a3f5dd9b --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyMemCheck" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyMemCheck.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6c54911b9c84729ad6e0261b2e9ad56a36e1d315 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyMemCheck. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c176eda13a96db5bc16eca13a6219061e1f71039 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyMemCheck. diff --git a/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..46794c7674ee009f0c89843657fbdde434ee3470 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyMemoryCheck. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyMemoryCheck.dir/progress.make + +CMakeFiles/NightlyMemoryCheck: + /usr/bin/ctest -D NightlyMemoryCheck + +NightlyMemoryCheck: CMakeFiles/NightlyMemoryCheck +NightlyMemoryCheck: CMakeFiles/NightlyMemoryCheck.dir/build.make +.PHONY : NightlyMemoryCheck + +# Rule to build all files generated by this target. +CMakeFiles/NightlyMemoryCheck.dir/build: NightlyMemoryCheck +.PHONY : CMakeFiles/NightlyMemoryCheck.dir/build + +CMakeFiles/NightlyMemoryCheck.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyMemoryCheck.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyMemoryCheck.dir/clean + +CMakeFiles/NightlyMemoryCheck.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyMemoryCheck.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..884661158ff4d39174862beefa390daa8d12f1f0 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyMemoryCheck" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyMemoryCheck.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3aa41e77c274e797340d6d506af64b8bcbb81eb5 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyMemoryCheck. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..38e1ae0cf5e10cf901b8f38f92f78950c2f14541 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyMemoryCheck. diff --git a/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyStart.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyStart.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyStart.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyStart.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyStart.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..771e8e057e491bfc6745ce05fe3c1d69d7cce0b7 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyStart.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyStart. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyStart.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyStart.dir/progress.make + +CMakeFiles/NightlyStart: + /usr/bin/ctest -D NightlyStart + +NightlyStart: CMakeFiles/NightlyStart +NightlyStart: CMakeFiles/NightlyStart.dir/build.make +.PHONY : NightlyStart + +# Rule to build all files generated by this target. +CMakeFiles/NightlyStart.dir/build: NightlyStart +.PHONY : CMakeFiles/NightlyStart.dir/build + +CMakeFiles/NightlyStart.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyStart.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyStart.dir/clean + +CMakeFiles/NightlyStart.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyStart.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyStart.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyStart.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyStart.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6a2c6c6f434243a9d9d1ba9f5ee1aaa9815e8580 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyStart.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyStart" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyStart.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyStart.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyStart.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b72de2db368df34063331ccd85efc45f3d95c385 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyStart.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyStart. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyStart.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyStart.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2f7f077a9bb9b2c1c0ddd88038ddd384b647a21f --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyStart.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyStart. diff --git a/llama.cpp/build/CMakeFiles/NightlyStart.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyStart.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyStart.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlySubmit.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlySubmit.dir/build.make b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..923643d4af8f36e3e8f1d08e11d2aa526433aac2 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlySubmit. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlySubmit.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlySubmit.dir/progress.make + +CMakeFiles/NightlySubmit: + /usr/bin/ctest -D NightlySubmit + +NightlySubmit: CMakeFiles/NightlySubmit +NightlySubmit: CMakeFiles/NightlySubmit.dir/build.make +.PHONY : NightlySubmit + +# Rule to build all files generated by this target. +CMakeFiles/NightlySubmit.dir/build: NightlySubmit +.PHONY : CMakeFiles/NightlySubmit.dir/build + +CMakeFiles/NightlySubmit.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlySubmit.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlySubmit.dir/clean + +CMakeFiles/NightlySubmit.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlySubmit.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlySubmit.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlySubmit.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6f88ccc7daf558e237b04461ff25efd51a26e3e7 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlySubmit" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlySubmit.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlySubmit.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d2f674865ffc6a49d7a7c4587dc9922ffd922302 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlySubmit. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlySubmit.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..773bf4b08bf7ad8a9331d1ed722b315efa8588a3 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlySubmit. diff --git a/llama.cpp/build/CMakeFiles/NightlySubmit.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlySubmit.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyTest.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyTest.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyTest.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyTest.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyTest.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..99030f87b7fb05ee92a61dc53dced5d0d7119a74 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyTest.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyTest. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyTest.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyTest.dir/progress.make + +CMakeFiles/NightlyTest: + /usr/bin/ctest -D NightlyTest + +NightlyTest: CMakeFiles/NightlyTest +NightlyTest: CMakeFiles/NightlyTest.dir/build.make +.PHONY : NightlyTest + +# Rule to build all files generated by this target. +CMakeFiles/NightlyTest.dir/build: NightlyTest +.PHONY : CMakeFiles/NightlyTest.dir/build + +CMakeFiles/NightlyTest.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyTest.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyTest.dir/clean + +CMakeFiles/NightlyTest.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyTest.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyTest.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyTest.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyTest.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8f40bb87e4eaa3647e5882d961cd2e3063d371c4 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyTest.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyTest" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyTest.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyTest.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyTest.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..03d9c29c01a8360701131279af4904d85dbdb854 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyTest.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyTest. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyTest.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyTest.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..8bb891c6fefee505b62d036283cbe281f725de74 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyTest.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyTest. diff --git a/llama.cpp/build/CMakeFiles/NightlyTest.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyTest.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyTest.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/DependInfo.cmake b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/build.make b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b9dbce682e8b349c076941c94678ab997ff6b5f1 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/build.make @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Utility rule file for NightlyUpdate. + +# Include any custom commands dependencies for this target. +include CMakeFiles/NightlyUpdate.dir/compiler_depend.make + +# Include the progress variables for this target. +include CMakeFiles/NightlyUpdate.dir/progress.make + +CMakeFiles/NightlyUpdate: + /usr/bin/ctest -D NightlyUpdate + +NightlyUpdate: CMakeFiles/NightlyUpdate +NightlyUpdate: CMakeFiles/NightlyUpdate.dir/build.make +.PHONY : NightlyUpdate + +# Rule to build all files generated by this target. +CMakeFiles/NightlyUpdate.dir/build: NightlyUpdate +.PHONY : CMakeFiles/NightlyUpdate.dir/build + +CMakeFiles/NightlyUpdate.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/NightlyUpdate.dir/cmake_clean.cmake +.PHONY : CMakeFiles/NightlyUpdate.dir/clean + +CMakeFiles/NightlyUpdate.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : CMakeFiles/NightlyUpdate.dir/depend + diff --git a/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/cmake_clean.cmake b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0f10e8272faa906d248095765c50439ec8a711f7 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/NightlyUpdate" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/NightlyUpdate.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/compiler_depend.make b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..924c826bcf8e657ed62df5366047db95ae771a56 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty custom commands generated dependencies file for NightlyUpdate. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/compiler_depend.ts b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..7cf66de73aad6f37fd56660fb1e0363b05d96093 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for custom commands dependencies management for NightlyUpdate. diff --git a/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/progress.make b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc --- /dev/null +++ b/llama.cpp/build/CMakeFiles/NightlyUpdate.dir/progress.make @@ -0,0 +1 @@ + diff --git a/llama.cpp/build/CMakeFiles/TargetDirectories.txt b/llama.cpp/build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000000000000000000000000000000000..ff438223e822dfba3d51f8797c2843e7866f7b5e --- /dev/null +++ b/llama.cpp/build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,399 @@ +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/Experimental.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/Nightly.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/Continuous.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyMemoryCheck.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyStart.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyUpdate.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyConfigure.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyBuild.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyTest.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyCoverage.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlyMemCheck.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/NightlySubmit.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalStart.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalUpdate.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalConfigure.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalBuild.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalTest.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalCoverage.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalMemCheck.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ExperimentalSubmit.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousStart.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousUpdate.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousConfigure.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousBuild.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousTest.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousCoverage.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousMemCheck.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/ContinuousSubmit.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/build_info.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-log.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-sampling.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-barrier.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-rope.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-c.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/CMakeFiles/install/strip.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/test.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/edit_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/rebuild_cache.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/list_install_components.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/install.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/install/local.dir +/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/install/strip.dir diff --git a/llama.cpp/build/CMakeFiles/cmake.check_cache b/llama.cpp/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/llama.cpp/build/CMakeFiles/progress.marks b/llama.cpp/build/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..29d6383b52c1352e92a45875b5bb206f89139643 --- /dev/null +++ b/llama.cpp/build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +100 diff --git a/llama.cpp/build/CTestTestfile.cmake b/llama.cpp/build/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..72c360b290fd8ae551def8ce37af45bd6ba27892 --- /dev/null +++ b/llama.cpp/build/CTestTestfile.cmake @@ -0,0 +1,12 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +subdirs("ggml") +subdirs("src") +subdirs("common") +subdirs("tests") +subdirs("examples") +subdirs("pocs") diff --git a/llama.cpp/build/DartConfiguration.tcl b/llama.cpp/build/DartConfiguration.tcl new file mode 100644 index 0000000000000000000000000000000000000000..fad510e611e88ccf66cdade77857d0956f3043b6 --- /dev/null +++ b/llama.cpp/build/DartConfiguration.tcl @@ -0,0 +1,105 @@ +# This file is configured by CMake automatically as DartConfiguration.tcl +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + + +# Configuration directories and files +SourceDirectory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp +BuildDirectory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build + +# Where to place the cost data store +CostDataFile: + +# Site is something like machine.domain, i.e. pragmatic.crd +Site: mathisportable-HN-WX9X + +# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++ +BuildName: Linux-c++ + +# Subprojects +LabelsForSubprojects: + +# Submission information +SubmitURL: http:// + +# Dashboard start time +NightlyStartTime: 00:00:00 EDT + +# Commands for the build/test/submit cycle +ConfigureCommand: "/usr/bin/cmake" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" +MakeCommand: /usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}" +DefaultCTestConfigurationType: Release + +# version control +UpdateVersionOnly: + +# CVS options +# Default is "-d -P -A" +CVSCommand: +CVSUpdateOptions: + +# Subversion options +SVNCommand: +SVNOptions: +SVNUpdateOptions: + +# Git options +GITCommand: /usr/bin/git +GITInitSubmodules: +GITUpdateOptions: +GITUpdateCustom: + +# Perforce options +P4Command: +P4Client: +P4Options: +P4UpdateOptions: +P4UpdateCustom: + +# Generic update command +UpdateCommand: /usr/bin/git +UpdateOptions: +UpdateType: git + +# Compiler info +Compiler: /usr/bin/c++ +CompilerVersion: 11.4.0 + +# Dynamic analysis (MemCheck) +PurifyCommand: +ValgrindCommand: +ValgrindCommandOptions: +DrMemoryCommand: +DrMemoryCommandOptions: +CudaSanitizerCommand: +CudaSanitizerCommandOptions: +MemoryCheckType: +MemoryCheckSanitizerOptions: +MemoryCheckCommand: /usr/bin/valgrind +MemoryCheckCommandOptions: +MemoryCheckSuppressionFile: + +# Coverage +CoverageCommand: /usr/bin/gcov +CoverageExtraFlags: -l + +# Testing options +# TimeOut is the amount of time in seconds to wait for processes +# to complete during testing. After TimeOut seconds, the +# process will be summarily terminated. +# Currently set to 25 minutes +TimeOut: 1500 + +# During parallel testing CTest will not start a new test if doing +# so would cause the system load to exceed this value. +TestLoad: + +UseLaunchers: +CurlOptions: +# warning, if you add new options here that have to do with submit, +# you have to update cmCTestSubmitCommand.cxx + +# For CTest submissions that timeout, these options +# specify behavior for retrying the submission +CTestSubmitRetryDelay: 5 +CTestSubmitRetryCount: 3 diff --git a/llama.cpp/build/Makefile b/llama.cpp/build/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0f247dcf4feb9a82478a3954c699bff7406db256 --- /dev/null +++ b/llama.cpp/build/Makefile @@ -0,0 +1,1572 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build//CMakeFiles/progress.marks" + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named Experimental + +# Build rule for target. +Experimental: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 Experimental +.PHONY : Experimental + +# fast build rule for target. +Experimental/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Experimental.dir/build.make CMakeFiles/Experimental.dir/build +.PHONY : Experimental/fast + +#============================================================================= +# Target rules for targets named Nightly + +# Build rule for target. +Nightly: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 Nightly +.PHONY : Nightly + +# fast build rule for target. +Nightly/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Nightly.dir/build.make CMakeFiles/Nightly.dir/build +.PHONY : Nightly/fast + +#============================================================================= +# Target rules for targets named Continuous + +# Build rule for target. +Continuous: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 Continuous +.PHONY : Continuous + +# fast build rule for target. +Continuous/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Continuous.dir/build.make CMakeFiles/Continuous.dir/build +.PHONY : Continuous/fast + +#============================================================================= +# Target rules for targets named NightlyMemoryCheck + +# Build rule for target. +NightlyMemoryCheck: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyMemoryCheck +.PHONY : NightlyMemoryCheck + +# fast build rule for target. +NightlyMemoryCheck/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemoryCheck.dir/build.make CMakeFiles/NightlyMemoryCheck.dir/build +.PHONY : NightlyMemoryCheck/fast + +#============================================================================= +# Target rules for targets named NightlyStart + +# Build rule for target. +NightlyStart: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyStart +.PHONY : NightlyStart + +# fast build rule for target. +NightlyStart/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyStart.dir/build.make CMakeFiles/NightlyStart.dir/build +.PHONY : NightlyStart/fast + +#============================================================================= +# Target rules for targets named NightlyUpdate + +# Build rule for target. +NightlyUpdate: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyUpdate +.PHONY : NightlyUpdate + +# fast build rule for target. +NightlyUpdate/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyUpdate.dir/build.make CMakeFiles/NightlyUpdate.dir/build +.PHONY : NightlyUpdate/fast + +#============================================================================= +# Target rules for targets named NightlyConfigure + +# Build rule for target. +NightlyConfigure: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyConfigure +.PHONY : NightlyConfigure + +# fast build rule for target. +NightlyConfigure/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyConfigure.dir/build.make CMakeFiles/NightlyConfigure.dir/build +.PHONY : NightlyConfigure/fast + +#============================================================================= +# Target rules for targets named NightlyBuild + +# Build rule for target. +NightlyBuild: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyBuild +.PHONY : NightlyBuild + +# fast build rule for target. +NightlyBuild/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyBuild.dir/build.make CMakeFiles/NightlyBuild.dir/build +.PHONY : NightlyBuild/fast + +#============================================================================= +# Target rules for targets named NightlyTest + +# Build rule for target. +NightlyTest: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyTest +.PHONY : NightlyTest + +# fast build rule for target. +NightlyTest/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyTest.dir/build.make CMakeFiles/NightlyTest.dir/build +.PHONY : NightlyTest/fast + +#============================================================================= +# Target rules for targets named NightlyCoverage + +# Build rule for target. +NightlyCoverage: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyCoverage +.PHONY : NightlyCoverage + +# fast build rule for target. +NightlyCoverage/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyCoverage.dir/build.make CMakeFiles/NightlyCoverage.dir/build +.PHONY : NightlyCoverage/fast + +#============================================================================= +# Target rules for targets named NightlyMemCheck + +# Build rule for target. +NightlyMemCheck: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlyMemCheck +.PHONY : NightlyMemCheck + +# fast build rule for target. +NightlyMemCheck/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlyMemCheck.dir/build.make CMakeFiles/NightlyMemCheck.dir/build +.PHONY : NightlyMemCheck/fast + +#============================================================================= +# Target rules for targets named NightlySubmit + +# Build rule for target. +NightlySubmit: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 NightlySubmit +.PHONY : NightlySubmit + +# fast build rule for target. +NightlySubmit/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/NightlySubmit.dir/build.make CMakeFiles/NightlySubmit.dir/build +.PHONY : NightlySubmit/fast + +#============================================================================= +# Target rules for targets named ExperimentalStart + +# Build rule for target. +ExperimentalStart: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalStart +.PHONY : ExperimentalStart + +# fast build rule for target. +ExperimentalStart/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalStart.dir/build.make CMakeFiles/ExperimentalStart.dir/build +.PHONY : ExperimentalStart/fast + +#============================================================================= +# Target rules for targets named ExperimentalUpdate + +# Build rule for target. +ExperimentalUpdate: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalUpdate +.PHONY : ExperimentalUpdate + +# fast build rule for target. +ExperimentalUpdate/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalUpdate.dir/build.make CMakeFiles/ExperimentalUpdate.dir/build +.PHONY : ExperimentalUpdate/fast + +#============================================================================= +# Target rules for targets named ExperimentalConfigure + +# Build rule for target. +ExperimentalConfigure: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalConfigure +.PHONY : ExperimentalConfigure + +# fast build rule for target. +ExperimentalConfigure/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalConfigure.dir/build.make CMakeFiles/ExperimentalConfigure.dir/build +.PHONY : ExperimentalConfigure/fast + +#============================================================================= +# Target rules for targets named ExperimentalBuild + +# Build rule for target. +ExperimentalBuild: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalBuild +.PHONY : ExperimentalBuild + +# fast build rule for target. +ExperimentalBuild/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalBuild.dir/build.make CMakeFiles/ExperimentalBuild.dir/build +.PHONY : ExperimentalBuild/fast + +#============================================================================= +# Target rules for targets named ExperimentalTest + +# Build rule for target. +ExperimentalTest: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalTest +.PHONY : ExperimentalTest + +# fast build rule for target. +ExperimentalTest/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalTest.dir/build.make CMakeFiles/ExperimentalTest.dir/build +.PHONY : ExperimentalTest/fast + +#============================================================================= +# Target rules for targets named ExperimentalCoverage + +# Build rule for target. +ExperimentalCoverage: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalCoverage +.PHONY : ExperimentalCoverage + +# fast build rule for target. +ExperimentalCoverage/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalCoverage.dir/build.make CMakeFiles/ExperimentalCoverage.dir/build +.PHONY : ExperimentalCoverage/fast + +#============================================================================= +# Target rules for targets named ExperimentalMemCheck + +# Build rule for target. +ExperimentalMemCheck: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalMemCheck +.PHONY : ExperimentalMemCheck + +# fast build rule for target. +ExperimentalMemCheck/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalMemCheck.dir/build.make CMakeFiles/ExperimentalMemCheck.dir/build +.PHONY : ExperimentalMemCheck/fast + +#============================================================================= +# Target rules for targets named ExperimentalSubmit + +# Build rule for target. +ExperimentalSubmit: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ExperimentalSubmit +.PHONY : ExperimentalSubmit + +# fast build rule for target. +ExperimentalSubmit/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ExperimentalSubmit.dir/build.make CMakeFiles/ExperimentalSubmit.dir/build +.PHONY : ExperimentalSubmit/fast + +#============================================================================= +# Target rules for targets named ContinuousStart + +# Build rule for target. +ContinuousStart: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousStart +.PHONY : ContinuousStart + +# fast build rule for target. +ContinuousStart/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousStart.dir/build.make CMakeFiles/ContinuousStart.dir/build +.PHONY : ContinuousStart/fast + +#============================================================================= +# Target rules for targets named ContinuousUpdate + +# Build rule for target. +ContinuousUpdate: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousUpdate +.PHONY : ContinuousUpdate + +# fast build rule for target. +ContinuousUpdate/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousUpdate.dir/build.make CMakeFiles/ContinuousUpdate.dir/build +.PHONY : ContinuousUpdate/fast + +#============================================================================= +# Target rules for targets named ContinuousConfigure + +# Build rule for target. +ContinuousConfigure: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousConfigure +.PHONY : ContinuousConfigure + +# fast build rule for target. +ContinuousConfigure/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousConfigure.dir/build.make CMakeFiles/ContinuousConfigure.dir/build +.PHONY : ContinuousConfigure/fast + +#============================================================================= +# Target rules for targets named ContinuousBuild + +# Build rule for target. +ContinuousBuild: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousBuild +.PHONY : ContinuousBuild + +# fast build rule for target. +ContinuousBuild/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousBuild.dir/build.make CMakeFiles/ContinuousBuild.dir/build +.PHONY : ContinuousBuild/fast + +#============================================================================= +# Target rules for targets named ContinuousTest + +# Build rule for target. +ContinuousTest: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousTest +.PHONY : ContinuousTest + +# fast build rule for target. +ContinuousTest/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousTest.dir/build.make CMakeFiles/ContinuousTest.dir/build +.PHONY : ContinuousTest/fast + +#============================================================================= +# Target rules for targets named ContinuousCoverage + +# Build rule for target. +ContinuousCoverage: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousCoverage +.PHONY : ContinuousCoverage + +# fast build rule for target. +ContinuousCoverage/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousCoverage.dir/build.make CMakeFiles/ContinuousCoverage.dir/build +.PHONY : ContinuousCoverage/fast + +#============================================================================= +# Target rules for targets named ContinuousMemCheck + +# Build rule for target. +ContinuousMemCheck: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousMemCheck +.PHONY : ContinuousMemCheck + +# fast build rule for target. +ContinuousMemCheck/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousMemCheck.dir/build.make CMakeFiles/ContinuousMemCheck.dir/build +.PHONY : ContinuousMemCheck/fast + +#============================================================================= +# Target rules for targets named ContinuousSubmit + +# Build rule for target. +ContinuousSubmit: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ContinuousSubmit +.PHONY : ContinuousSubmit + +# fast build rule for target. +ContinuousSubmit/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/ContinuousSubmit.dir/build.make CMakeFiles/ContinuousSubmit.dir/build +.PHONY : ContinuousSubmit/fast + +#============================================================================= +# Target rules for targets named ggml-base + +# Build rule for target. +ggml-base: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml-base +.PHONY : ggml-base + +# fast build rule for target. +ggml-base/fast: + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/build +.PHONY : ggml-base/fast + +#============================================================================= +# Target rules for targets named ggml + +# Build rule for target. +ggml: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml +.PHONY : ggml + +# fast build rule for target. +ggml/fast: + $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/build +.PHONY : ggml/fast + +#============================================================================= +# Target rules for targets named ggml-cpu + +# Build rule for target. +ggml-cpu: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml-cpu +.PHONY : ggml-cpu + +# fast build rule for target. +ggml-cpu/fast: + $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build +.PHONY : ggml-cpu/fast + +#============================================================================= +# Target rules for targets named llama + +# Build rule for target. +llama: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama +.PHONY : llama + +# fast build rule for target. +llama/fast: + $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/build +.PHONY : llama/fast + +#============================================================================= +# Target rules for targets named build_info + +# Build rule for target. +build_info: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 build_info +.PHONY : build_info + +# fast build rule for target. +build_info/fast: + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/build +.PHONY : build_info/fast + +#============================================================================= +# Target rules for targets named common + +# Build rule for target. +common: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common +.PHONY : common + +# fast build rule for target. +common/fast: + $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/build +.PHONY : common/fast + +#============================================================================= +# Target rules for targets named test-tokenizer-0 + +# Build rule for target. +test-tokenizer-0: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-tokenizer-0 +.PHONY : test-tokenizer-0 + +# fast build rule for target. +test-tokenizer-0/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/build +.PHONY : test-tokenizer-0/fast + +#============================================================================= +# Target rules for targets named test-tokenizer-1-bpe + +# Build rule for target. +test-tokenizer-1-bpe: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-tokenizer-1-bpe +.PHONY : test-tokenizer-1-bpe + +# fast build rule for target. +test-tokenizer-1-bpe/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/build +.PHONY : test-tokenizer-1-bpe/fast + +#============================================================================= +# Target rules for targets named test-tokenizer-1-spm + +# Build rule for target. +test-tokenizer-1-spm: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-tokenizer-1-spm +.PHONY : test-tokenizer-1-spm + +# fast build rule for target. +test-tokenizer-1-spm/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/build +.PHONY : test-tokenizer-1-spm/fast + +#============================================================================= +# Target rules for targets named test-log + +# Build rule for target. +test-log: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-log +.PHONY : test-log + +# fast build rule for target. +test-log/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/build +.PHONY : test-log/fast + +#============================================================================= +# Target rules for targets named test-arg-parser + +# Build rule for target. +test-arg-parser: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-arg-parser +.PHONY : test-arg-parser + +# fast build rule for target. +test-arg-parser/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/build +.PHONY : test-arg-parser/fast + +#============================================================================= +# Target rules for targets named test-sampling + +# Build rule for target. +test-sampling: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-sampling +.PHONY : test-sampling + +# fast build rule for target. +test-sampling/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/build +.PHONY : test-sampling/fast + +#============================================================================= +# Target rules for targets named test-chat-template + +# Build rule for target. +test-chat-template: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-chat-template +.PHONY : test-chat-template + +# fast build rule for target. +test-chat-template/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/build +.PHONY : test-chat-template/fast + +#============================================================================= +# Target rules for targets named test-grammar-parser + +# Build rule for target. +test-grammar-parser: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-grammar-parser +.PHONY : test-grammar-parser + +# fast build rule for target. +test-grammar-parser/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/build +.PHONY : test-grammar-parser/fast + +#============================================================================= +# Target rules for targets named test-grammar-integration + +# Build rule for target. +test-grammar-integration: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-grammar-integration +.PHONY : test-grammar-integration + +# fast build rule for target. +test-grammar-integration/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/build +.PHONY : test-grammar-integration/fast + +#============================================================================= +# Target rules for targets named test-llama-grammar + +# Build rule for target. +test-llama-grammar: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-llama-grammar +.PHONY : test-llama-grammar + +# fast build rule for target. +test-llama-grammar/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/build +.PHONY : test-llama-grammar/fast + +#============================================================================= +# Target rules for targets named test-backend-ops + +# Build rule for target. +test-backend-ops: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-backend-ops +.PHONY : test-backend-ops + +# fast build rule for target. +test-backend-ops/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/build +.PHONY : test-backend-ops/fast + +#============================================================================= +# Target rules for targets named test-model-load-cancel + +# Build rule for target. +test-model-load-cancel: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-model-load-cancel +.PHONY : test-model-load-cancel + +# fast build rule for target. +test-model-load-cancel/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/build +.PHONY : test-model-load-cancel/fast + +#============================================================================= +# Target rules for targets named test-autorelease + +# Build rule for target. +test-autorelease: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-autorelease +.PHONY : test-autorelease + +# fast build rule for target. +test-autorelease/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/build +.PHONY : test-autorelease/fast + +#============================================================================= +# Target rules for targets named test-barrier + +# Build rule for target. +test-barrier: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-barrier +.PHONY : test-barrier + +# fast build rule for target. +test-barrier/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/build +.PHONY : test-barrier/fast + +#============================================================================= +# Target rules for targets named test-quantize-fns + +# Build rule for target. +test-quantize-fns: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-quantize-fns +.PHONY : test-quantize-fns + +# fast build rule for target. +test-quantize-fns/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/build +.PHONY : test-quantize-fns/fast + +#============================================================================= +# Target rules for targets named test-quantize-perf + +# Build rule for target. +test-quantize-perf: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-quantize-perf +.PHONY : test-quantize-perf + +# fast build rule for target. +test-quantize-perf/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/build +.PHONY : test-quantize-perf/fast + +#============================================================================= +# Target rules for targets named test-rope + +# Build rule for target. +test-rope: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-rope +.PHONY : test-rope + +# fast build rule for target. +test-rope/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/build +.PHONY : test-rope/fast + +#============================================================================= +# Target rules for targets named test-json-schema-to-grammar + +# Build rule for target. +test-json-schema-to-grammar: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-json-schema-to-grammar +.PHONY : test-json-schema-to-grammar + +# fast build rule for target. +test-json-schema-to-grammar/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/build +.PHONY : test-json-schema-to-grammar/fast + +#============================================================================= +# Target rules for targets named test-c + +# Build rule for target. +test-c: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test-c +.PHONY : test-c + +# fast build rule for target. +test-c/fast: + $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/build +.PHONY : test-c/fast + +#============================================================================= +# Target rules for targets named llama-batched-bench + +# Build rule for target. +llama-batched-bench: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-batched-bench +.PHONY : llama-batched-bench + +# fast build rule for target. +llama-batched-bench/fast: + $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build +.PHONY : llama-batched-bench/fast + +#============================================================================= +# Target rules for targets named llama-batched + +# Build rule for target. +llama-batched: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-batched +.PHONY : llama-batched + +# fast build rule for target. +llama-batched/fast: + $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/build +.PHONY : llama-batched/fast + +#============================================================================= +# Target rules for targets named llama-embedding + +# Build rule for target. +llama-embedding: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-embedding +.PHONY : llama-embedding + +# fast build rule for target. +llama-embedding/fast: + $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/build +.PHONY : llama-embedding/fast + +#============================================================================= +# Target rules for targets named llama-eval-callback + +# Build rule for target. +llama-eval-callback: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-eval-callback +.PHONY : llama-eval-callback + +# fast build rule for target. +llama-eval-callback/fast: + $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build +.PHONY : llama-eval-callback/fast + +#============================================================================= +# Target rules for targets named llama-gbnf-validator + +# Build rule for target. +llama-gbnf-validator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-gbnf-validator +.PHONY : llama-gbnf-validator + +# fast build rule for target. +llama-gbnf-validator/fast: + $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build +.PHONY : llama-gbnf-validator/fast + +#============================================================================= +# Target rules for targets named llama-gguf-hash + +# Build rule for target. +llama-gguf-hash: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-gguf-hash +.PHONY : llama-gguf-hash + +# fast build rule for target. +llama-gguf-hash/fast: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build +.PHONY : llama-gguf-hash/fast + +#============================================================================= +# Target rules for targets named xxhash + +# Build rule for target. +xxhash: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 xxhash +.PHONY : xxhash + +# fast build rule for target. +xxhash/fast: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/build +.PHONY : xxhash/fast + +#============================================================================= +# Target rules for targets named sha1 + +# Build rule for target. +sha1: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 sha1 +.PHONY : sha1 + +# fast build rule for target. +sha1/fast: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/build +.PHONY : sha1/fast + +#============================================================================= +# Target rules for targets named sha256 + +# Build rule for target. +sha256: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 sha256 +.PHONY : sha256 + +# fast build rule for target. +sha256/fast: + $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/build +.PHONY : sha256/fast + +#============================================================================= +# Target rules for targets named llama-gguf-split + +# Build rule for target. +llama-gguf-split: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-gguf-split +.PHONY : llama-gguf-split + +# fast build rule for target. +llama-gguf-split/fast: + $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build +.PHONY : llama-gguf-split/fast + +#============================================================================= +# Target rules for targets named llama-gguf + +# Build rule for target. +llama-gguf: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-gguf +.PHONY : llama-gguf + +# fast build rule for target. +llama-gguf/fast: + $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/build +.PHONY : llama-gguf/fast + +#============================================================================= +# Target rules for targets named llama-gritlm + +# Build rule for target. +llama-gritlm: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-gritlm +.PHONY : llama-gritlm + +# fast build rule for target. +llama-gritlm/fast: + $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/build +.PHONY : llama-gritlm/fast + +#============================================================================= +# Target rules for targets named llama-imatrix + +# Build rule for target. +llama-imatrix: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-imatrix +.PHONY : llama-imatrix + +# fast build rule for target. +llama-imatrix/fast: + $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/build +.PHONY : llama-imatrix/fast + +#============================================================================= +# Target rules for targets named llama-infill + +# Build rule for target. +llama-infill: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-infill +.PHONY : llama-infill + +# fast build rule for target. +llama-infill/fast: + $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/build +.PHONY : llama-infill/fast + +#============================================================================= +# Target rules for targets named llama-bench + +# Build rule for target. +llama-bench: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-bench +.PHONY : llama-bench + +# fast build rule for target. +llama-bench/fast: + $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/build +.PHONY : llama-bench/fast + +#============================================================================= +# Target rules for targets named llama-lookahead + +# Build rule for target. +llama-lookahead: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-lookahead +.PHONY : llama-lookahead + +# fast build rule for target. +llama-lookahead/fast: + $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/build +.PHONY : llama-lookahead/fast + +#============================================================================= +# Target rules for targets named llama-lookup + +# Build rule for target. +llama-lookup: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-lookup +.PHONY : llama-lookup + +# fast build rule for target. +llama-lookup/fast: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/build +.PHONY : llama-lookup/fast + +#============================================================================= +# Target rules for targets named llama-lookup-create + +# Build rule for target. +llama-lookup-create: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-lookup-create +.PHONY : llama-lookup-create + +# fast build rule for target. +llama-lookup-create/fast: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/build +.PHONY : llama-lookup-create/fast + +#============================================================================= +# Target rules for targets named llama-lookup-merge + +# Build rule for target. +llama-lookup-merge: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-lookup-merge +.PHONY : llama-lookup-merge + +# fast build rule for target. +llama-lookup-merge/fast: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/build +.PHONY : llama-lookup-merge/fast + +#============================================================================= +# Target rules for targets named llama-lookup-stats + +# Build rule for target. +llama-lookup-stats: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-lookup-stats +.PHONY : llama-lookup-stats + +# fast build rule for target. +llama-lookup-stats/fast: + $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/build +.PHONY : llama-lookup-stats/fast + +#============================================================================= +# Target rules for targets named llama-cli + +# Build rule for target. +llama-cli: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-cli +.PHONY : llama-cli + +# fast build rule for target. +llama-cli/fast: + $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/build +.PHONY : llama-cli/fast + +#============================================================================= +# Target rules for targets named llama-parallel + +# Build rule for target. +llama-parallel: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-parallel +.PHONY : llama-parallel + +# fast build rule for target. +llama-parallel/fast: + $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/build +.PHONY : llama-parallel/fast + +#============================================================================= +# Target rules for targets named llama-passkey + +# Build rule for target. +llama-passkey: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-passkey +.PHONY : llama-passkey + +# fast build rule for target. +llama-passkey/fast: + $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/build +.PHONY : llama-passkey/fast + +#============================================================================= +# Target rules for targets named llama-perplexity + +# Build rule for target. +llama-perplexity: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-perplexity +.PHONY : llama-perplexity + +# fast build rule for target. +llama-perplexity/fast: + $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/build +.PHONY : llama-perplexity/fast + +#============================================================================= +# Target rules for targets named llama-quantize + +# Build rule for target. +llama-quantize: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-quantize +.PHONY : llama-quantize + +# fast build rule for target. +llama-quantize/fast: + $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/build +.PHONY : llama-quantize/fast + +#============================================================================= +# Target rules for targets named llama-retrieval + +# Build rule for target. +llama-retrieval: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-retrieval +.PHONY : llama-retrieval + +# fast build rule for target. +llama-retrieval/fast: + $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/build +.PHONY : llama-retrieval/fast + +#============================================================================= +# Target rules for targets named llama-server + +# Build rule for target. +llama-server: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-server +.PHONY : llama-server + +# fast build rule for target. +llama-server/fast: + $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/build +.PHONY : llama-server/fast + +#============================================================================= +# Target rules for targets named llama-save-load-state + +# Build rule for target. +llama-save-load-state: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-save-load-state +.PHONY : llama-save-load-state + +# fast build rule for target. +llama-save-load-state/fast: + $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build +.PHONY : llama-save-load-state/fast + +#============================================================================= +# Target rules for targets named llama-run + +# Build rule for target. +llama-run: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-run +.PHONY : llama-run + +# fast build rule for target. +llama-run/fast: + $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/build +.PHONY : llama-run/fast + +#============================================================================= +# Target rules for targets named llama-simple + +# Build rule for target. +llama-simple: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-simple +.PHONY : llama-simple + +# fast build rule for target. +llama-simple/fast: + $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/build +.PHONY : llama-simple/fast + +#============================================================================= +# Target rules for targets named llama-simple-chat + +# Build rule for target. +llama-simple-chat: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-simple-chat +.PHONY : llama-simple-chat + +# fast build rule for target. +llama-simple-chat/fast: + $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build +.PHONY : llama-simple-chat/fast + +#============================================================================= +# Target rules for targets named llama-speculative + +# Build rule for target. +llama-speculative: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-speculative +.PHONY : llama-speculative + +# fast build rule for target. +llama-speculative/fast: + $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/build +.PHONY : llama-speculative/fast + +#============================================================================= +# Target rules for targets named llama-speculative-simple + +# Build rule for target. +llama-speculative-simple: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-speculative-simple +.PHONY : llama-speculative-simple + +# fast build rule for target. +llama-speculative-simple/fast: + $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build +.PHONY : llama-speculative-simple/fast + +#============================================================================= +# Target rules for targets named llama-tokenize + +# Build rule for target. +llama-tokenize: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-tokenize +.PHONY : llama-tokenize + +# fast build rule for target. +llama-tokenize/fast: + $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/build +.PHONY : llama-tokenize/fast + +#============================================================================= +# Target rules for targets named llama-convert-llama2c-to-ggml + +# Build rule for target. +llama-convert-llama2c-to-ggml: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-convert-llama2c-to-ggml +.PHONY : llama-convert-llama2c-to-ggml + +# fast build rule for target. +llama-convert-llama2c-to-ggml/fast: + $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build +.PHONY : llama-convert-llama2c-to-ggml/fast + +#============================================================================= +# Target rules for targets named llama-cvector-generator + +# Build rule for target. +llama-cvector-generator: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-cvector-generator +.PHONY : llama-cvector-generator + +# fast build rule for target. +llama-cvector-generator/fast: + $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build +.PHONY : llama-cvector-generator/fast + +#============================================================================= +# Target rules for targets named llama-export-lora + +# Build rule for target. +llama-export-lora: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-export-lora +.PHONY : llama-export-lora + +# fast build rule for target. +llama-export-lora/fast: + $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/build +.PHONY : llama-export-lora/fast + +#============================================================================= +# Target rules for targets named llama-quantize-stats + +# Build rule for target. +llama-quantize-stats: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-quantize-stats +.PHONY : llama-quantize-stats + +# fast build rule for target. +llama-quantize-stats/fast: + $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build +.PHONY : llama-quantize-stats/fast + +#============================================================================= +# Target rules for targets named llava + +# Build rule for target. +llava: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llava +.PHONY : llava + +# fast build rule for target. +llava/fast: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/build +.PHONY : llava/fast + +#============================================================================= +# Target rules for targets named llava_static + +# Build rule for target. +llava_static: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llava_static +.PHONY : llava_static + +# fast build rule for target. +llava_static/fast: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_static.dir/build.make examples/llava/CMakeFiles/llava_static.dir/build +.PHONY : llava_static/fast + +#============================================================================= +# Target rules for targets named llava_shared + +# Build rule for target. +llava_shared: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llava_shared +.PHONY : llava_shared + +# fast build rule for target. +llava_shared/fast: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_shared.dir/build.make examples/llava/CMakeFiles/llava_shared.dir/build +.PHONY : llava_shared/fast + +#============================================================================= +# Target rules for targets named llama-llava-cli + +# Build rule for target. +llama-llava-cli: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-llava-cli +.PHONY : llama-llava-cli + +# fast build rule for target. +llama-llava-cli/fast: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/build +.PHONY : llama-llava-cli/fast + +#============================================================================= +# Target rules for targets named llama-minicpmv-cli + +# Build rule for target. +llama-minicpmv-cli: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-minicpmv-cli +.PHONY : llama-minicpmv-cli + +# fast build rule for target. +llama-minicpmv-cli/fast: + $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build +.PHONY : llama-minicpmv-cli/fast + +#============================================================================= +# Target rules for targets named llama-vdot + +# Build rule for target. +llama-vdot: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-vdot +.PHONY : llama-vdot + +# fast build rule for target. +llama-vdot/fast: + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/build +.PHONY : llama-vdot/fast + +#============================================================================= +# Target rules for targets named llama-q8dot + +# Build rule for target. +llama-q8dot: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 llama-q8dot +.PHONY : llama-q8dot + +# fast build rule for target. +llama-q8dot/fast: + $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/build +.PHONY : llama-q8dot/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... Continuous" + @echo "... ContinuousBuild" + @echo "... ContinuousConfigure" + @echo "... ContinuousCoverage" + @echo "... ContinuousMemCheck" + @echo "... ContinuousStart" + @echo "... ContinuousSubmit" + @echo "... ContinuousTest" + @echo "... ContinuousUpdate" + @echo "... Experimental" + @echo "... ExperimentalBuild" + @echo "... ExperimentalConfigure" + @echo "... ExperimentalCoverage" + @echo "... ExperimentalMemCheck" + @echo "... ExperimentalStart" + @echo "... ExperimentalSubmit" + @echo "... ExperimentalTest" + @echo "... ExperimentalUpdate" + @echo "... Nightly" + @echo "... NightlyBuild" + @echo "... NightlyConfigure" + @echo "... NightlyCoverage" + @echo "... NightlyMemCheck" + @echo "... NightlyMemoryCheck" + @echo "... NightlyStart" + @echo "... NightlySubmit" + @echo "... NightlyTest" + @echo "... NightlyUpdate" + @echo "... build_info" + @echo "... common" + @echo "... ggml" + @echo "... ggml-base" + @echo "... ggml-cpu" + @echo "... llama" + @echo "... llama-batched" + @echo "... llama-batched-bench" + @echo "... llama-bench" + @echo "... llama-cli" + @echo "... llama-convert-llama2c-to-ggml" + @echo "... llama-cvector-generator" + @echo "... llama-embedding" + @echo "... llama-eval-callback" + @echo "... llama-export-lora" + @echo "... llama-gbnf-validator" + @echo "... llama-gguf" + @echo "... llama-gguf-hash" + @echo "... llama-gguf-split" + @echo "... llama-gritlm" + @echo "... llama-imatrix" + @echo "... llama-infill" + @echo "... llama-llava-cli" + @echo "... llama-lookahead" + @echo "... llama-lookup" + @echo "... llama-lookup-create" + @echo "... llama-lookup-merge" + @echo "... llama-lookup-stats" + @echo "... llama-minicpmv-cli" + @echo "... llama-parallel" + @echo "... llama-passkey" + @echo "... llama-perplexity" + @echo "... llama-q8dot" + @echo "... llama-quantize" + @echo "... llama-quantize-stats" + @echo "... llama-retrieval" + @echo "... llama-run" + @echo "... llama-save-load-state" + @echo "... llama-server" + @echo "... llama-simple" + @echo "... llama-simple-chat" + @echo "... llama-speculative" + @echo "... llama-speculative-simple" + @echo "... llama-tokenize" + @echo "... llama-vdot" + @echo "... llava" + @echo "... llava_shared" + @echo "... llava_static" + @echo "... sha1" + @echo "... sha256" + @echo "... test-arg-parser" + @echo "... test-autorelease" + @echo "... test-backend-ops" + @echo "... test-barrier" + @echo "... test-c" + @echo "... test-chat-template" + @echo "... test-grammar-integration" + @echo "... test-grammar-parser" + @echo "... test-json-schema-to-grammar" + @echo "... test-llama-grammar" + @echo "... test-log" + @echo "... test-model-load-cancel" + @echo "... test-quantize-fns" + @echo "... test-quantize-perf" + @echo "... test-rope" + @echo "... test-sampling" + @echo "... test-tokenizer-0" + @echo "... test-tokenizer-1-bpe" + @echo "... test-tokenizer-1-spm" + @echo "... xxhash" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/bin/llama-batched b/llama.cpp/build/bin/llama-batched new file mode 100644 index 0000000000000000000000000000000000000000..a422b9aa9abbd32077a1cb17c3563ec10f39cc36 Binary files /dev/null and b/llama.cpp/build/bin/llama-batched differ diff --git a/llama.cpp/build/bin/llama-batched-bench b/llama.cpp/build/bin/llama-batched-bench new file mode 100644 index 0000000000000000000000000000000000000000..2b41c9550b22601a2649cf2deccec11364d7bafb Binary files /dev/null and b/llama.cpp/build/bin/llama-batched-bench differ diff --git a/llama.cpp/build/bin/llama-bench b/llama.cpp/build/bin/llama-bench new file mode 100644 index 0000000000000000000000000000000000000000..93757c085f41f3634cc6caec2053a50f5696ba5b Binary files /dev/null and b/llama.cpp/build/bin/llama-bench differ diff --git a/llama.cpp/build/bin/llama-cli b/llama.cpp/build/bin/llama-cli new file mode 100644 index 0000000000000000000000000000000000000000..33bd1ec66b4a171aa1a6eed240ab8c01d5bc77dc Binary files /dev/null and b/llama.cpp/build/bin/llama-cli differ diff --git a/llama.cpp/build/bin/llama-convert-llama2c-to-ggml b/llama.cpp/build/bin/llama-convert-llama2c-to-ggml new file mode 100644 index 0000000000000000000000000000000000000000..18aceedfad98c6d08efb2ac1d90640b1bd572df0 Binary files /dev/null and b/llama.cpp/build/bin/llama-convert-llama2c-to-ggml differ diff --git a/llama.cpp/build/bin/llama-cvector-generator b/llama.cpp/build/bin/llama-cvector-generator new file mode 100644 index 0000000000000000000000000000000000000000..c5731747d0c07a86abdc7d5b2e3305a8c7dbfcf9 Binary files /dev/null and b/llama.cpp/build/bin/llama-cvector-generator differ diff --git a/llama.cpp/build/bin/llama-embedding b/llama.cpp/build/bin/llama-embedding new file mode 100644 index 0000000000000000000000000000000000000000..481528a7ac6b66c1f80c93314483aafbcae3dd65 Binary files /dev/null and b/llama.cpp/build/bin/llama-embedding differ diff --git a/llama.cpp/build/bin/llama-eval-callback b/llama.cpp/build/bin/llama-eval-callback new file mode 100644 index 0000000000000000000000000000000000000000..36fdd151504ff18102672f09bb2f77aa471ae6a6 Binary files /dev/null and b/llama.cpp/build/bin/llama-eval-callback differ diff --git a/llama.cpp/build/bin/llama-export-lora b/llama.cpp/build/bin/llama-export-lora new file mode 100644 index 0000000000000000000000000000000000000000..95605b3aeff13d205b18ac773073886715c9d15a --- /dev/null +++ b/llama.cpp/build/bin/llama-export-lora @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65da3b493b0dcb88153016d732964416012afd9685b408fdb9c1bc2da50ee444 +size 1000872 diff --git a/llama.cpp/build/bin/llama-gbnf-validator b/llama.cpp/build/bin/llama-gbnf-validator new file mode 100644 index 0000000000000000000000000000000000000000..022e245b16e07dd2390aa59646fcae387a0306ed Binary files /dev/null and b/llama.cpp/build/bin/llama-gbnf-validator differ diff --git a/llama.cpp/build/bin/llama-gguf b/llama.cpp/build/bin/llama-gguf new file mode 100644 index 0000000000000000000000000000000000000000..5ccb68011dbcec86ef23dad62be58b838eac3b76 Binary files /dev/null and b/llama.cpp/build/bin/llama-gguf differ diff --git a/llama.cpp/build/bin/llama-gguf-hash b/llama.cpp/build/bin/llama-gguf-hash new file mode 100644 index 0000000000000000000000000000000000000000..75e9244e1bb79f3dbf8f9ba7e20b265e639dcbcf Binary files /dev/null and b/llama.cpp/build/bin/llama-gguf-hash differ diff --git a/llama.cpp/build/bin/llama-gguf-split b/llama.cpp/build/bin/llama-gguf-split new file mode 100644 index 0000000000000000000000000000000000000000..248f95203219993ee4bd6cd9567f0c00316d5534 Binary files /dev/null and b/llama.cpp/build/bin/llama-gguf-split differ diff --git a/llama.cpp/build/bin/llama-gritlm b/llama.cpp/build/bin/llama-gritlm new file mode 100644 index 0000000000000000000000000000000000000000..d1712b8c5137afa85cbbf1e7bbe9a775939a8b1d Binary files /dev/null and b/llama.cpp/build/bin/llama-gritlm differ diff --git a/llama.cpp/build/bin/llama-imatrix b/llama.cpp/build/bin/llama-imatrix new file mode 100644 index 0000000000000000000000000000000000000000..adb362705fd46253d60e4e5547df228207a81d36 --- /dev/null +++ b/llama.cpp/build/bin/llama-imatrix @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67c621fb0535aeefa92ae4c6a2bcf669012f98e84218a3a0183a9bf44ca8330f +size 1001776 diff --git a/llama.cpp/build/bin/llama-infill b/llama.cpp/build/bin/llama-infill new file mode 100644 index 0000000000000000000000000000000000000000..254bfd204e3fb98f1a3f28019d35269337d39b30 Binary files /dev/null and b/llama.cpp/build/bin/llama-infill differ diff --git a/llama.cpp/build/bin/llama-llava-cli b/llama.cpp/build/bin/llama-llava-cli new file mode 100644 index 0000000000000000000000000000000000000000..30bd1f21e2bdbbde51f46450f497b75ead20e7ae --- /dev/null +++ b/llama.cpp/build/bin/llama-llava-cli @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85f0267def8d9fed3a50aaade21cc8437fed0715ba5113601ab46f82ef0fd4da +size 1259296 diff --git a/llama.cpp/build/bin/llama-lookahead b/llama.cpp/build/bin/llama-lookahead new file mode 100644 index 0000000000000000000000000000000000000000..33d3270b2aa2f003614c5b7d3b530d4978e39c1d Binary files /dev/null and b/llama.cpp/build/bin/llama-lookahead differ diff --git a/llama.cpp/build/bin/llama-lookup b/llama.cpp/build/bin/llama-lookup new file mode 100644 index 0000000000000000000000000000000000000000..3861c5cb2bf234075ac65d588eda17989b1ce78b Binary files /dev/null and b/llama.cpp/build/bin/llama-lookup differ diff --git a/llama.cpp/build/bin/llama-lookup-create b/llama.cpp/build/bin/llama-lookup-create new file mode 100644 index 0000000000000000000000000000000000000000..aa36c04f1c346514f056437594a23415522781fa Binary files /dev/null and b/llama.cpp/build/bin/llama-lookup-create differ diff --git a/llama.cpp/build/bin/llama-lookup-merge b/llama.cpp/build/bin/llama-lookup-merge new file mode 100644 index 0000000000000000000000000000000000000000..9dbd2ccdacd3fcb6c2c5ec7018448b47861aba5a Binary files /dev/null and b/llama.cpp/build/bin/llama-lookup-merge differ diff --git a/llama.cpp/build/bin/llama-lookup-stats b/llama.cpp/build/bin/llama-lookup-stats new file mode 100644 index 0000000000000000000000000000000000000000..3134a5e44fb30c6af9e83568eaf7cb3471597d4d Binary files /dev/null and b/llama.cpp/build/bin/llama-lookup-stats differ diff --git a/llama.cpp/build/bin/llama-minicpmv-cli b/llama.cpp/build/bin/llama-minicpmv-cli new file mode 100644 index 0000000000000000000000000000000000000000..abafcdbb0c1b0c26bf76f88289cd704c13c00906 --- /dev/null +++ b/llama.cpp/build/bin/llama-minicpmv-cli @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c102408ca54c6f7b3ec001890a266a38026a7e7fdc087315b369eb746d4d78e1 +size 1254688 diff --git a/llama.cpp/build/bin/llama-parallel b/llama.cpp/build/bin/llama-parallel new file mode 100644 index 0000000000000000000000000000000000000000..c999358076777c8b29563a4ac1d41ee824edf9c2 Binary files /dev/null and b/llama.cpp/build/bin/llama-parallel differ diff --git a/llama.cpp/build/bin/llama-passkey b/llama.cpp/build/bin/llama-passkey new file mode 100644 index 0000000000000000000000000000000000000000..a50e975503c88004cae24c161fe69b6344daa5e4 Binary files /dev/null and b/llama.cpp/build/bin/llama-passkey differ diff --git a/llama.cpp/build/bin/llama-perplexity b/llama.cpp/build/bin/llama-perplexity new file mode 100644 index 0000000000000000000000000000000000000000..f2b02af5a014983e06e3481c9ce37272f7d58990 --- /dev/null +++ b/llama.cpp/build/bin/llama-perplexity @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:986f151fa3eaf4e9a00f439b00260ba3faa762d2c9f6071edff97a38ea7d500d +size 1056576 diff --git a/llama.cpp/build/bin/llama-q8dot b/llama.cpp/build/bin/llama-q8dot new file mode 100644 index 0000000000000000000000000000000000000000..80778107ca31cf32803f32e41d8ce1d356e208b9 Binary files /dev/null and b/llama.cpp/build/bin/llama-q8dot differ diff --git a/llama.cpp/build/bin/llama-quantize b/llama.cpp/build/bin/llama-quantize new file mode 100644 index 0000000000000000000000000000000000000000..a3fc8b31b4e94acb1a4e30a6ba817a925c40f732 Binary files /dev/null and b/llama.cpp/build/bin/llama-quantize differ diff --git a/llama.cpp/build/bin/llama-quantize-stats b/llama.cpp/build/bin/llama-quantize-stats new file mode 100644 index 0000000000000000000000000000000000000000..5f9cb8306091cda68053dc3ff9c904a5d691fb34 Binary files /dev/null and b/llama.cpp/build/bin/llama-quantize-stats differ diff --git a/llama.cpp/build/bin/llama-retrieval b/llama.cpp/build/bin/llama-retrieval new file mode 100644 index 0000000000000000000000000000000000000000..2fec6b083fb082cc65942805e8f98a48feac4548 Binary files /dev/null and b/llama.cpp/build/bin/llama-retrieval differ diff --git a/llama.cpp/build/bin/llama-run b/llama.cpp/build/bin/llama-run new file mode 100644 index 0000000000000000000000000000000000000000..13d6137c3acfa348fdd372a2911fb40dc07334e5 Binary files /dev/null and b/llama.cpp/build/bin/llama-run differ diff --git a/llama.cpp/build/bin/llama-save-load-state b/llama.cpp/build/bin/llama-save-load-state new file mode 100644 index 0000000000000000000000000000000000000000..bb5019b649b5c353b0cd8bffa08946c273df858d Binary files /dev/null and b/llama.cpp/build/bin/llama-save-load-state differ diff --git a/llama.cpp/build/bin/llama-server b/llama.cpp/build/bin/llama-server new file mode 100644 index 0000000000000000000000000000000000000000..417143c0d4518df0d59a102762c459606adc51cf --- /dev/null +++ b/llama.cpp/build/bin/llama-server @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4394b7f33164ecff88ca6491e99d60de063d722b54c5853ae3d1c4bfe68a3ab9 +size 3151440 diff --git a/llama.cpp/build/bin/llama-simple b/llama.cpp/build/bin/llama-simple new file mode 100644 index 0000000000000000000000000000000000000000..d513cb8d035f84d2661158b04a9bf59e570b20d3 Binary files /dev/null and b/llama.cpp/build/bin/llama-simple differ diff --git a/llama.cpp/build/bin/llama-simple-chat b/llama.cpp/build/bin/llama-simple-chat new file mode 100644 index 0000000000000000000000000000000000000000..e6f40c038eb24487ddb2b5e0e0d611eb34db6517 Binary files /dev/null and b/llama.cpp/build/bin/llama-simple-chat differ diff --git a/llama.cpp/build/bin/llama-speculative b/llama.cpp/build/bin/llama-speculative new file mode 100644 index 0000000000000000000000000000000000000000..d15bbe4eda7b8523ed4b706d500ce00b0097775e Binary files /dev/null and b/llama.cpp/build/bin/llama-speculative differ diff --git a/llama.cpp/build/bin/llama-speculative-simple b/llama.cpp/build/bin/llama-speculative-simple new file mode 100644 index 0000000000000000000000000000000000000000..004ed9f7eb053fd34fa1bac5f3488f35168aa699 Binary files /dev/null and b/llama.cpp/build/bin/llama-speculative-simple differ diff --git a/llama.cpp/build/bin/llama-tokenize b/llama.cpp/build/bin/llama-tokenize new file mode 100644 index 0000000000000000000000000000000000000000..3f6c8d9020cb50c57319f417bb3e86236f3360b5 Binary files /dev/null and b/llama.cpp/build/bin/llama-tokenize differ diff --git a/llama.cpp/build/bin/llama-vdot b/llama.cpp/build/bin/llama-vdot new file mode 100644 index 0000000000000000000000000000000000000000..208398a14deb8e69e0e2fd4901749d914aa10499 Binary files /dev/null and b/llama.cpp/build/bin/llama-vdot differ diff --git a/llama.cpp/build/bin/test-arg-parser b/llama.cpp/build/bin/test-arg-parser new file mode 100644 index 0000000000000000000000000000000000000000..39232f557a17bc716176e05e3885d1c92ddebcfe Binary files /dev/null and b/llama.cpp/build/bin/test-arg-parser differ diff --git a/llama.cpp/build/bin/test-autorelease b/llama.cpp/build/bin/test-autorelease new file mode 100644 index 0000000000000000000000000000000000000000..03a16d4365c48c10b6b034aa66c57abf94da5838 Binary files /dev/null and b/llama.cpp/build/bin/test-autorelease differ diff --git a/llama.cpp/build/bin/test-backend-ops b/llama.cpp/build/bin/test-backend-ops new file mode 100644 index 0000000000000000000000000000000000000000..72b4fd36a6e4a7c2f5d5581208b4a2031f161440 Binary files /dev/null and b/llama.cpp/build/bin/test-backend-ops differ diff --git a/llama.cpp/build/bin/test-barrier b/llama.cpp/build/bin/test-barrier new file mode 100644 index 0000000000000000000000000000000000000000..ad8f099028d36e65f254a8de8b09a9ac57869a96 Binary files /dev/null and b/llama.cpp/build/bin/test-barrier differ diff --git a/llama.cpp/build/bin/test-c b/llama.cpp/build/bin/test-c new file mode 100644 index 0000000000000000000000000000000000000000..3eedb40003cdec39ab0f137949840d3f451e3398 Binary files /dev/null and b/llama.cpp/build/bin/test-c differ diff --git a/llama.cpp/build/bin/test-chat-template b/llama.cpp/build/bin/test-chat-template new file mode 100644 index 0000000000000000000000000000000000000000..67c030167c4c13657ee92162e242ed7d006845db Binary files /dev/null and b/llama.cpp/build/bin/test-chat-template differ diff --git a/llama.cpp/build/bin/test-grammar-integration b/llama.cpp/build/bin/test-grammar-integration new file mode 100644 index 0000000000000000000000000000000000000000..149094b367fa1bd3a4222ad9d62af20eae1c91e7 Binary files /dev/null and b/llama.cpp/build/bin/test-grammar-integration differ diff --git a/llama.cpp/build/bin/test-grammar-parser b/llama.cpp/build/bin/test-grammar-parser new file mode 100644 index 0000000000000000000000000000000000000000..49e33b13249f54a619ee9e288f3deec71419bd5d Binary files /dev/null and b/llama.cpp/build/bin/test-grammar-parser differ diff --git a/llama.cpp/build/bin/test-json-schema-to-grammar b/llama.cpp/build/bin/test-json-schema-to-grammar new file mode 100644 index 0000000000000000000000000000000000000000..ce68c3a3e2092ed4007e1cd276b1af1872282bc8 Binary files /dev/null and b/llama.cpp/build/bin/test-json-schema-to-grammar differ diff --git a/llama.cpp/build/bin/test-llama-grammar b/llama.cpp/build/bin/test-llama-grammar new file mode 100644 index 0000000000000000000000000000000000000000..fb21c5dcced780c82f3bfa983c2745eab90d5f48 Binary files /dev/null and b/llama.cpp/build/bin/test-llama-grammar differ diff --git a/llama.cpp/build/bin/test-log b/llama.cpp/build/bin/test-log new file mode 100644 index 0000000000000000000000000000000000000000..9df56e39092443448cfa5f9372768a8bf5ef578c Binary files /dev/null and b/llama.cpp/build/bin/test-log differ diff --git a/llama.cpp/build/bin/test-model-load-cancel b/llama.cpp/build/bin/test-model-load-cancel new file mode 100644 index 0000000000000000000000000000000000000000..ccf7c3e3f88e585e9e32fd5f366592b3a6c84131 Binary files /dev/null and b/llama.cpp/build/bin/test-model-load-cancel differ diff --git a/llama.cpp/build/bin/test-quantize-fns b/llama.cpp/build/bin/test-quantize-fns new file mode 100644 index 0000000000000000000000000000000000000000..942f9445ce88d8ec9e02d4182ce7792f10816aff Binary files /dev/null and b/llama.cpp/build/bin/test-quantize-fns differ diff --git a/llama.cpp/build/bin/test-quantize-perf b/llama.cpp/build/bin/test-quantize-perf new file mode 100644 index 0000000000000000000000000000000000000000..b59a0b330fc3b43bd91ad0a0678939beeff3dd8a Binary files /dev/null and b/llama.cpp/build/bin/test-quantize-perf differ diff --git a/llama.cpp/build/bin/test-rope b/llama.cpp/build/bin/test-rope new file mode 100644 index 0000000000000000000000000000000000000000..f8f0eed7c5230e2de72252460815203bb37827cd Binary files /dev/null and b/llama.cpp/build/bin/test-rope differ diff --git a/llama.cpp/build/bin/test-sampling b/llama.cpp/build/bin/test-sampling new file mode 100644 index 0000000000000000000000000000000000000000..0b99064436df4c90f12d9e1c1e97254b23a7434d Binary files /dev/null and b/llama.cpp/build/bin/test-sampling differ diff --git a/llama.cpp/build/bin/test-tokenizer-0 b/llama.cpp/build/bin/test-tokenizer-0 new file mode 100644 index 0000000000000000000000000000000000000000..65433aed131868a1e20996d2479551624694182a Binary files /dev/null and b/llama.cpp/build/bin/test-tokenizer-0 differ diff --git a/llama.cpp/build/bin/test-tokenizer-1-bpe b/llama.cpp/build/bin/test-tokenizer-1-bpe new file mode 100644 index 0000000000000000000000000000000000000000..0aa5d85eb1a00a0a05e1c42fc9f240813671e9c6 Binary files /dev/null and b/llama.cpp/build/bin/test-tokenizer-1-bpe differ diff --git a/llama.cpp/build/bin/test-tokenizer-1-spm b/llama.cpp/build/bin/test-tokenizer-1-spm new file mode 100644 index 0000000000000000000000000000000000000000..0be5b87f6015dd6404de20bb1f0f97f41242654a Binary files /dev/null and b/llama.cpp/build/bin/test-tokenizer-1-spm differ diff --git a/llama.cpp/build/cmake_install.cmake b/llama.cpp/build/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a027ae3188537b16e4a24d8daa474b593c1f8b3c --- /dev/null +++ b/llama.cpp/build/cmake_install.cmake @@ -0,0 +1,129 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/cmake_install.cmake") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/libllama.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllama.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE FILE FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/include/llama.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/include/llama-cpp.h" + ) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/cmake/llama" TYPE FILE FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/llama-config.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/llama-version.cmake" + ) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE FILE PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/convert_hf_to_gguf.py") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/llama.pc") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/cmake_install.cmake") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/llama.cpp/build/common/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/common/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/DependInfo.cmake b/llama.cpp/build/common/CMakeFiles/build_info.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..75cca75ec61841dc029c477a370664252c8c34e0 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp" "common/CMakeFiles/build_info.dir/build-info.cpp.o" "gcc" "common/CMakeFiles/build_info.dir/build-info.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o b/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..efbfe0a3f8f512286376a415103f049c7d1e30ef Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o.d b/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..84b40edbb9e73fc4d014880de7aed220b9a51ec2 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o.d @@ -0,0 +1,3 @@ +common/CMakeFiles/build_info.dir/build-info.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp \ + /usr/include/stdc-predef.h diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/build.make b/llama.cpp/build/common/CMakeFiles/build_info.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..8cb849912b617c691d1d3bedb6cbebb9e0205ce0 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/build.make @@ -0,0 +1,106 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include common/CMakeFiles/build_info.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include common/CMakeFiles/build_info.dir/compiler_depend.make + +# Include the progress variables for this target. +include common/CMakeFiles/build_info.dir/progress.make + +# Include the compile flags for this target's objects. +include common/CMakeFiles/build_info.dir/flags.make + +../common/build-info.cpp: ../common/build-info.cpp.in +../common/build-info.cpp: ../.git/index + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Generating build details from Git" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" && /usr/bin/cmake -DMSVC= -DCMAKE_C_COMPILER_VERSION=11.4.0 -DCMAKE_C_COMPILER_ID=GNU -DCMAKE_VS_PLATFORM_NAME= -DCMAKE_C_COMPILER=/usr/bin/cc -P "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/cmake/build-info-gen-cpp.cmake" + +common/CMakeFiles/build_info.dir/build-info.cpp.o: common/CMakeFiles/build_info.dir/flags.make +common/CMakeFiles/build_info.dir/build-info.cpp.o: ../common/build-info.cpp +common/CMakeFiles/build_info.dir/build-info.cpp.o: common/CMakeFiles/build_info.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object common/CMakeFiles/build_info.dir/build-info.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/build_info.dir/build-info.cpp.o -MF CMakeFiles/build_info.dir/build-info.cpp.o.d -o CMakeFiles/build_info.dir/build-info.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp" + +common/CMakeFiles/build_info.dir/build-info.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/build_info.dir/build-info.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp" > CMakeFiles/build_info.dir/build-info.cpp.i + +common/CMakeFiles/build_info.dir/build-info.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/build_info.dir/build-info.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp" -o CMakeFiles/build_info.dir/build-info.cpp.s + +build_info: common/CMakeFiles/build_info.dir/build-info.cpp.o +build_info: common/CMakeFiles/build_info.dir/build.make +.PHONY : build_info + +# Rule to build all files generated by this target. +common/CMakeFiles/build_info.dir/build: build_info +.PHONY : common/CMakeFiles/build_info.dir/build + +common/CMakeFiles/build_info.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && $(CMAKE_COMMAND) -P CMakeFiles/build_info.dir/cmake_clean.cmake +.PHONY : common/CMakeFiles/build_info.dir/clean + +common/CMakeFiles/build_info.dir/depend: ../common/build-info.cpp + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/build_info.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : common/CMakeFiles/build_info.dir/depend + diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/cmake_clean.cmake b/llama.cpp/build/common/CMakeFiles/build_info.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e40b51b34598c237ca4bc6a2d6064ad64bf39b6c --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "../../common/build-info.cpp" + "CMakeFiles/build_info.dir/build-info.cpp.o" + "CMakeFiles/build_info.dir/build-info.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/build_info.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/compiler_depend.make b/llama.cpp/build/common/CMakeFiles/build_info.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b89045d0f1e92f3679f3af63b0547a56eacc45f0 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for build_info. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/compiler_depend.ts b/llama.cpp/build/common/CMakeFiles/build_info.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0c5a0c1428e89236b7fb20f86c8301963a269bfa --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for build_info. diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/depend.make b/llama.cpp/build/common/CMakeFiles/build_info.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4866de75a8be4d7d8688ac382d8c64a082e756e2 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for build_info. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/flags.make b/llama.cpp/build/common/CMakeFiles/build_info.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..5a1077715a540c3f50d54732dd54c4f8a6761334 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = + +CXX_INCLUDES = + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/common/CMakeFiles/build_info.dir/progress.make b/llama.cpp/build/common/CMakeFiles/build_info.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..2271fbb3764b29d42d2ae77bf68438ca43287d97 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/build_info.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 1 + diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake b/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..39e372ab83443a00e4cfd53b29fa78e2ff9a0f57 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake @@ -0,0 +1,30 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp" "common/CMakeFiles/common.dir/arg.cpp.o" "gcc" "common/CMakeFiles/common.dir/arg.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp" "common/CMakeFiles/common.dir/common.cpp.o" "gcc" "common/CMakeFiles/common.dir/common.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp" "common/CMakeFiles/common.dir/console.cpp.o" "gcc" "common/CMakeFiles/common.dir/console.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp" "common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o" "gcc" "common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp" "common/CMakeFiles/common.dir/log.cpp.o" "gcc" "common/CMakeFiles/common.dir/log.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp" "common/CMakeFiles/common.dir/ngram-cache.cpp.o" "gcc" "common/CMakeFiles/common.dir/ngram-cache.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp" "common/CMakeFiles/common.dir/sampling.cpp.o" "gcc" "common/CMakeFiles/common.dir/sampling.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp" "common/CMakeFiles/common.dir/speculative.cpp.o" "gcc" "common/CMakeFiles/common.dir/speculative.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/arg.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/arg.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..355fdfa775e5af7be5990e31a82508fab4df7f89 Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/arg.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/arg.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/arg.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ab5435d03da80a18fead307f2d057ecaacd368af --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/arg.cpp.o.d @@ -0,0 +1,289 @@ +common/CMakeFiles/common.dir/arg.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cstdarg \ + /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/iterator \ + /usr/include/c++/11/bits/stream_iterator.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h /usr/include/c++/11/ctime \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/bits/parse_numbers.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json.hpp \ + /usr/include/c++/11/cstddef /usr/include/c++/11/forward_list \ + /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/valarray \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/valarray_array.h \ + /usr/include/c++/11/bits/valarray_array.tcc \ + /usr/include/c++/11/bits/valarray_before.h \ + /usr/include/c++/11/bits/slice_array.h \ + /usr/include/c++/11/bits/valarray_after.h \ + /usr/include/c++/11/bits/gslice.h \ + /usr/include/c++/11/bits/gslice_array.h \ + /usr/include/c++/11/bits/mask_array.h \ + /usr/include/c++/11/bits/indirect_array.h /usr/include/c++/11/version \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/iomanip \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/numeric /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/any diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/build.make b/llama.cpp/build/common/CMakeFiles/common.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..62725c37b8a66b7564ba5cf260e02c9dba5e4ee7 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/build.make @@ -0,0 +1,225 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include common/CMakeFiles/common.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include common/CMakeFiles/common.dir/compiler_depend.make + +# Include the progress variables for this target. +include common/CMakeFiles/common.dir/progress.make + +# Include the compile flags for this target's objects. +include common/CMakeFiles/common.dir/flags.make + +common/CMakeFiles/common.dir/arg.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/arg.cpp.o: ../common/arg.cpp +common/CMakeFiles/common.dir/arg.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object common/CMakeFiles/common.dir/arg.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/arg.cpp.o -MF CMakeFiles/common.dir/arg.cpp.o.d -o CMakeFiles/common.dir/arg.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp" + +common/CMakeFiles/common.dir/arg.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/arg.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp" > CMakeFiles/common.dir/arg.cpp.i + +common/CMakeFiles/common.dir/arg.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/arg.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp" -o CMakeFiles/common.dir/arg.cpp.s + +common/CMakeFiles/common.dir/common.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/common.cpp.o: ../common/common.cpp +common/CMakeFiles/common.dir/common.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object common/CMakeFiles/common.dir/common.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/common.cpp.o -MF CMakeFiles/common.dir/common.cpp.o.d -o CMakeFiles/common.dir/common.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp" + +common/CMakeFiles/common.dir/common.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/common.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp" > CMakeFiles/common.dir/common.cpp.i + +common/CMakeFiles/common.dir/common.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/common.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp" -o CMakeFiles/common.dir/common.cpp.s + +common/CMakeFiles/common.dir/console.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/console.cpp.o: ../common/console.cpp +common/CMakeFiles/common.dir/console.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object common/CMakeFiles/common.dir/console.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/console.cpp.o -MF CMakeFiles/common.dir/console.cpp.o.d -o CMakeFiles/common.dir/console.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp" + +common/CMakeFiles/common.dir/console.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/console.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp" > CMakeFiles/common.dir/console.cpp.i + +common/CMakeFiles/common.dir/console.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/console.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp" -o CMakeFiles/common.dir/console.cpp.s + +common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o: ../common/json-schema-to-grammar.cpp +common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o -MF CMakeFiles/common.dir/json-schema-to-grammar.cpp.o.d -o CMakeFiles/common.dir/json-schema-to-grammar.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp" + +common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/json-schema-to-grammar.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp" > CMakeFiles/common.dir/json-schema-to-grammar.cpp.i + +common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/json-schema-to-grammar.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp" -o CMakeFiles/common.dir/json-schema-to-grammar.cpp.s + +common/CMakeFiles/common.dir/log.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/log.cpp.o: ../common/log.cpp +common/CMakeFiles/common.dir/log.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object common/CMakeFiles/common.dir/log.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/log.cpp.o -MF CMakeFiles/common.dir/log.cpp.o.d -o CMakeFiles/common.dir/log.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp" + +common/CMakeFiles/common.dir/log.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/log.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp" > CMakeFiles/common.dir/log.cpp.i + +common/CMakeFiles/common.dir/log.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/log.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp" -o CMakeFiles/common.dir/log.cpp.s + +common/CMakeFiles/common.dir/ngram-cache.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/ngram-cache.cpp.o: ../common/ngram-cache.cpp +common/CMakeFiles/common.dir/ngram-cache.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object common/CMakeFiles/common.dir/ngram-cache.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/ngram-cache.cpp.o -MF CMakeFiles/common.dir/ngram-cache.cpp.o.d -o CMakeFiles/common.dir/ngram-cache.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp" + +common/CMakeFiles/common.dir/ngram-cache.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/ngram-cache.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp" > CMakeFiles/common.dir/ngram-cache.cpp.i + +common/CMakeFiles/common.dir/ngram-cache.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/ngram-cache.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp" -o CMakeFiles/common.dir/ngram-cache.cpp.s + +common/CMakeFiles/common.dir/sampling.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/sampling.cpp.o: ../common/sampling.cpp +common/CMakeFiles/common.dir/sampling.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object common/CMakeFiles/common.dir/sampling.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/sampling.cpp.o -MF CMakeFiles/common.dir/sampling.cpp.o.d -o CMakeFiles/common.dir/sampling.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp" + +common/CMakeFiles/common.dir/sampling.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/sampling.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp" > CMakeFiles/common.dir/sampling.cpp.i + +common/CMakeFiles/common.dir/sampling.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/sampling.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp" -o CMakeFiles/common.dir/sampling.cpp.s + +common/CMakeFiles/common.dir/speculative.cpp.o: common/CMakeFiles/common.dir/flags.make +common/CMakeFiles/common.dir/speculative.cpp.o: ../common/speculative.cpp +common/CMakeFiles/common.dir/speculative.cpp.o: common/CMakeFiles/common.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object common/CMakeFiles/common.dir/speculative.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT common/CMakeFiles/common.dir/speculative.cpp.o -MF CMakeFiles/common.dir/speculative.cpp.o.d -o CMakeFiles/common.dir/speculative.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp" + +common/CMakeFiles/common.dir/speculative.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/common.dir/speculative.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp" > CMakeFiles/common.dir/speculative.cpp.i + +common/CMakeFiles/common.dir/speculative.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/common.dir/speculative.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp" -o CMakeFiles/common.dir/speculative.cpp.s + +# Object files for target common +common_OBJECTS = \ +"CMakeFiles/common.dir/arg.cpp.o" \ +"CMakeFiles/common.dir/common.cpp.o" \ +"CMakeFiles/common.dir/console.cpp.o" \ +"CMakeFiles/common.dir/json-schema-to-grammar.cpp.o" \ +"CMakeFiles/common.dir/log.cpp.o" \ +"CMakeFiles/common.dir/ngram-cache.cpp.o" \ +"CMakeFiles/common.dir/sampling.cpp.o" \ +"CMakeFiles/common.dir/speculative.cpp.o" + +# External object files for target common +common_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o" + +common/libcommon.a: common/CMakeFiles/common.dir/arg.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/common.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/console.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/log.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/ngram-cache.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/sampling.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/speculative.cpp.o +common/libcommon.a: common/CMakeFiles/build_info.dir/build-info.cpp.o +common/libcommon.a: common/CMakeFiles/common.dir/build.make +common/libcommon.a: common/CMakeFiles/common.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX static library libcommon.a" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && $(CMAKE_COMMAND) -P CMakeFiles/common.dir/cmake_clean_target.cmake + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/common.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +common/CMakeFiles/common.dir/build: common/libcommon.a +.PHONY : common/CMakeFiles/common.dir/build + +common/CMakeFiles/common.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" && $(CMAKE_COMMAND) -P CMakeFiles/common.dir/cmake_clean.cmake +.PHONY : common/CMakeFiles/common.dir/clean + +common/CMakeFiles/common.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : common/CMakeFiles/common.dir/depend + diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/cmake_clean.cmake b/llama.cpp/build/common/CMakeFiles/common.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..83cfaac7789ffa4de274dded819d907575d447ff --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/cmake_clean.cmake @@ -0,0 +1,25 @@ +file(REMOVE_RECURSE + "CMakeFiles/common.dir/arg.cpp.o" + "CMakeFiles/common.dir/arg.cpp.o.d" + "CMakeFiles/common.dir/common.cpp.o" + "CMakeFiles/common.dir/common.cpp.o.d" + "CMakeFiles/common.dir/console.cpp.o" + "CMakeFiles/common.dir/console.cpp.o.d" + "CMakeFiles/common.dir/json-schema-to-grammar.cpp.o" + "CMakeFiles/common.dir/json-schema-to-grammar.cpp.o.d" + "CMakeFiles/common.dir/log.cpp.o" + "CMakeFiles/common.dir/log.cpp.o.d" + "CMakeFiles/common.dir/ngram-cache.cpp.o" + "CMakeFiles/common.dir/ngram-cache.cpp.o.d" + "CMakeFiles/common.dir/sampling.cpp.o" + "CMakeFiles/common.dir/sampling.cpp.o.d" + "CMakeFiles/common.dir/speculative.cpp.o" + "CMakeFiles/common.dir/speculative.cpp.o.d" + "libcommon.a" + "libcommon.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/common.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/cmake_clean_target.cmake b/llama.cpp/build/common/CMakeFiles/common.dir/cmake_clean_target.cmake new file mode 100644 index 0000000000000000000000000000000000000000..726571e408bb580cfb3a122f860beac51a24b057 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libcommon.a" +) diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/common.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/common.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..6b82aa8cd8bf61e725aa7d26dd623fb8d5224e5e Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/common.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/common.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/common.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..22f61642ad7e64aec274717eb274092e2bfa1135 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/common.cpp.o.d @@ -0,0 +1,326 @@ +common/CMakeFiles/common.dir/common.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json.hpp \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstddef \ + /usr/include/c++/11/iterator /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/include/c++/11/forward_list /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/valarray \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/valarray_array.h \ + /usr/include/c++/11/bits/valarray_array.tcc \ + /usr/include/c++/11/bits/valarray_before.h \ + /usr/include/c++/11/bits/slice_array.h \ + /usr/include/c++/11/bits/valarray_after.h \ + /usr/include/c++/11/bits/gslice.h \ + /usr/include/c++/11/bits/gslice_array.h \ + /usr/include/c++/11/bits/mask_array.h \ + /usr/include/c++/11/bits/indirect_array.h /usr/include/c++/11/version \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h /usr/include/c++/11/iomanip \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/numeric /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/any \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.h \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h \ + /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cstdarg \ + /usr/include/c++/11/fstream \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream \ + /usr/include/c++/11/regex /usr/include/c++/11/bitset \ + /usr/include/c++/11/stack /usr/include/c++/11/deque \ + /usr/include/c++/11/bits/stl_deque.h /usr/include/c++/11/bits/deque.tcc \ + /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h \ + /usr/include/c++/11/unordered_set \ + /usr/include/c++/11/bits/unordered_set.h \ + /usr/include/x86_64-linux-gnu/sys/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctls.h \ + /usr/include/x86_64-linux-gnu/asm/ioctls.h \ + /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \ + /usr/include/x86_64-linux-gnu/asm/ioctl.h \ + /usr/include/asm-generic/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctl-types.h \ + /usr/include/x86_64-linux-gnu/sys/ttydefaults.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/sys/resource.h \ + /usr/include/x86_64-linux-gnu/bits/resource.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/compiler_depend.make b/llama.cpp/build/common/CMakeFiles/common.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b16ca66462a3bced14261d05af38e9e92d45bc3d --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for common. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/compiler_depend.ts b/llama.cpp/build/common/CMakeFiles/common.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..8e08e805a5c724acf9b2ca7330e8fdb0152fa8a2 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for common. diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/console.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/console.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..fbf2c2cf8ec4721b6ac8a6754ec846ba2450b02d Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/console.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/console.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/console.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..0828ba6078a6f5245eac1e0bd64285c99d8b5035 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/console.cpp.o.d @@ -0,0 +1,217 @@ +common/CMakeFiles/common.dir/console.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/iostream \ + /usr/include/c++/11/ostream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc \ + /usr/include/c++/11/bits/ostream.tcc /usr/include/c++/11/istream \ + /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h \ + /usr/include/x86_64-linux-gnu/sys/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctls.h \ + /usr/include/x86_64-linux-gnu/asm/ioctls.h \ + /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \ + /usr/include/x86_64-linux-gnu/asm/ioctl.h \ + /usr/include/asm-generic/ioctl.h \ + /usr/include/x86_64-linux-gnu/bits/ioctl-types.h \ + /usr/include/x86_64-linux-gnu/sys/ttydefaults.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h /usr/include/c++/11/stdlib.h \ + /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h /usr/include/termios.h \ + /usr/include/x86_64-linux-gnu/bits/termios.h \ + /usr/include/x86_64-linux-gnu/bits/termios-struct.h \ + /usr/include/x86_64-linux-gnu/bits/termios-c_cc.h \ + /usr/include/x86_64-linux-gnu/bits/termios-c_iflag.h \ + /usr/include/x86_64-linux-gnu/bits/termios-c_oflag.h \ + /usr/include/x86_64-linux-gnu/bits/termios-baud.h \ + /usr/include/x86_64-linux-gnu/bits/termios-c_cflag.h \ + /usr/include/x86_64-linux-gnu/bits/termios-c_lflag.h \ + /usr/include/x86_64-linux-gnu/bits/termios-tcflow.h \ + /usr/include/x86_64-linux-gnu/bits/termios-misc.h diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/depend.make b/llama.cpp/build/common/CMakeFiles/common.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..63272955950caf20572e6d5a1fb1fe131bb69242 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for common. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/flags.make b/llama.cpp/build/common/CMakeFiles/common.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..88891b6f457c914b8b3774a963d9c854abba5016 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b69f01923baafb2339f91bf64ac5bd53cf7e1c72 Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ce8b33cda59771e20b38215cdd86f151ca2059e5 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o.d @@ -0,0 +1,267 @@ +common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/json.hpp \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstddef \ + /usr/include/c++/11/iosfwd /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/iterator \ + /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/streambuf.tcc /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/include/c++/11/forward_list /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/valarray \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/valarray_array.h \ + /usr/include/c++/11/bits/valarray_array.tcc \ + /usr/include/c++/11/bits/valarray_before.h \ + /usr/include/c++/11/bits/slice_array.h \ + /usr/include/c++/11/bits/valarray_after.h \ + /usr/include/c++/11/bits/gslice.h \ + /usr/include/c++/11/bits/gslice_array.h \ + /usr/include/c++/11/bits/mask_array.h \ + /usr/include/c++/11/bits/indirect_array.h /usr/include/c++/11/version \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h /usr/include/c++/11/iomanip \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/numeric /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/any \ + /usr/include/c++/11/fstream \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc \ + /usr/include/c++/11/unordered_set \ + /usr/include/c++/11/bits/unordered_set.h diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/link.txt b/llama.cpp/build/common/CMakeFiles/common.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..972155b95c62326eb15103e2672b86a9a07c6c98 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar qc libcommon.a CMakeFiles/common.dir/arg.cpp.o CMakeFiles/common.dir/common.cpp.o CMakeFiles/common.dir/console.cpp.o CMakeFiles/common.dir/json-schema-to-grammar.cpp.o CMakeFiles/common.dir/log.cpp.o CMakeFiles/common.dir/ngram-cache.cpp.o CMakeFiles/common.dir/sampling.cpp.o CMakeFiles/common.dir/speculative.cpp.o CMakeFiles/build_info.dir/build-info.cpp.o +/usr/bin/ranlib libcommon.a diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/log.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/log.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c2b08192ce705572ad9d49c2b48cd8dcb9d508ca Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/log.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/log.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/log.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..32709a8c56308ec6da05c6ceb5a22945d50192c5 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/log.cpp.o.d @@ -0,0 +1,179 @@ +common/CMakeFiles/common.dir/log.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/11/condition_variable /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/type_traits \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/bits/std_mutex.h /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/iosfwd /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/bits/nested_exception.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/stl_pair.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/unique_lock.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/bits/refwrap.h /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/ext/concurrence.h /usr/include/c++/11/cstdarg \ + /usr/include/c++/11/mutex /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/ngram-cache.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/ngram-cache.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..9ee31c5e67acbb601eee12edcdceab5a0fa18731 Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/ngram-cache.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/ngram-cache.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/ngram-cache.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..904910bcc9bcd909db36a371fb6b7d66ec0b836c --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/ngram-cache.cpp.o.d @@ -0,0 +1,191 @@ +common/CMakeFiles/common.dir/ngram-cache.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/type_traits \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/move.h /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/ptr_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/stl_pair.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.h \ + /usr/include/c++/11/sstream /usr/include/c++/11/istream \ + /usr/include/c++/11/ios /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.h \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h \ + /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/progress.make b/llama.cpp/build/common/CMakeFiles/common.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..4c72b84afa8b5ffc7ede7be538d9fccb89ccfdba --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/progress.make @@ -0,0 +1,10 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = +CMAKE_PROGRESS_4 = 3 +CMAKE_PROGRESS_5 = +CMAKE_PROGRESS_6 = 4 +CMAKE_PROGRESS_7 = +CMAKE_PROGRESS_8 = 5 +CMAKE_PROGRESS_9 = 6 + diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/sampling.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/sampling.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..19617b64a8c12b811a9a8fb850a96600bd1069cb Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/sampling.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/sampling.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/sampling.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..529380cec85e477d165ac8cc88b98daa0102251e --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/sampling.cpp.o.d @@ -0,0 +1,202 @@ +common/CMakeFiles/common.dir/sampling.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/cmath \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/speculative.cpp.o b/llama.cpp/build/common/CMakeFiles/common.dir/speculative.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..98413e1a0c2a1116b41f37bc2155dd858e74e153 Binary files /dev/null and b/llama.cpp/build/common/CMakeFiles/common.dir/speculative.cpp.o differ diff --git a/llama.cpp/build/common/CMakeFiles/common.dir/speculative.cpp.o.d b/llama.cpp/build/common/CMakeFiles/common.dir/speculative.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ac899e21043b474f137448d7d14349448e373875 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/common.dir/speculative.cpp.o.d @@ -0,0 +1,174 @@ +common/CMakeFiles/common.dir/speculative.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h diff --git a/llama.cpp/build/common/CMakeFiles/progress.marks b/llama.cpp/build/common/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..209e3ef4b6247ce746048d5711befda46206d235 --- /dev/null +++ b/llama.cpp/build/common/CMakeFiles/progress.marks @@ -0,0 +1 @@ +20 diff --git a/llama.cpp/build/common/Makefile b/llama.cpp/build/common/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0e67c7b037ba38cb92ce3d3ff02c9b17321a4bc4 --- /dev/null +++ b/llama.cpp/build/common/Makefile @@ -0,0 +1,473 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +common/CMakeFiles/build_info.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/CMakeFiles/build_info.dir/rule +.PHONY : common/CMakeFiles/build_info.dir/rule + +# Convenience name for target. +build_info: common/CMakeFiles/build_info.dir/rule +.PHONY : build_info + +# fast build rule for target. +build_info/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/build +.PHONY : build_info/fast + +# Convenience name for target. +common/CMakeFiles/common.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 common/CMakeFiles/common.dir/rule +.PHONY : common/CMakeFiles/common.dir/rule + +# Convenience name for target. +common: common/CMakeFiles/common.dir/rule +.PHONY : common + +# fast build rule for target. +common/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/build +.PHONY : common/fast + +arg.o: arg.cpp.o +.PHONY : arg.o + +# target to build an object file +arg.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/arg.cpp.o +.PHONY : arg.cpp.o + +arg.i: arg.cpp.i +.PHONY : arg.i + +# target to preprocess a source file +arg.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/arg.cpp.i +.PHONY : arg.cpp.i + +arg.s: arg.cpp.s +.PHONY : arg.s + +# target to generate assembly for a file +arg.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/arg.cpp.s +.PHONY : arg.cpp.s + +build-info.o: build-info.cpp.o +.PHONY : build-info.o + +# target to build an object file +build-info.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/build-info.cpp.o +.PHONY : build-info.cpp.o + +build-info.i: build-info.cpp.i +.PHONY : build-info.i + +# target to preprocess a source file +build-info.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/build-info.cpp.i +.PHONY : build-info.cpp.i + +build-info.s: build-info.cpp.s +.PHONY : build-info.s + +# target to generate assembly for a file +build-info.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/build_info.dir/build.make common/CMakeFiles/build_info.dir/build-info.cpp.s +.PHONY : build-info.cpp.s + +common.o: common.cpp.o +.PHONY : common.o + +# target to build an object file +common.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/common.cpp.o +.PHONY : common.cpp.o + +common.i: common.cpp.i +.PHONY : common.i + +# target to preprocess a source file +common.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/common.cpp.i +.PHONY : common.cpp.i + +common.s: common.cpp.s +.PHONY : common.s + +# target to generate assembly for a file +common.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/common.cpp.s +.PHONY : common.cpp.s + +console.o: console.cpp.o +.PHONY : console.o + +# target to build an object file +console.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/console.cpp.o +.PHONY : console.cpp.o + +console.i: console.cpp.i +.PHONY : console.i + +# target to preprocess a source file +console.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/console.cpp.i +.PHONY : console.cpp.i + +console.s: console.cpp.s +.PHONY : console.s + +# target to generate assembly for a file +console.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/console.cpp.s +.PHONY : console.cpp.s + +json-schema-to-grammar.o: json-schema-to-grammar.cpp.o +.PHONY : json-schema-to-grammar.o + +# target to build an object file +json-schema-to-grammar.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o +.PHONY : json-schema-to-grammar.cpp.o + +json-schema-to-grammar.i: json-schema-to-grammar.cpp.i +.PHONY : json-schema-to-grammar.i + +# target to preprocess a source file +json-schema-to-grammar.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.i +.PHONY : json-schema-to-grammar.cpp.i + +json-schema-to-grammar.s: json-schema-to-grammar.cpp.s +.PHONY : json-schema-to-grammar.s + +# target to generate assembly for a file +json-schema-to-grammar.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.s +.PHONY : json-schema-to-grammar.cpp.s + +log.o: log.cpp.o +.PHONY : log.o + +# target to build an object file +log.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/log.cpp.o +.PHONY : log.cpp.o + +log.i: log.cpp.i +.PHONY : log.i + +# target to preprocess a source file +log.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/log.cpp.i +.PHONY : log.cpp.i + +log.s: log.cpp.s +.PHONY : log.s + +# target to generate assembly for a file +log.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/log.cpp.s +.PHONY : log.cpp.s + +ngram-cache.o: ngram-cache.cpp.o +.PHONY : ngram-cache.o + +# target to build an object file +ngram-cache.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/ngram-cache.cpp.o +.PHONY : ngram-cache.cpp.o + +ngram-cache.i: ngram-cache.cpp.i +.PHONY : ngram-cache.i + +# target to preprocess a source file +ngram-cache.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/ngram-cache.cpp.i +.PHONY : ngram-cache.cpp.i + +ngram-cache.s: ngram-cache.cpp.s +.PHONY : ngram-cache.s + +# target to generate assembly for a file +ngram-cache.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/ngram-cache.cpp.s +.PHONY : ngram-cache.cpp.s + +sampling.o: sampling.cpp.o +.PHONY : sampling.o + +# target to build an object file +sampling.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/sampling.cpp.o +.PHONY : sampling.cpp.o + +sampling.i: sampling.cpp.i +.PHONY : sampling.i + +# target to preprocess a source file +sampling.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/sampling.cpp.i +.PHONY : sampling.cpp.i + +sampling.s: sampling.cpp.s +.PHONY : sampling.s + +# target to generate assembly for a file +sampling.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/sampling.cpp.s +.PHONY : sampling.cpp.s + +speculative.o: speculative.cpp.o +.PHONY : speculative.o + +# target to build an object file +speculative.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/speculative.cpp.o +.PHONY : speculative.cpp.o + +speculative.i: speculative.cpp.i +.PHONY : speculative.i + +# target to preprocess a source file +speculative.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/speculative.cpp.i +.PHONY : speculative.cpp.i + +speculative.s: speculative.cpp.s +.PHONY : speculative.s + +# target to generate assembly for a file +speculative.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f common/CMakeFiles/common.dir/build.make common/CMakeFiles/common.dir/speculative.cpp.s +.PHONY : speculative.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... build_info" + @echo "... common" + @echo "... arg.o" + @echo "... arg.i" + @echo "... arg.s" + @echo "... build-info.o" + @echo "... build-info.i" + @echo "... build-info.s" + @echo "... common.o" + @echo "... common.i" + @echo "... common.s" + @echo "... console.o" + @echo "... console.i" + @echo "... console.s" + @echo "... json-schema-to-grammar.o" + @echo "... json-schema-to-grammar.i" + @echo "... json-schema-to-grammar.s" + @echo "... log.o" + @echo "... log.i" + @echo "... log.s" + @echo "... ngram-cache.o" + @echo "... ngram-cache.i" + @echo "... ngram-cache.s" + @echo "... sampling.o" + @echo "... sampling.i" + @echo "... sampling.s" + @echo "... speculative.o" + @echo "... speculative.i" + @echo "... speculative.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/common/cmake_install.cmake b/llama.cpp/build/common/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5009f2170bd2f4fa8a80a8744a3cb19210f18ed7 --- /dev/null +++ b/llama.cpp/build/common/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + diff --git a/llama.cpp/build/common/libcommon.a b/llama.cpp/build/common/libcommon.a new file mode 100644 index 0000000000000000000000000000000000000000..6ca27155e9f36a9435d91f14c863fdb1ea5c6175 --- /dev/null +++ b/llama.cpp/build/common/libcommon.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da93f0818a84711f9f15ea0628535405ef08c66662f1b3ec421f2cc8c05b865a +size 2121474 diff --git a/llama.cpp/build/compile_commands.json b/llama.cpp/build/compile_commands.json new file mode 100644 index 0000000000000000000000000000000000000000..9edff67233baf476c621afff22d90fb2fbfae162 --- /dev/null +++ b/llama.cpp/build/compile_commands.json @@ -0,0 +1,547 @@ +[ +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/cc -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -std=gnu11 -o CMakeFiles/ggml-base.dir/ggml.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/cc -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -std=gnu11 -o CMakeFiles/ggml-base.dir/ggml-alloc.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/c++ -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -std=gnu++17 -o CMakeFiles/ggml-base.dir/ggml-backend.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/c++ -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -std=gnu++17 -o CMakeFiles/ggml-base.dir/ggml-opt.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/c++ -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -std=gnu++17 -o CMakeFiles/ggml-base.dir/ggml-threading.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/cc -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -std=gnu11 -o CMakeFiles/ggml-base.dir/ggml-quants.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/cc -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -std=gnu11 -o CMakeFiles/ggml-base.dir/ggml-aarch64.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -std=gnu++17 -o CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/cc -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -fopenmp -std=gnu11 -march=native -o CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/c++ -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -fopenmp -std=gnu++17 -march=native -o CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/cc -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -fopenmp -std=gnu11 -march=native -o CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/cc -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -fopenmp -std=gnu11 -march=native -o CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/c++ -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -fopenmp -std=gnu++17 -march=native -o CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/c++ -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -fopenmp -std=gnu++17 -march=native -o CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/c++ -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -fopenmp -std=gnu++17 -march=native -o CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu", + "command": "/usr/bin/c++ -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -fopenmp -std=gnu++17 -o CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama.dir/llama.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama.dir/llama-vocab.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama.dir/llama-grammar.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama.dir/llama-sampling.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama.dir/unicode.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama.dir/unicode-data.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/build_info.dir/build-info.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/build-info.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/arg.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/arg.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/common.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/common.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/console.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/console.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/json-schema-to-grammar.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/json-schema-to-grammar.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/log.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/log.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/ngram-cache.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/ngram-cache.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/sampling.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/sampling.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/common.dir/speculative.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/speculative.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-log.dir/test-log.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-log.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-arg-parser.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-sampling.dir/test-sampling.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-sampling.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-chat-template.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-grammar-parser.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-grammar-integration.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-llama-grammar.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-backend-ops.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-autorelease.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-barrier.dir/test-barrier.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-barrier.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-quantize-fns.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-quantize-perf.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-rope.dir/test-rope.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-rope.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../examples/server\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../examples/server\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests", + "command": "/usr/bin/cc -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/test-c.dir/test-c.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-batched.dir/batched.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-embedding.dir/embedding.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash", + "command": "/usr/bin/cc -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps\" -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -o CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash", + "command": "/usr/bin/cc -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps\" -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -w -o CMakeFiles/sha1.dir/deps/sha1/sha1.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash", + "command": "/usr/bin/cc -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps\" -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -o CMakeFiles/sha256.dir/deps/sha256/sha256.c.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-gguf.dir/gguf.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-gritlm.dir/gritlm.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-imatrix.dir/imatrix.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-infill.dir/infill.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-bench.dir/llama-bench.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-lookahead.dir/lookahead.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-lookup.dir/lookup.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-cli.dir/main.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-parallel.dir/parallel.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-passkey.dir/passkey.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-perplexity.dir/perplexity.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/../../common\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-quantize.dir/quantize.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-retrieval.dir/retrieval.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-server.dir/server.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-run.dir/run.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-simple.dir/simple.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-speculative.dir/speculative.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-tokenize.dir/tokenize.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-export-lora.dir/export-lora.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/../../common\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -Wno-cast-qual -o CMakeFiles/llava.dir/llava.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -Wno-cast-qual -o CMakeFiles/llava.dir/clip.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../..\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common\" -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -o CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/llama-vdot.dir/vdot.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp" +}, +{ + "directory": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot", + "command": "/usr/bin/c++ -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/.\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include\" -I\"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include\" -O3 -DNDEBUG -o CMakeFiles/llama-q8dot.dir/q8dot.cpp.o -c \"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp\"", + "file": "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp" +} +] \ No newline at end of file diff --git a/llama.cpp/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/CMakeFiles/progress.marks b/llama.cpp/build/examples/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..3fdcd7c44cb1791f45e7386a8f230e018fd7e052 --- /dev/null +++ b/llama.cpp/build/examples/CMakeFiles/progress.marks @@ -0,0 +1 @@ +67 diff --git a/llama.cpp/build/examples/CTestTestfile.cmake b/llama.cpp/build/examples/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cdc647cbce6d30fe0c6c5db02839f4a685f7d69e --- /dev/null +++ b/llama.cpp/build/examples/CTestTestfile.cmake @@ -0,0 +1,39 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +subdirs("batched-bench") +subdirs("batched") +subdirs("embedding") +subdirs("eval-callback") +subdirs("gbnf-validator") +subdirs("gguf-hash") +subdirs("gguf-split") +subdirs("gguf") +subdirs("gritlm") +subdirs("imatrix") +subdirs("infill") +subdirs("llama-bench") +subdirs("lookahead") +subdirs("lookup") +subdirs("main") +subdirs("parallel") +subdirs("passkey") +subdirs("perplexity") +subdirs("quantize") +subdirs("retrieval") +subdirs("server") +subdirs("save-load-state") +subdirs("run") +subdirs("simple") +subdirs("simple-chat") +subdirs("speculative") +subdirs("speculative-simple") +subdirs("tokenize") +subdirs("convert-llama2c-to-ggml") +subdirs("cvector-generator") +subdirs("export-lora") +subdirs("quantize-stats") +subdirs("llava") diff --git a/llama.cpp/build/examples/Makefile b/llama.cpp/build/examples/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d38252b7404683f5be52bc4b19fe34946af3f139 --- /dev/null +++ b/llama.cpp/build/examples/Makefile @@ -0,0 +1,200 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/batched-bench/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/DependInfo.cmake b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9449d2ccca373d48caa20783db232e1f1aa767ea --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp" "examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o" "gcc" "examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d64c9bbf638315499c3885be0b1676f74c102a05 Binary files /dev/null and b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o differ diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o.d b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..99dd42cd599e8cb12a6b77d2c669123d02e1742a --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o.d @@ -0,0 +1,193 @@ +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b9cd48860cce72493725a6db95ccc6f937502655 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/batched-bench/CMakeFiles/llama-batched-bench.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/batched-bench/CMakeFiles/llama-batched-bench.dir/flags.make + +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/flags.make +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o: ../examples/batched-bench/batched-bench.cpp +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o -MF CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o.d -o CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp" + +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp" > CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.i + +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench/batched-bench.cpp" -o CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.s + +# Object files for target llama-batched-bench +llama__batched__bench_OBJECTS = \ +"CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o" + +# External object files for target llama-batched-bench +llama__batched__bench_EXTERNAL_OBJECTS = + +bin/llama-batched-bench: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o +bin/llama-batched-bench: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make +bin/llama-batched-bench: common/libcommon.a +bin/llama-batched-bench: src/libllama.so +bin/llama-batched-bench: ggml/src/libggml.so +bin/llama-batched-bench: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-batched-bench: ggml/src/libggml-base.so +bin/llama-batched-bench: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-batched-bench" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-batched-bench.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build: bin/llama-batched-bench +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build + +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench" && $(CMAKE_COMMAND) -P CMakeFiles/llama-batched-bench.dir/cmake_clean.cmake +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/clean + +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend + diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/cmake_clean.cmake b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4b71b638f890c3183c95626402e1d8badb555af0 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-batched-bench" + "../../bin/llama-batched-bench.pdb" + "CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o" + "CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-batched-bench.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.make b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7b1592672d2fb8be7f59a59c5d73172ee17dfabd --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-batched-bench. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.ts b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..d77f8b112f698f21f2ab7dfd0f4d792c43e106a5 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-batched-bench. diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend.make b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e8fe9440a5f56740720014a8f8e1a107e50f3ffa --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-batched-bench. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/flags.make b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/link.txt b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..83d356b1dc92521480667b0ec8ac3d28c0e5d3f4 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o -o ../../bin/llama-batched-bench -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/progress.make b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..5716e39781302a34b7939ef4b7a836b9a7d10fcd --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/llama-batched-bench.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 22 + diff --git a/llama.cpp/build/examples/batched-bench/CMakeFiles/progress.marks b/llama.cpp/build/examples/batched-bench/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/batched-bench/CTestTestfile.cmake b/llama.cpp/build/examples/batched-bench/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ef34157522ce8d1961cfa282377a114c03e37acb --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/batched-bench/Makefile b/llama.cpp/build/examples/batched-bench/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..1f3fe829496cc921672b3df8dc93f4cc7e9c4dbe --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched-bench/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched-bench/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched-bench/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched-bench/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule +.PHONY : examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule + +# Convenience name for target. +llama-batched-bench: examples/batched-bench/CMakeFiles/llama-batched-bench.dir/rule +.PHONY : llama-batched-bench + +# fast build rule for target. +llama-batched-bench/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build +.PHONY : llama-batched-bench/fast + +batched-bench.o: batched-bench.cpp.o +.PHONY : batched-bench.o + +# target to build an object file +batched-bench.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.o +.PHONY : batched-bench.cpp.o + +batched-bench.i: batched-bench.cpp.i +.PHONY : batched-bench.i + +# target to preprocess a source file +batched-bench.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.i +.PHONY : batched-bench.cpp.i + +batched-bench.s: batched-bench.cpp.s +.PHONY : batched-bench.s + +# target to generate assembly for a file +batched-bench.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched-bench/CMakeFiles/llama-batched-bench.dir/build.make examples/batched-bench/CMakeFiles/llama-batched-bench.dir/batched-bench.cpp.s +.PHONY : batched-bench.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-batched-bench" + @echo "... batched-bench.o" + @echo "... batched-bench.i" + @echo "... batched-bench.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/batched-bench/cmake_install.cmake b/llama.cpp/build/examples/batched-bench/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..76321017674625d5f76663e76bb89a46913ab2f8 --- /dev/null +++ b/llama.cpp/build/examples/batched-bench/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched-bench + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-batched-bench") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched-bench") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/batched/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/batched/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/DependInfo.cmake b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..441a517b8085cc1a6e4e61217b9417e202f4cc28 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp" "examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o" "gcc" "examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b4d8dc63d13da44088305cdbf0e762f0204be410 Binary files /dev/null and b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o differ diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o.d b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..25bd5d76e8c359a8d164667c2085f90f0a98f9b2 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o.d @@ -0,0 +1,193 @@ +examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/build.make b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..961fea1b46b9bae0cee1bd8f52c575f5e8aed66d --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/batched/CMakeFiles/llama-batched.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/batched/CMakeFiles/llama-batched.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/batched/CMakeFiles/llama-batched.dir/flags.make + +examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o: examples/batched/CMakeFiles/llama-batched.dir/flags.make +examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o: ../examples/batched/batched.cpp +examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o: examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o -MF CMakeFiles/llama-batched.dir/batched.cpp.o.d -o CMakeFiles/llama-batched.dir/batched.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp" + +examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-batched.dir/batched.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp" > CMakeFiles/llama-batched.dir/batched.cpp.i + +examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-batched.dir/batched.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched/batched.cpp" -o CMakeFiles/llama-batched.dir/batched.cpp.s + +# Object files for target llama-batched +llama__batched_OBJECTS = \ +"CMakeFiles/llama-batched.dir/batched.cpp.o" + +# External object files for target llama-batched +llama__batched_EXTERNAL_OBJECTS = + +bin/llama-batched: examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o +bin/llama-batched: examples/batched/CMakeFiles/llama-batched.dir/build.make +bin/llama-batched: common/libcommon.a +bin/llama-batched: src/libllama.so +bin/llama-batched: ggml/src/libggml.so +bin/llama-batched: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-batched: ggml/src/libggml-base.so +bin/llama-batched: examples/batched/CMakeFiles/llama-batched.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-batched" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-batched.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/batched/CMakeFiles/llama-batched.dir/build: bin/llama-batched +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/build + +examples/batched/CMakeFiles/llama-batched.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched" && $(CMAKE_COMMAND) -P CMakeFiles/llama-batched.dir/cmake_clean.cmake +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/clean + +examples/batched/CMakeFiles/llama-batched.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/depend + diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/cmake_clean.cmake b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..24acd55266800a1329952a4794efd18b34ef4a33 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-batched" + "../../bin/llama-batched.pdb" + "CMakeFiles/llama-batched.dir/batched.cpp.o" + "CMakeFiles/llama-batched.dir/batched.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-batched.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.make b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2f7be25382befd644bca7cb8baec894b0105755c --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-batched. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.ts b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e044a67e3d776affe0656c677bf9c8f0449f8fcd --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-batched. diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/depend.make b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2b8e1eb2b5b719747e24601539c5bb59750848a0 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-batched. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/flags.make b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/link.txt b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..c5582d99edeec3af17812568aa21ef56f418e357 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-batched.dir/batched.cpp.o -o ../../bin/llama-batched -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/progress.make b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..4d2334ff1717bd7c65b7ef9bdc454c7b5b3f06bf --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/llama-batched.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 21 + diff --git a/llama.cpp/build/examples/batched/CMakeFiles/progress.marks b/llama.cpp/build/examples/batched/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/batched/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/batched/CTestTestfile.cmake b/llama.cpp/build/examples/batched/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..028c08baaa652b1d1cc63686cdc4ef954bb804fc --- /dev/null +++ b/llama.cpp/build/examples/batched/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/batched/Makefile b/llama.cpp/build/examples/batched/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d0d6ea654a486afcb845a2c465ed8e7ae986a654 --- /dev/null +++ b/llama.cpp/build/examples/batched/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/batched/CMakeFiles/llama-batched.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/batched/CMakeFiles/llama-batched.dir/rule +.PHONY : examples/batched/CMakeFiles/llama-batched.dir/rule + +# Convenience name for target. +llama-batched: examples/batched/CMakeFiles/llama-batched.dir/rule +.PHONY : llama-batched + +# fast build rule for target. +llama-batched/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/build +.PHONY : llama-batched/fast + +batched.o: batched.cpp.o +.PHONY : batched.o + +# target to build an object file +batched.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o +.PHONY : batched.cpp.o + +batched.i: batched.cpp.i +.PHONY : batched.i + +# target to preprocess a source file +batched.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.i +.PHONY : batched.cpp.i + +batched.s: batched.cpp.s +.PHONY : batched.s + +# target to generate assembly for a file +batched.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/batched/CMakeFiles/llama-batched.dir/build.make examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.s +.PHONY : batched.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-batched" + @echo "... batched.o" + @echo "... batched.i" + @echo "... batched.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/batched/cmake_install.cmake b/llama.cpp/build/examples/batched/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cb86a1c7f6a98f2613d27aa29cf65b1cf8eea3a6 --- /dev/null +++ b/llama.cpp/build/examples/batched/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/batched + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-batched") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-batched") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/cmake_install.cmake b/llama.cpp/build/examples/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d35338dfee3d646e9d06c39ce6aaa393e8e17d03 --- /dev/null +++ b/llama.cpp/build/examples/cmake_install.cmake @@ -0,0 +1,209 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched-bench/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/batched/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/cmake_install.cmake") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/cmake_install.cmake") +endif() + diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/DependInfo.cmake b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..654dcc03cacb11092dbc8a84e0ae9767bdaea68e --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp" "examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o" "gcc" "examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c00f34aa6f777ab2f01cfde4c2177981e1110bc4 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/flags.make + +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/flags.make +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o: ../examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o -MF CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o.d -o CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp" + +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp" > CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.i + +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp" -o CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.s + +# Object files for target llama-convert-llama2c-to-ggml +llama__convert__llama2c__to__ggml_OBJECTS = \ +"CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o" + +# External object files for target llama-convert-llama2c-to-ggml +llama__convert__llama2c__to__ggml_EXTERNAL_OBJECTS = + +bin/llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o +bin/llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make +bin/llama-convert-llama2c-to-ggml: common/libcommon.a +bin/llama-convert-llama2c-to-ggml: src/libllama.so +bin/llama-convert-llama2c-to-ggml: ggml/src/libggml.so +bin/llama-convert-llama2c-to-ggml: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-convert-llama2c-to-ggml: ggml/src/libggml-base.so +bin/llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-convert-llama2c-to-ggml" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-convert-llama2c-to-ggml.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build: bin/llama-convert-llama2c-to-ggml +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build + +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml" && $(CMAKE_COMMAND) -P CMakeFiles/llama-convert-llama2c-to-ggml.dir/cmake_clean.cmake +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/clean + +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend + diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/cmake_clean.cmake b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..687d9acb75d75e7457f3b30eabefcbc09570fa2e --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-convert-llama2c-to-ggml" + "../../bin/llama-convert-llama2c-to-ggml.pdb" + "CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o" + "CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-convert-llama2c-to-ggml.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.make b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b0e1e07916f672e9c249865cfd32203a7f573684 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-convert-llama2c-to-ggml. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.ts b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..87821e1bfd7f3a0d0ab8bb99fe9157af6a33804d --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-convert-llama2c-to-ggml. diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d6062108d9b89e5430bbec507683d3b06fd2bbd4 Binary files /dev/null and b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o differ diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o.d b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..2bad275eb52cfe21f67b287e97a055ccb37b0610 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o.d @@ -0,0 +1,231 @@ +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml/convert-llama2c-to-ggml.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/cstdarg /usr/include/c++/11/cinttypes \ + /usr/include/inttypes.h /usr/include/c++/11/ctime \ + /usr/include/c++/11/random /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/algorithm \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend.make b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..690f754e46886f4097a728baaa8ae5ab1430d28b --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-convert-llama2c-to-ggml. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/flags.make b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/link.txt b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..67880434f10b6955f7dd9878ff507c5ada329e34 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o -o ../../bin/llama-convert-llama2c-to-ggml -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/progress.make b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..5fb6e246f30fa44062a796a160752472694e62c8 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 25 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/progress.marks b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/CTestTestfile.cmake b/llama.cpp/build/examples/convert-llama2c-to-ggml/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2bcb7123940d135518cf9da3b56dc1bc7e19ab69 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/Makefile b/llama.cpp/build/examples/convert-llama2c-to-ggml/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..dd6a9cdc67d303548990b13194ec84297494f4bd --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/convert-llama2c-to-ggml//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/convert-llama2c-to-ggml/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/convert-llama2c-to-ggml/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/convert-llama2c-to-ggml/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/convert-llama2c-to-ggml/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule +.PHONY : examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule + +# Convenience name for target. +llama-convert-llama2c-to-ggml: examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/rule +.PHONY : llama-convert-llama2c-to-ggml + +# fast build rule for target. +llama-convert-llama2c-to-ggml/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build +.PHONY : llama-convert-llama2c-to-ggml/fast + +convert-llama2c-to-ggml.o: convert-llama2c-to-ggml.cpp.o +.PHONY : convert-llama2c-to-ggml.o + +# target to build an object file +convert-llama2c-to-ggml.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o +.PHONY : convert-llama2c-to-ggml.cpp.o + +convert-llama2c-to-ggml.i: convert-llama2c-to-ggml.cpp.i +.PHONY : convert-llama2c-to-ggml.i + +# target to preprocess a source file +convert-llama2c-to-ggml.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.i +.PHONY : convert-llama2c-to-ggml.cpp.i + +convert-llama2c-to-ggml.s: convert-llama2c-to-ggml.cpp.s +.PHONY : convert-llama2c-to-ggml.s + +# target to generate assembly for a file +convert-llama2c-to-ggml.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/build.make examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.s +.PHONY : convert-llama2c-to-ggml.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-convert-llama2c-to-ggml" + @echo "... convert-llama2c-to-ggml.o" + @echo "... convert-llama2c-to-ggml.i" + @echo "... convert-llama2c-to-ggml.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/convert-llama2c-to-ggml/cmake_install.cmake b/llama.cpp/build/examples/convert-llama2c-to-ggml/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0aca3d05a5ad759a286b7060c3fc27e07604de94 --- /dev/null +++ b/llama.cpp/build/examples/convert-llama2c-to-ggml/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/convert-llama2c-to-ggml + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-convert-llama2c-to-ggml") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-convert-llama2c-to-ggml") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/cvector-generator/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/DependInfo.cmake b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..35b655469c7edfba6d3b44ef80cfb9674b3920bc --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp" "examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o" "gcc" "examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ebd3f37347dc14bbb568f39b2f3320b7f9aeecd8 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/flags.make + +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/flags.make +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o: ../examples/cvector-generator/cvector-generator.cpp +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o -MF CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o.d -o CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp" + +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp" > CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.i + +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp" -o CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.s + +# Object files for target llama-cvector-generator +llama__cvector__generator_OBJECTS = \ +"CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o" + +# External object files for target llama-cvector-generator +llama__cvector__generator_EXTERNAL_OBJECTS = + +bin/llama-cvector-generator: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o +bin/llama-cvector-generator: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make +bin/llama-cvector-generator: common/libcommon.a +bin/llama-cvector-generator: src/libllama.so +bin/llama-cvector-generator: ggml/src/libggml.so +bin/llama-cvector-generator: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-cvector-generator: ggml/src/libggml-base.so +bin/llama-cvector-generator: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-cvector-generator" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-cvector-generator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build: bin/llama-cvector-generator +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build + +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator" && $(CMAKE_COMMAND) -P CMakeFiles/llama-cvector-generator.dir/cmake_clean.cmake +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/clean + +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend + diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cmake_clean.cmake b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..67813087899a9bbe9b17b5680a4ca6126bbf6393 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-cvector-generator" + "../../bin/llama-cvector-generator.pdb" + "CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o" + "CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-cvector-generator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.make b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8fd64a509c0053d0ff475c41d2590bcfa9ffe303 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-cvector-generator. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.ts b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..44d85f55d90f22eefdf06dc2c9bf7ba7e6bb0e4a --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-cvector-generator. diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..3e40b3a2d93339cafb7ae7d0900e70e68d8d34c3 Binary files /dev/null and b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o differ diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o.d b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6c385ea9fa2e00e64e859fcb12863274d376ae05 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o.d @@ -0,0 +1,238 @@ +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/cvector-generator.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/pca.hpp \ + /usr/include/c++/11/ctime /usr/include/c++/11/random \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h \ + /usr/include/c++/11/pstl/execution_defs.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator/mean.hpp \ + /usr/include/c++/11/math.h /usr/include/c++/11/algorithm \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend.make b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0e72053d6212cd0c4124be40b983e19de7c5871b --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-cvector-generator. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/flags.make b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/link.txt b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..192e8d2cf8ec2a5f9f5d6b2ff4b59510a1842cf4 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o -o ../../bin/llama-cvector-generator -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/progress.make b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..e3687518de19f0304640879df0eab20b507a1a99 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 26 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/cvector-generator/CMakeFiles/progress.marks b/llama.cpp/build/examples/cvector-generator/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/cvector-generator/CTestTestfile.cmake b/llama.cpp/build/examples/cvector-generator/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..40251396b625aa250da42b1291a83403d1f4643b --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/cvector-generator/Makefile b/llama.cpp/build/examples/cvector-generator/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..946cc97846d568d95d6177587c325cd2280e6294 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/cvector-generator//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cvector-generator/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cvector-generator/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cvector-generator/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cvector-generator/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule +.PHONY : examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule + +# Convenience name for target. +llama-cvector-generator: examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/rule +.PHONY : llama-cvector-generator + +# fast build rule for target. +llama-cvector-generator/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build +.PHONY : llama-cvector-generator/fast + +cvector-generator.o: cvector-generator.cpp.o +.PHONY : cvector-generator.o + +# target to build an object file +cvector-generator.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o +.PHONY : cvector-generator.cpp.o + +cvector-generator.i: cvector-generator.cpp.i +.PHONY : cvector-generator.i + +# target to preprocess a source file +cvector-generator.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.i +.PHONY : cvector-generator.cpp.i + +cvector-generator.s: cvector-generator.cpp.s +.PHONY : cvector-generator.s + +# target to generate assembly for a file +cvector-generator.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/build.make examples/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.s +.PHONY : cvector-generator.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-cvector-generator" + @echo "... cvector-generator.o" + @echo "... cvector-generator.i" + @echo "... cvector-generator.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/cvector-generator/cmake_install.cmake b/llama.cpp/build/examples/cvector-generator/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e2c8f574d90c3113bc3fa8bd06ef48b30907f298 --- /dev/null +++ b/llama.cpp/build/examples/cvector-generator/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/cvector-generator + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-cvector-generator") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cvector-generator") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/embedding/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/DependInfo.cmake b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e53061728456a527aca5b98835bb6b18fd54f14b --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp" "examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o" "gcc" "examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/build.make b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..97128774815f5a7493a69563e8ef4bab1ab7e7a0 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/embedding/CMakeFiles/llama-embedding.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/embedding/CMakeFiles/llama-embedding.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/embedding/CMakeFiles/llama-embedding.dir/flags.make + +examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o: examples/embedding/CMakeFiles/llama-embedding.dir/flags.make +examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o: ../examples/embedding/embedding.cpp +examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o: examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o -MF CMakeFiles/llama-embedding.dir/embedding.cpp.o.d -o CMakeFiles/llama-embedding.dir/embedding.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp" + +examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-embedding.dir/embedding.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp" > CMakeFiles/llama-embedding.dir/embedding.cpp.i + +examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-embedding.dir/embedding.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp" -o CMakeFiles/llama-embedding.dir/embedding.cpp.s + +# Object files for target llama-embedding +llama__embedding_OBJECTS = \ +"CMakeFiles/llama-embedding.dir/embedding.cpp.o" + +# External object files for target llama-embedding +llama__embedding_EXTERNAL_OBJECTS = + +bin/llama-embedding: examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o +bin/llama-embedding: examples/embedding/CMakeFiles/llama-embedding.dir/build.make +bin/llama-embedding: common/libcommon.a +bin/llama-embedding: src/libllama.so +bin/llama-embedding: ggml/src/libggml.so +bin/llama-embedding: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-embedding: ggml/src/libggml-base.so +bin/llama-embedding: examples/embedding/CMakeFiles/llama-embedding.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-embedding" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-embedding.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/embedding/CMakeFiles/llama-embedding.dir/build: bin/llama-embedding +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/build + +examples/embedding/CMakeFiles/llama-embedding.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding" && $(CMAKE_COMMAND) -P CMakeFiles/llama-embedding.dir/cmake_clean.cmake +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/clean + +examples/embedding/CMakeFiles/llama-embedding.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/depend + diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/cmake_clean.cmake b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ac30f8ec99e5e4ba7c237770f837477916fe1d19 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-embedding" + "../../bin/llama-embedding.pdb" + "CMakeFiles/llama-embedding.dir/embedding.cpp.o" + "CMakeFiles/llama-embedding.dir/embedding.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-embedding.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.make b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1c00bccefd447c13d1b0b025d62126d7b57d7380 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-embedding. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.ts b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..10294ccd6eb3dabe6323108bd21d684c3d6cb286 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-embedding. diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/depend.make b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ef765acc15a55e0cff4666e4d6c2683ebc6f4a2e --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-embedding. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..1f7c89ba6233d0acc322b61367eada1cb6da2b4b Binary files /dev/null and b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o differ diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o.d b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..fdda89ab13d0e3ed39083bbfa6919f350d26dfa0 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o.d @@ -0,0 +1,177 @@ +examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding/embedding.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/ctime diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/flags.make b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/link.txt b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9376ceff50cbcbb1a406adf2b75b5a356d7c82c --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-embedding.dir/embedding.cpp.o -o ../../bin/llama-embedding -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/progress.make b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..8791cb65082d4d1cbd0c3dab0c87ce9cc1a42356 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/llama-embedding.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 27 +CMAKE_PROGRESS_2 = 28 + diff --git a/llama.cpp/build/examples/embedding/CMakeFiles/progress.marks b/llama.cpp/build/examples/embedding/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..2bd5a0a98a36cc08ada88b804d3be047e6aa5b8a --- /dev/null +++ b/llama.cpp/build/examples/embedding/CMakeFiles/progress.marks @@ -0,0 +1 @@ +22 diff --git a/llama.cpp/build/examples/embedding/CTestTestfile.cmake b/llama.cpp/build/examples/embedding/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3b1ece85e40724a384110d88402939319e649b71 --- /dev/null +++ b/llama.cpp/build/examples/embedding/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/embedding/Makefile b/llama.cpp/build/examples/embedding/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..791685064598a8fef1ce69d77bee0a46f674f504 --- /dev/null +++ b/llama.cpp/build/examples/embedding/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/embedding//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/embedding/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/embedding/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/embedding/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/embedding/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/embedding/CMakeFiles/llama-embedding.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/embedding/CMakeFiles/llama-embedding.dir/rule +.PHONY : examples/embedding/CMakeFiles/llama-embedding.dir/rule + +# Convenience name for target. +llama-embedding: examples/embedding/CMakeFiles/llama-embedding.dir/rule +.PHONY : llama-embedding + +# fast build rule for target. +llama-embedding/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/build +.PHONY : llama-embedding/fast + +embedding.o: embedding.cpp.o +.PHONY : embedding.o + +# target to build an object file +embedding.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o +.PHONY : embedding.cpp.o + +embedding.i: embedding.cpp.i +.PHONY : embedding.i + +# target to preprocess a source file +embedding.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.i +.PHONY : embedding.cpp.i + +embedding.s: embedding.cpp.s +.PHONY : embedding.s + +# target to generate assembly for a file +embedding.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/embedding/CMakeFiles/llama-embedding.dir/build.make examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.s +.PHONY : embedding.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-embedding" + @echo "... embedding.o" + @echo "... embedding.i" + @echo "... embedding.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/embedding/cmake_install.cmake b/llama.cpp/build/examples/embedding/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b2c8341b7d796a561a97aedb14d2d75189d9044f --- /dev/null +++ b/llama.cpp/build/examples/embedding/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/embedding + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-embedding") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-embedding") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/eval-callback/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/DependInfo.cmake b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b4f90f6efadd16111dbf20e658af8e298fdf87d4 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp" "examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o" "gcc" "examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2c14b8cc0e9bea324ee4167bfbf7420534ec50c8 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/eval-callback/CMakeFiles/llama-eval-callback.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/eval-callback/CMakeFiles/llama-eval-callback.dir/flags.make + +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/flags.make +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o: ../examples/eval-callback/eval-callback.cpp +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o -MF CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o.d -o CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp" + +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp" > CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.i + +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp" -o CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.s + +# Object files for target llama-eval-callback +llama__eval__callback_OBJECTS = \ +"CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o" + +# External object files for target llama-eval-callback +llama__eval__callback_EXTERNAL_OBJECTS = + +bin/llama-eval-callback: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o +bin/llama-eval-callback: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make +bin/llama-eval-callback: common/libcommon.a +bin/llama-eval-callback: src/libllama.so +bin/llama-eval-callback: ggml/src/libggml.so +bin/llama-eval-callback: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-eval-callback: ggml/src/libggml-base.so +bin/llama-eval-callback: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-eval-callback" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-eval-callback.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build: bin/llama-eval-callback +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build + +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback" && $(CMAKE_COMMAND) -P CMakeFiles/llama-eval-callback.dir/cmake_clean.cmake +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/clean + +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend + diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/cmake_clean.cmake b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..da27d38ba783ecc3beb1ed8dfd6d97ffd00256d8 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-eval-callback" + "../../bin/llama-eval-callback.pdb" + "CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o" + "CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-eval-callback.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.make b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c66bc5d83bbdd13f97e548f0ed076ac30c93929e --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-eval-callback. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.ts b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e03830fdb72aca8b3f10082e5a7b562accd9f854 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-eval-callback. diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend.make b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..34a7be8b4920fe2e3e4cf725c6a5f27f5b6c8046 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-eval-callback. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..337c96c4e4857c9879bb6feebe9677d4f12d7f2e Binary files /dev/null and b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o differ diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o.d b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..3d89e69f47e8b064a00caab7daf27809bd539e20 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o.d @@ -0,0 +1,176 @@ +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/eval-callback.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/flags.make b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/link.txt b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..548f97af9c7eace26413d7b35548e14b29605b8c --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o -o ../../bin/llama-eval-callback -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/progress.make b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..b2fb3ce841abcc556e57c9fecf7a3bdebe37a45a --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/llama-eval-callback.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 29 + diff --git a/llama.cpp/build/examples/eval-callback/CMakeFiles/progress.marks b/llama.cpp/build/examples/eval-callback/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/eval-callback/CTestTestfile.cmake b/llama.cpp/build/examples/eval-callback/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5107eb19664027c6ad4b6ff3c28da34e05be344a --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/CTestTestfile.cmake @@ -0,0 +1,8 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(test-eval-callback "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-eval-callback" "--hf-repo" "ggml-org/models" "--hf-file" "tinyllamas/stories260K.gguf" "--model" "stories260K.gguf" "--prompt" "hello" "--seed" "42" "-ngl" "0") +set_tests_properties(test-eval-callback PROPERTIES LABELS "eval-callback;curl" _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/CMakeLists.txt;8;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback/CMakeLists.txt;0;") diff --git a/llama.cpp/build/examples/eval-callback/Makefile b/llama.cpp/build/examples/eval-callback/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..140be91d4e0d72139227d4a4cbe2ce172010a0a3 --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/eval-callback//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/eval-callback/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/eval-callback/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/eval-callback/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/eval-callback/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule +.PHONY : examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule + +# Convenience name for target. +llama-eval-callback: examples/eval-callback/CMakeFiles/llama-eval-callback.dir/rule +.PHONY : llama-eval-callback + +# fast build rule for target. +llama-eval-callback/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build +.PHONY : llama-eval-callback/fast + +eval-callback.o: eval-callback.cpp.o +.PHONY : eval-callback.o + +# target to build an object file +eval-callback.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o +.PHONY : eval-callback.cpp.o + +eval-callback.i: eval-callback.cpp.i +.PHONY : eval-callback.i + +# target to preprocess a source file +eval-callback.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.i +.PHONY : eval-callback.cpp.i + +eval-callback.s: eval-callback.cpp.s +.PHONY : eval-callback.s + +# target to generate assembly for a file +eval-callback.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/eval-callback/CMakeFiles/llama-eval-callback.dir/build.make examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.s +.PHONY : eval-callback.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-eval-callback" + @echo "... eval-callback.o" + @echo "... eval-callback.i" + @echo "... eval-callback.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/eval-callback/cmake_install.cmake b/llama.cpp/build/examples/eval-callback/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5b797ea4f216f4ed4ec51e409b5df13180af717a --- /dev/null +++ b/llama.cpp/build/examples/eval-callback/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/eval-callback + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-eval-callback") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-eval-callback") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/export-lora/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/DependInfo.cmake b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..37d8154be78711d4b0296218d3ccdf953c2071e4 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp" "examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o" "gcc" "examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..246734c2238484903a90816ff1367d104267fa19 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/export-lora/CMakeFiles/llama-export-lora.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/export-lora/CMakeFiles/llama-export-lora.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/export-lora/CMakeFiles/llama-export-lora.dir/flags.make + +examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o: examples/export-lora/CMakeFiles/llama-export-lora.dir/flags.make +examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o: ../examples/export-lora/export-lora.cpp +examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o: examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o -MF CMakeFiles/llama-export-lora.dir/export-lora.cpp.o.d -o CMakeFiles/llama-export-lora.dir/export-lora.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp" + +examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-export-lora.dir/export-lora.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp" > CMakeFiles/llama-export-lora.dir/export-lora.cpp.i + +examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-export-lora.dir/export-lora.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp" -o CMakeFiles/llama-export-lora.dir/export-lora.cpp.s + +# Object files for target llama-export-lora +llama__export__lora_OBJECTS = \ +"CMakeFiles/llama-export-lora.dir/export-lora.cpp.o" + +# External object files for target llama-export-lora +llama__export__lora_EXTERNAL_OBJECTS = + +bin/llama-export-lora: examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o +bin/llama-export-lora: examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make +bin/llama-export-lora: common/libcommon.a +bin/llama-export-lora: src/libllama.so +bin/llama-export-lora: ggml/src/libggml.so +bin/llama-export-lora: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-export-lora: ggml/src/libggml-base.so +bin/llama-export-lora: examples/export-lora/CMakeFiles/llama-export-lora.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-export-lora" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-export-lora.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/export-lora/CMakeFiles/llama-export-lora.dir/build: bin/llama-export-lora +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/build + +examples/export-lora/CMakeFiles/llama-export-lora.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora" && $(CMAKE_COMMAND) -P CMakeFiles/llama-export-lora.dir/cmake_clean.cmake +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/clean + +examples/export-lora/CMakeFiles/llama-export-lora.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/depend + diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/cmake_clean.cmake b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5eb29d857dee9f4722674890b352352ee4c946d1 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-export-lora" + "../../bin/llama-export-lora.pdb" + "CMakeFiles/llama-export-lora.dir/export-lora.cpp.o" + "CMakeFiles/llama-export-lora.dir/export-lora.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-export-lora.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.make b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b00f1ba8900f74dd93939669f906e266866f3070 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-export-lora. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.ts b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b05119ecbf1e0633c357b2d017f61009424ec56f --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-export-lora. diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/depend.make b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7fcad7ed162c09c9591b6199b455e18f82a4e010 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-export-lora. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4ca6281b2b1eb309272b2f096976438524e429cf Binary files /dev/null and b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o differ diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o.d b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6f8d12f79c9450d0fbddf93b49c78f661dc9baf0 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o.d @@ -0,0 +1,189 @@ +examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora/export-lora.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/flags.make b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/link.txt b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..b164341c0cae8ac7b7451ecc80fb143c26183837 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-export-lora.dir/export-lora.cpp.o -o ../../bin/llama-export-lora -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/progress.make b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..15129b87557d9a3e9f8d87aaa4cabcb5adc26a41 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/llama-export-lora.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 30 + diff --git a/llama.cpp/build/examples/export-lora/CMakeFiles/progress.marks b/llama.cpp/build/examples/export-lora/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/export-lora/CTestTestfile.cmake b/llama.cpp/build/examples/export-lora/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..454987a09227e50b455c9f764926b83b2b544e72 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/export-lora/Makefile b/llama.cpp/build/examples/export-lora/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..7c724b07bcf8f5fb3681048060c609a2db5493d7 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/export-lora//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/export-lora/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/export-lora/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/export-lora/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/export-lora/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/export-lora/CMakeFiles/llama-export-lora.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/export-lora/CMakeFiles/llama-export-lora.dir/rule +.PHONY : examples/export-lora/CMakeFiles/llama-export-lora.dir/rule + +# Convenience name for target. +llama-export-lora: examples/export-lora/CMakeFiles/llama-export-lora.dir/rule +.PHONY : llama-export-lora + +# fast build rule for target. +llama-export-lora/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/build +.PHONY : llama-export-lora/fast + +export-lora.o: export-lora.cpp.o +.PHONY : export-lora.o + +# target to build an object file +export-lora.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o +.PHONY : export-lora.cpp.o + +export-lora.i: export-lora.cpp.i +.PHONY : export-lora.i + +# target to preprocess a source file +export-lora.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.i +.PHONY : export-lora.cpp.i + +export-lora.s: export-lora.cpp.s +.PHONY : export-lora.s + +# target to generate assembly for a file +export-lora.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/export-lora/CMakeFiles/llama-export-lora.dir/build.make examples/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.s +.PHONY : export-lora.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-export-lora" + @echo "... export-lora.o" + @echo "... export-lora.i" + @echo "... export-lora.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/export-lora/cmake_install.cmake b/llama.cpp/build/examples/export-lora/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..42f37c05fbbfc07398e62782eab84f735dd7cdd0 --- /dev/null +++ b/llama.cpp/build/examples/export-lora/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/export-lora + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-export-lora") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-export-lora") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/DependInfo.cmake b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c456ba1bdb51ff0b42c818f28571aecacf83439a --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp" "examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o" "gcc" "examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1cdf374f70e74f500425c1db4feb410b28940bb4 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/flags.make + +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/flags.make +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o: ../examples/gbnf-validator/gbnf-validator.cpp +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o -MF CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o.d -o CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp" + +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp" > CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.i + +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp" -o CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.s + +# Object files for target llama-gbnf-validator +llama__gbnf__validator_OBJECTS = \ +"CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o" + +# External object files for target llama-gbnf-validator +llama__gbnf__validator_EXTERNAL_OBJECTS = + +bin/llama-gbnf-validator: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o +bin/llama-gbnf-validator: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make +bin/llama-gbnf-validator: common/libcommon.a +bin/llama-gbnf-validator: src/libllama.so +bin/llama-gbnf-validator: ggml/src/libggml.so +bin/llama-gbnf-validator: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-gbnf-validator: ggml/src/libggml-base.so +bin/llama-gbnf-validator: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-gbnf-validator" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-gbnf-validator.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build: bin/llama-gbnf-validator +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build + +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator" && $(CMAKE_COMMAND) -P CMakeFiles/llama-gbnf-validator.dir/cmake_clean.cmake +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/clean + +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend + diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/cmake_clean.cmake b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d84f64357ab7aba95277bab5c5808a3d193fceab --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-gbnf-validator" + "../../bin/llama-gbnf-validator.pdb" + "CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o" + "CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-gbnf-validator.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.make b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..da945d9c252dc6278e89cb1d5af2095373aac238 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-gbnf-validator. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.ts b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..db6590b395b811e7f628ba97172ee7b466d704b2 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-gbnf-validator. diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend.make b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..77250424103e012114881f693366f5ae686dcd97 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-gbnf-validator. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/flags.make b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..76502385e952f9797deb7b77fe9d1d8a27e0e292 Binary files /dev/null and b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o differ diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o.d b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..7510312b6884c9b5ad0362a0ac684064d93ea543 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o.d @@ -0,0 +1,182 @@ +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator/gbnf-validator.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./unicode.h \ + /usr/include/c++/11/cstdint \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/link.txt b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..876db8dcac5fdf2c1aaa80e60ee80c35357b1f31 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o -o ../../bin/llama-gbnf-validator -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/progress.make b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..eda664886c5c82416667ed3a619dd9ef67560893 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 31 + diff --git a/llama.cpp/build/examples/gbnf-validator/CMakeFiles/progress.marks b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/gbnf-validator/CTestTestfile.cmake b/llama.cpp/build/examples/gbnf-validator/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f24a4ca21511d713d857214ac3800ff7e72b4579 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/gbnf-validator/Makefile b/llama.cpp/build/examples/gbnf-validator/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..99e5dcd1778ecb2acb535ee7d06d2c374d3b9e43 --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gbnf-validator//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gbnf-validator/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gbnf-validator/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gbnf-validator/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gbnf-validator/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule +.PHONY : examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule + +# Convenience name for target. +llama-gbnf-validator: examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/rule +.PHONY : llama-gbnf-validator + +# fast build rule for target. +llama-gbnf-validator/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build +.PHONY : llama-gbnf-validator/fast + +gbnf-validator.o: gbnf-validator.cpp.o +.PHONY : gbnf-validator.o + +# target to build an object file +gbnf-validator.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.o +.PHONY : gbnf-validator.cpp.o + +gbnf-validator.i: gbnf-validator.cpp.i +.PHONY : gbnf-validator.i + +# target to preprocess a source file +gbnf-validator.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.i +.PHONY : gbnf-validator.cpp.i + +gbnf-validator.s: gbnf-validator.cpp.s +.PHONY : gbnf-validator.s + +# target to generate assembly for a file +gbnf-validator.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/build.make examples/gbnf-validator/CMakeFiles/llama-gbnf-validator.dir/gbnf-validator.cpp.s +.PHONY : gbnf-validator.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-gbnf-validator" + @echo "... gbnf-validator.o" + @echo "... gbnf-validator.i" + @echo "... gbnf-validator.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/gbnf-validator/cmake_install.cmake b/llama.cpp/build/examples/gbnf-validator/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c22bca1a2368d4debc00a6968a5083180ecc8b3e --- /dev/null +++ b/llama.cpp/build/examples/gbnf-validator/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gbnf-validator + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-gbnf-validator") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gbnf-validator") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/DependInfo.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4bd5f645c9b16fda5d0da395451e39e324b2170d --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/DependInfo.cmake @@ -0,0 +1,22 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp" "examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o" "gcc" "examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c71fc1806151ecbe367ad908bd267201f14fd52e --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make @@ -0,0 +1,119 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/flags.make + +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/flags.make +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o: ../examples/gguf-hash/gguf-hash.cpp +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o -MF CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o.d -o CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp" + +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp" > CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.i + +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp" -o CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.s + +# Object files for target llama-gguf-hash +llama__gguf__hash_OBJECTS = \ +"CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o" + +# External object files for target llama-gguf-hash +llama__gguf__hash_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o" \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o" \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o" + +bin/llama-gguf-hash: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o +bin/llama-gguf-hash: examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o +bin/llama-gguf-hash: examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o +bin/llama-gguf-hash: examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o +bin/llama-gguf-hash: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make +bin/llama-gguf-hash: ggml/src/libggml.so +bin/llama-gguf-hash: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-gguf-hash: ggml/src/libggml-base.so +bin/llama-gguf-hash: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-gguf-hash" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-gguf-hash.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build: bin/llama-gguf-hash +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build + +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && $(CMAKE_COMMAND) -P CMakeFiles/llama-gguf-hash.dir/cmake_clean.cmake +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/clean + +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/cmake_clean.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..12f4b7afd7b1864480f96b33b2600ebb8dfa8bc7 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-gguf-hash" + "../../bin/llama-gguf-hash.pdb" + "CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o" + "CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C CXX) + include(CMakeFiles/llama-gguf-hash.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..917faad8bc4cb1dd9f7d762ba7c08e763a33357a --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-gguf-hash. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.ts b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..ba419d60823b137979d1c2fbd545f0ee847417c1 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-gguf-hash. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..042db2b203dcd98d9bdb0f79922479ef0f559dfc --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-gguf-hash. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/flags.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..74a368b029cd91f74ec3f997cb586ea84c8c5386 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/flags.make @@ -0,0 +1,17 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +# compile CXX with /usr/bin/c++ +C_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +C_FLAGS = -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion + +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d91c2f54c6d0b9e133b4db991df0c0dc2c17f834 Binary files /dev/null and b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o differ diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o.d b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f68a65aee4f9c511815b3d4e242a2bad7899a6a3 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o.d @@ -0,0 +1,193 @@ +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/gguf-hash.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstddef \ + /usr/include/c++/11/cstdio /usr/include/c++/11/string \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/sstream /usr/include/c++/11/istream \ + /usr/include/c++/11/ios /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.h \ + /usr/include/c++/11/stdlib.h diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/link.txt b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..4cbc8aa782a6a3a32d0b36d5199a0f293e17a677 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o CMakeFiles/sha1.dir/deps/sha1/sha1.c.o CMakeFiles/sha256.dir/deps/sha256/sha256.c.o -o ../../bin/llama-gguf-hash -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/progress.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..1b6d3a4d412096790974e849f31cc8dfa94c4b48 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 33 + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/progress.marks b/llama.cpp/build/examples/gguf-hash/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..b1bd38b62a0800a4f6a80c34e21c5acffae52c7e --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/progress.marks @@ -0,0 +1 @@ +13 diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/DependInfo.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9974bf4e6ca6746055f30170ce6bea8fc64790e7 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c" "examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o" "gcc" "examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/build.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f37ad79d73452d11c01175d10c23b5f6ed1b9244 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/build.make @@ -0,0 +1,101 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gguf-hash/CMakeFiles/sha1.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gguf-hash/CMakeFiles/sha1.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gguf-hash/CMakeFiles/sha1.dir/flags.make + +examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o: examples/gguf-hash/CMakeFiles/sha1.dir/flags.make +examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o: ../examples/gguf-hash/deps/sha1/sha1.c +examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o: examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building C object examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o -MF CMakeFiles/sha1.dir/deps/sha1/sha1.c.o.d -o CMakeFiles/sha1.dir/deps/sha1/sha1.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c" + +examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/sha1.dir/deps/sha1/sha1.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c" > CMakeFiles/sha1.dir/deps/sha1/sha1.c.i + +examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/sha1.dir/deps/sha1/sha1.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c" -o CMakeFiles/sha1.dir/deps/sha1/sha1.c.s + +sha1: examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o +sha1: examples/gguf-hash/CMakeFiles/sha1.dir/build.make +.PHONY : sha1 + +# Rule to build all files generated by this target. +examples/gguf-hash/CMakeFiles/sha1.dir/build: sha1 +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/build + +examples/gguf-hash/CMakeFiles/sha1.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && $(CMAKE_COMMAND) -P CMakeFiles/sha1.dir/cmake_clean.cmake +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/clean + +examples/gguf-hash/CMakeFiles/sha1.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/depend + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/cmake_clean.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1f1a073f607785ad49c595e6007bd08ee5785194 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/cmake_clean.cmake @@ -0,0 +1,9 @@ +file(REMOVE_RECURSE + "CMakeFiles/sha1.dir/deps/sha1/sha1.c.o" + "CMakeFiles/sha1.dir/deps/sha1/sha1.c.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/sha1.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..72c9a9341a7f2168a88094fd6cf5fa93adf9cca9 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for sha1. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.ts b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..34ef64bd4bec1126ff17b0ea845c02a95b9c52fa --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for sha1. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f8eb0ac839d9a93612ada876740612e8a7201142 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for sha1. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o new file mode 100644 index 0000000000000000000000000000000000000000..8988ae581f538ad1e484210bc2daf3f4e5225177 Binary files /dev/null and b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o differ diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o.d b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c138abfc0824d82d55318c1eaa47914662c53ba1 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o.d @@ -0,0 +1,37 @@ +examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.c \ + /usr/include/stdc-predef.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha1/sha1.h diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/flags.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..683d1ea57cb1b0da856d57368b0268b7cc69793c --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +C_DEFINES = + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps" + +C_FLAGS = -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -w + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/progress.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..225de343d65c51fd774bbe0e1adee2d439eb81dc --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha1.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/DependInfo.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a199ba2885dccb73a5f941aa4ca3775a4a663cde --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c" "examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o" "gcc" "examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/build.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..09110da76b8526100f1e18a0535831acf2bbb44e --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/build.make @@ -0,0 +1,101 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gguf-hash/CMakeFiles/sha256.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gguf-hash/CMakeFiles/sha256.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gguf-hash/CMakeFiles/sha256.dir/flags.make + +examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o: examples/gguf-hash/CMakeFiles/sha256.dir/flags.make +examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o: ../examples/gguf-hash/deps/sha256/sha256.c +examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o: examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building C object examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o -MF CMakeFiles/sha256.dir/deps/sha256/sha256.c.o.d -o CMakeFiles/sha256.dir/deps/sha256/sha256.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c" + +examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/sha256.dir/deps/sha256/sha256.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c" > CMakeFiles/sha256.dir/deps/sha256/sha256.c.i + +examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/sha256.dir/deps/sha256/sha256.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c" -o CMakeFiles/sha256.dir/deps/sha256/sha256.c.s + +sha256: examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o +sha256: examples/gguf-hash/CMakeFiles/sha256.dir/build.make +.PHONY : sha256 + +# Rule to build all files generated by this target. +examples/gguf-hash/CMakeFiles/sha256.dir/build: sha256 +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/build + +examples/gguf-hash/CMakeFiles/sha256.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && $(CMAKE_COMMAND) -P CMakeFiles/sha256.dir/cmake_clean.cmake +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/clean + +examples/gguf-hash/CMakeFiles/sha256.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/depend + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/cmake_clean.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5fbbde770a6f0ee64527ddf8834ad6bee46b9f7b --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/cmake_clean.cmake @@ -0,0 +1,9 @@ +file(REMOVE_RECURSE + "CMakeFiles/sha256.dir/deps/sha256/sha256.c.o" + "CMakeFiles/sha256.dir/deps/sha256/sha256.c.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/sha256.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9557fed903f78765061af0fd26d4c8d78ffc2bcb --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for sha256. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.ts b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a4977ea35a32f22509c8db6624067ab4da50516c --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for sha256. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a1fb4b914b0e30a33cbf4882f053e3887b236966 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for sha256. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o new file mode 100644 index 0000000000000000000000000000000000000000..e6c4093f25173348b551dd073693c271253ba479 Binary files /dev/null and b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o differ diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o.d b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..8f2bb5fc37526f465c60231ccd54fd811f98beca --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o.d @@ -0,0 +1,50 @@ +examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/rotate-bits/rotate-bits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/sha256/sha256.h \ + /usr/include/stdlib.h /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/flags.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..f3573da581649946f32a105bd5c9caf399bbf848 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +C_DEFINES = + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps" + +C_FLAGS = -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/progress.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..a294b1cc4cc8bab41af3487c75ac1ebfb70d9749 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/sha256.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = 70 + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/DependInfo.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1e49d616d248fb27e111e69462f5e825b0b891a2 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/DependInfo.cmake @@ -0,0 +1,19 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c" "examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o" "gcc" "examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/build.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..5921f35de8483d622c61235e94e896273e6e3ea8 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/build.make @@ -0,0 +1,101 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gguf-hash/CMakeFiles/xxhash.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gguf-hash/CMakeFiles/xxhash.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gguf-hash/CMakeFiles/xxhash.dir/flags.make + +examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o: examples/gguf-hash/CMakeFiles/xxhash.dir/flags.make +examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o: ../examples/gguf-hash/deps/xxhash/xxhash.c +examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o: examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building C object examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o -MF CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o.d -o CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c" + +examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c" > CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.i + +examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c" -o CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.s + +xxhash: examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o +xxhash: examples/gguf-hash/CMakeFiles/xxhash.dir/build.make +.PHONY : xxhash + +# Rule to build all files generated by this target. +examples/gguf-hash/CMakeFiles/xxhash.dir/build: xxhash +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/build + +examples/gguf-hash/CMakeFiles/xxhash.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" && $(CMAKE_COMMAND) -P CMakeFiles/xxhash.dir/cmake_clean.cmake +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/clean + +examples/gguf-hash/CMakeFiles/xxhash.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/depend + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/cmake_clean.cmake b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a2f918c99057c305ee3246cb227a478d5b20ccc0 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/cmake_clean.cmake @@ -0,0 +1,9 @@ +file(REMOVE_RECURSE + "CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o" + "CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/xxhash.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..74a5addb46572601ea04225134cbd2f3631107ac --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for xxhash. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.ts b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..90ad7222965cf334d66fa794a726365a648ce509 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for xxhash. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/depend.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..46ed4f0b90243c7feea3d94fba020f3b5b51babf --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for xxhash. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o new file mode 100644 index 0000000000000000000000000000000000000000..ce61746135ba259ef714c382f15b4c15f7813c84 Binary files /dev/null and b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o differ diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o.d b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..421693ecbea9b3b64d4f0da544e0882289b6c6ee --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o.d @@ -0,0 +1,67 @@ +examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps/xxhash/xxhash.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdalign.h \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/flags.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..f3573da581649946f32a105bd5c9caf399bbf848 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +C_DEFINES = + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash/deps" + +C_FLAGS = -O3 -DNDEBUG -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion + diff --git a/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/progress.make b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..7ad5bcb87336ecddfabfd000bc1627a2f2af8429 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CMakeFiles/xxhash.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = 100 + diff --git a/llama.cpp/build/examples/gguf-hash/CTestTestfile.cmake b/llama.cpp/build/examples/gguf-hash/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6888da9e16bf6efd77d697c3883cd70187d9e5a0 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/gguf-hash/Makefile b/llama.cpp/build/examples/gguf-hash/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d6962c0e31a0878e88e1d6ebe2cf0bc80dfae296 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/Makefile @@ -0,0 +1,368 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-hash//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule +.PHONY : examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule + +# Convenience name for target. +llama-gguf-hash: examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/rule +.PHONY : llama-gguf-hash + +# fast build rule for target. +llama-gguf-hash/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build +.PHONY : llama-gguf-hash/fast + +# Convenience name for target. +examples/gguf-hash/CMakeFiles/xxhash.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/xxhash.dir/rule +.PHONY : examples/gguf-hash/CMakeFiles/xxhash.dir/rule + +# Convenience name for target. +xxhash: examples/gguf-hash/CMakeFiles/xxhash.dir/rule +.PHONY : xxhash + +# fast build rule for target. +xxhash/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/build +.PHONY : xxhash/fast + +# Convenience name for target. +examples/gguf-hash/CMakeFiles/sha1.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/sha1.dir/rule +.PHONY : examples/gguf-hash/CMakeFiles/sha1.dir/rule + +# Convenience name for target. +sha1: examples/gguf-hash/CMakeFiles/sha1.dir/rule +.PHONY : sha1 + +# fast build rule for target. +sha1/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/build +.PHONY : sha1/fast + +# Convenience name for target. +examples/gguf-hash/CMakeFiles/sha256.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-hash/CMakeFiles/sha256.dir/rule +.PHONY : examples/gguf-hash/CMakeFiles/sha256.dir/rule + +# Convenience name for target. +sha256: examples/gguf-hash/CMakeFiles/sha256.dir/rule +.PHONY : sha256 + +# fast build rule for target. +sha256/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/build +.PHONY : sha256/fast + +deps/sha1/sha1.o: deps/sha1/sha1.c.o +.PHONY : deps/sha1/sha1.o + +# target to build an object file +deps/sha1/sha1.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o +.PHONY : deps/sha1/sha1.c.o + +deps/sha1/sha1.i: deps/sha1/sha1.c.i +.PHONY : deps/sha1/sha1.i + +# target to preprocess a source file +deps/sha1/sha1.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.i +.PHONY : deps/sha1/sha1.c.i + +deps/sha1/sha1.s: deps/sha1/sha1.c.s +.PHONY : deps/sha1/sha1.s + +# target to generate assembly for a file +deps/sha1/sha1.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha1.dir/build.make examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.s +.PHONY : deps/sha1/sha1.c.s + +deps/sha256/sha256.o: deps/sha256/sha256.c.o +.PHONY : deps/sha256/sha256.o + +# target to build an object file +deps/sha256/sha256.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o +.PHONY : deps/sha256/sha256.c.o + +deps/sha256/sha256.i: deps/sha256/sha256.c.i +.PHONY : deps/sha256/sha256.i + +# target to preprocess a source file +deps/sha256/sha256.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.i +.PHONY : deps/sha256/sha256.c.i + +deps/sha256/sha256.s: deps/sha256/sha256.c.s +.PHONY : deps/sha256/sha256.s + +# target to generate assembly for a file +deps/sha256/sha256.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/sha256.dir/build.make examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.s +.PHONY : deps/sha256/sha256.c.s + +deps/xxhash/xxhash.o: deps/xxhash/xxhash.c.o +.PHONY : deps/xxhash/xxhash.o + +# target to build an object file +deps/xxhash/xxhash.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o +.PHONY : deps/xxhash/xxhash.c.o + +deps/xxhash/xxhash.i: deps/xxhash/xxhash.c.i +.PHONY : deps/xxhash/xxhash.i + +# target to preprocess a source file +deps/xxhash/xxhash.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.i +.PHONY : deps/xxhash/xxhash.c.i + +deps/xxhash/xxhash.s: deps/xxhash/xxhash.c.s +.PHONY : deps/xxhash/xxhash.s + +# target to generate assembly for a file +deps/xxhash/xxhash.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/xxhash.dir/build.make examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.s +.PHONY : deps/xxhash/xxhash.c.s + +gguf-hash.o: gguf-hash.cpp.o +.PHONY : gguf-hash.o + +# target to build an object file +gguf-hash.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o +.PHONY : gguf-hash.cpp.o + +gguf-hash.i: gguf-hash.cpp.i +.PHONY : gguf-hash.i + +# target to preprocess a source file +gguf-hash.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.i +.PHONY : gguf-hash.cpp.i + +gguf-hash.s: gguf-hash.cpp.s +.PHONY : gguf-hash.s + +# target to generate assembly for a file +gguf-hash.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/build.make examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.s +.PHONY : gguf-hash.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-gguf-hash" + @echo "... sha1" + @echo "... sha256" + @echo "... xxhash" + @echo "... deps/sha1/sha1.o" + @echo "... deps/sha1/sha1.i" + @echo "... deps/sha1/sha1.s" + @echo "... deps/sha256/sha256.o" + @echo "... deps/sha256/sha256.i" + @echo "... deps/sha256/sha256.s" + @echo "... deps/xxhash/xxhash.o" + @echo "... deps/xxhash/xxhash.i" + @echo "... deps/xxhash/xxhash.s" + @echo "... gguf-hash.o" + @echo "... gguf-hash.i" + @echo "... gguf-hash.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/gguf-hash/cmake_install.cmake b/llama.cpp/build/examples/gguf-hash/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..59756f4d6e685e85fc12dd335f41496f7ac50009 --- /dev/null +++ b/llama.cpp/build/examples/gguf-hash/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-hash + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-gguf-hash") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-hash") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/gguf-split/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/DependInfo.cmake b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..72c47c16e0b1228820934eb1254b945d16ccd385 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp" "examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o" "gcc" "examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..cefcc3ef2b782db4ab8f50218f0634e9a30a1b27 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gguf-split/CMakeFiles/llama-gguf-split.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gguf-split/CMakeFiles/llama-gguf-split.dir/flags.make + +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/flags.make +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o: ../examples/gguf-split/gguf-split.cpp +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o -MF CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o.d -o CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp" + +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp" > CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.i + +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp" -o CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.s + +# Object files for target llama-gguf-split +llama__gguf__split_OBJECTS = \ +"CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o" + +# External object files for target llama-gguf-split +llama__gguf__split_EXTERNAL_OBJECTS = + +bin/llama-gguf-split: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o +bin/llama-gguf-split: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make +bin/llama-gguf-split: common/libcommon.a +bin/llama-gguf-split: src/libllama.so +bin/llama-gguf-split: ggml/src/libggml.so +bin/llama-gguf-split: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-gguf-split: ggml/src/libggml-base.so +bin/llama-gguf-split: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-gguf-split" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-gguf-split.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build: bin/llama-gguf-split +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build + +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split" && $(CMAKE_COMMAND) -P CMakeFiles/llama-gguf-split.dir/cmake_clean.cmake +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/clean + +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend + diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/cmake_clean.cmake b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4d218c8e6c40afa01fc71844ca3e4b7ac1bcc7dc --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-gguf-split" + "../../bin/llama-gguf-split.pdb" + "CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o" + "CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-gguf-split.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.make b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6d39327da5de5ac4d2baffc362897d41490ca420 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-gguf-split. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.ts b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..b90b153a45a7a7d9bd4c0338dacc78f8ed117dae --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-gguf-split. diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend.make b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..eb5ebe659bfe91e5d5096428bbf60548f69661d1 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-gguf-split. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/flags.make b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c9fe4b095e1a0fa4ebeb39928b96565dd4ec6707 Binary files /dev/null and b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o differ diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o.d b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..3dabf25e18a4e4ac215d81b9a11eb4e1b45d95f2 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o.d @@ -0,0 +1,226 @@ +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split/gguf-split.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/algorithm \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cmath \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/link.txt b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..33ba3f060fa42ecde3f23a34f9e9ae1237ccf809 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o -o ../../bin/llama-gguf-split -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/progress.make b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..527b7e9489bab7a000d5dffceeee2ce046f12c73 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/llama-gguf-split.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 34 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/gguf-split/CMakeFiles/progress.marks b/llama.cpp/build/examples/gguf-split/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/gguf-split/CTestTestfile.cmake b/llama.cpp/build/examples/gguf-split/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..90333a03e318406ee607b7b545ef45f2651c7c0d --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/gguf-split/Makefile b/llama.cpp/build/examples/gguf-split/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..bd4b9d3d523bf73c7d62d152aa46c22dadf31bcc --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf-split//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-split/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-split/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-split/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-split/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule +.PHONY : examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule + +# Convenience name for target. +llama-gguf-split: examples/gguf-split/CMakeFiles/llama-gguf-split.dir/rule +.PHONY : llama-gguf-split + +# fast build rule for target. +llama-gguf-split/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build +.PHONY : llama-gguf-split/fast + +gguf-split.o: gguf-split.cpp.o +.PHONY : gguf-split.o + +# target to build an object file +gguf-split.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o +.PHONY : gguf-split.cpp.o + +gguf-split.i: gguf-split.cpp.i +.PHONY : gguf-split.i + +# target to preprocess a source file +gguf-split.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.i +.PHONY : gguf-split.cpp.i + +gguf-split.s: gguf-split.cpp.s +.PHONY : gguf-split.s + +# target to generate assembly for a file +gguf-split.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf-split/CMakeFiles/llama-gguf-split.dir/build.make examples/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.s +.PHONY : gguf-split.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-gguf-split" + @echo "... gguf-split.o" + @echo "... gguf-split.i" + @echo "... gguf-split.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/gguf-split/cmake_install.cmake b/llama.cpp/build/examples/gguf-split/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..73293c7a9fad43bd08ac8e1f812524eda4a8e707 --- /dev/null +++ b/llama.cpp/build/examples/gguf-split/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf-split + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-gguf-split") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf-split") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/gguf/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/DependInfo.cmake b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cfa9018450586470203e10ce436b176b75d0a997 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/DependInfo.cmake @@ -0,0 +1,22 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp" "examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o" "gcc" "examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/build.make b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..56a4a6464dcfad9f9d14b5efb267c7a166aa779f --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gguf/CMakeFiles/llama-gguf.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gguf/CMakeFiles/llama-gguf.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gguf/CMakeFiles/llama-gguf.dir/flags.make + +examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o: examples/gguf/CMakeFiles/llama-gguf.dir/flags.make +examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o: ../examples/gguf/gguf.cpp +examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o: examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o -MF CMakeFiles/llama-gguf.dir/gguf.cpp.o.d -o CMakeFiles/llama-gguf.dir/gguf.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp" + +examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-gguf.dir/gguf.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp" > CMakeFiles/llama-gguf.dir/gguf.cpp.i + +examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-gguf.dir/gguf.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp" -o CMakeFiles/llama-gguf.dir/gguf.cpp.s + +# Object files for target llama-gguf +llama__gguf_OBJECTS = \ +"CMakeFiles/llama-gguf.dir/gguf.cpp.o" + +# External object files for target llama-gguf +llama__gguf_EXTERNAL_OBJECTS = + +bin/llama-gguf: examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o +bin/llama-gguf: examples/gguf/CMakeFiles/llama-gguf.dir/build.make +bin/llama-gguf: ggml/src/libggml.so +bin/llama-gguf: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-gguf: ggml/src/libggml-base.so +bin/llama-gguf: examples/gguf/CMakeFiles/llama-gguf.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-gguf" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-gguf.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/gguf/CMakeFiles/llama-gguf.dir/build: bin/llama-gguf +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/build + +examples/gguf/CMakeFiles/llama-gguf.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf" && $(CMAKE_COMMAND) -P CMakeFiles/llama-gguf.dir/cmake_clean.cmake +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/clean + +examples/gguf/CMakeFiles/llama-gguf.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/depend + diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/cmake_clean.cmake b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..06fac465d6a51eadf1d1872204de9eedbcd9f39e --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-gguf" + "../../bin/llama-gguf.pdb" + "CMakeFiles/llama-gguf.dir/gguf.cpp.o" + "CMakeFiles/llama-gguf.dir/gguf.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-gguf.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.make b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..78546b7639621cec148a00da131ad2ca5ea51edd --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-gguf. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.ts b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..623e58022fc8e2e9551ee3b8272d31e89ff01263 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-gguf. diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/depend.make b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..39a742b506ab4808459d4e218a651d515d5fbd53 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-gguf. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/flags.make b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..b15cb2a9cb6728395f17a901f05431a1437b2761 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..682f11e03bb87e0365999e315b696902a213f439 Binary files /dev/null and b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o differ diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o.d b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..fe77b00fd70c58c76c40a3029df22fef8116812c --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o.d @@ -0,0 +1,166 @@ +examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf/gguf.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/c++/11/cinttypes \ + /usr/include/c++/11/cstdint /usr/include/inttypes.h \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/link.txt b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..3b5467b281cfc7524a6a6ccfcc8785f0bdf564c5 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-gguf.dir/gguf.cpp.o -o ../../bin/llama-gguf -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/progress.make b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..67f3ae8fb20c5bbc0bcd4bca72ef320babc9f8cc --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/llama-gguf.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 32 + diff --git a/llama.cpp/build/examples/gguf/CMakeFiles/progress.marks b/llama.cpp/build/examples/gguf/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..b4de3947675361a7770d29b8982c407b0ec6b2a0 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CMakeFiles/progress.marks @@ -0,0 +1 @@ +11 diff --git a/llama.cpp/build/examples/gguf/CTestTestfile.cmake b/llama.cpp/build/examples/gguf/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..431e7f1810223fbc7667884e55159398fcce0877 --- /dev/null +++ b/llama.cpp/build/examples/gguf/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/gguf/Makefile b/llama.cpp/build/examples/gguf/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..a267afa4313230099464dbdf003d99e4ee8d23da --- /dev/null +++ b/llama.cpp/build/examples/gguf/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gguf//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/gguf/CMakeFiles/llama-gguf.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gguf/CMakeFiles/llama-gguf.dir/rule +.PHONY : examples/gguf/CMakeFiles/llama-gguf.dir/rule + +# Convenience name for target. +llama-gguf: examples/gguf/CMakeFiles/llama-gguf.dir/rule +.PHONY : llama-gguf + +# fast build rule for target. +llama-gguf/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/build +.PHONY : llama-gguf/fast + +gguf.o: gguf.cpp.o +.PHONY : gguf.o + +# target to build an object file +gguf.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o +.PHONY : gguf.cpp.o + +gguf.i: gguf.cpp.i +.PHONY : gguf.i + +# target to preprocess a source file +gguf.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.i +.PHONY : gguf.cpp.i + +gguf.s: gguf.cpp.s +.PHONY : gguf.s + +# target to generate assembly for a file +gguf.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gguf/CMakeFiles/llama-gguf.dir/build.make examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.s +.PHONY : gguf.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-gguf" + @echo "... gguf.o" + @echo "... gguf.i" + @echo "... gguf.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/gguf/cmake_install.cmake b/llama.cpp/build/examples/gguf/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ff3659fde9e85e3294a7236e381c4724b77586fb --- /dev/null +++ b/llama.cpp/build/examples/gguf/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gguf + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-gguf") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gguf") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/gritlm/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/DependInfo.cmake b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2dc08daa3837c1c340e2dbfc8373089216523bae --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp" "examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o" "gcc" "examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c5586e6953c16c59f699a0e73efe1b07c44e2c65 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/gritlm/CMakeFiles/llama-gritlm.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/gritlm/CMakeFiles/llama-gritlm.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/gritlm/CMakeFiles/llama-gritlm.dir/flags.make + +examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o: examples/gritlm/CMakeFiles/llama-gritlm.dir/flags.make +examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o: ../examples/gritlm/gritlm.cpp +examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o: examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o -MF CMakeFiles/llama-gritlm.dir/gritlm.cpp.o.d -o CMakeFiles/llama-gritlm.dir/gritlm.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp" + +examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-gritlm.dir/gritlm.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp" > CMakeFiles/llama-gritlm.dir/gritlm.cpp.i + +examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-gritlm.dir/gritlm.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp" -o CMakeFiles/llama-gritlm.dir/gritlm.cpp.s + +# Object files for target llama-gritlm +llama__gritlm_OBJECTS = \ +"CMakeFiles/llama-gritlm.dir/gritlm.cpp.o" + +# External object files for target llama-gritlm +llama__gritlm_EXTERNAL_OBJECTS = + +bin/llama-gritlm: examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o +bin/llama-gritlm: examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make +bin/llama-gritlm: common/libcommon.a +bin/llama-gritlm: src/libllama.so +bin/llama-gritlm: ggml/src/libggml.so +bin/llama-gritlm: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-gritlm: ggml/src/libggml-base.so +bin/llama-gritlm: examples/gritlm/CMakeFiles/llama-gritlm.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-gritlm" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-gritlm.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/gritlm/CMakeFiles/llama-gritlm.dir/build: bin/llama-gritlm +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/build + +examples/gritlm/CMakeFiles/llama-gritlm.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm" && $(CMAKE_COMMAND) -P CMakeFiles/llama-gritlm.dir/cmake_clean.cmake +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/clean + +examples/gritlm/CMakeFiles/llama-gritlm.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/depend + diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/cmake_clean.cmake b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..88da101f7dc5e87131fd80d7586fb2f6e8f277bd --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-gritlm" + "../../bin/llama-gritlm.pdb" + "CMakeFiles/llama-gritlm.dir/gritlm.cpp.o" + "CMakeFiles/llama-gritlm.dir/gritlm.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-gritlm.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.make b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4f3fd186feaa21521ffc6440897c96cff5334c27 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-gritlm. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.ts b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..d519feddf52e1e6723f214983a860d0bedb3c9f0 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-gritlm. diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/depend.make b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a62be2224ad7338cc15e04429d3a035b281099b9 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-gritlm. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/flags.make b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..824288dc5d7ca4a45df05b061f9408b88bb6a5d6 Binary files /dev/null and b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o differ diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o.d b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..077ac88b93a6202996a81a0947ebd91b419d6046 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o.d @@ -0,0 +1,175 @@ +examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm/gritlm.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/link.txt b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..f509336b346b74468bc82dd9ef37e3dbde310be4 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-gritlm.dir/gritlm.cpp.o -o ../../bin/llama-gritlm -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/progress.make b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..7bd5b171992279ca3bade05859ca7fabd0101622 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/llama-gritlm.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 35 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/gritlm/CMakeFiles/progress.marks b/llama.cpp/build/examples/gritlm/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/gritlm/CTestTestfile.cmake b/llama.cpp/build/examples/gritlm/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e73d3d40dafcbb446e4a2946f1aada0c5e105e29 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/gritlm/Makefile b/llama.cpp/build/examples/gritlm/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..9ebc26076421ecc5bd15bde9c7728cd4303d8c4e --- /dev/null +++ b/llama.cpp/build/examples/gritlm/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/gritlm//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gritlm/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gritlm/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gritlm/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gritlm/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/gritlm/CMakeFiles/llama-gritlm.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/gritlm/CMakeFiles/llama-gritlm.dir/rule +.PHONY : examples/gritlm/CMakeFiles/llama-gritlm.dir/rule + +# Convenience name for target. +llama-gritlm: examples/gritlm/CMakeFiles/llama-gritlm.dir/rule +.PHONY : llama-gritlm + +# fast build rule for target. +llama-gritlm/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/build +.PHONY : llama-gritlm/fast + +gritlm.o: gritlm.cpp.o +.PHONY : gritlm.o + +# target to build an object file +gritlm.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.o +.PHONY : gritlm.cpp.o + +gritlm.i: gritlm.cpp.i +.PHONY : gritlm.i + +# target to preprocess a source file +gritlm.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.i +.PHONY : gritlm.cpp.i + +gritlm.s: gritlm.cpp.s +.PHONY : gritlm.s + +# target to generate assembly for a file +gritlm.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/gritlm/CMakeFiles/llama-gritlm.dir/build.make examples/gritlm/CMakeFiles/llama-gritlm.dir/gritlm.cpp.s +.PHONY : gritlm.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-gritlm" + @echo "... gritlm.o" + @echo "... gritlm.i" + @echo "... gritlm.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/gritlm/cmake_install.cmake b/llama.cpp/build/examples/gritlm/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..57423cb38cf814a01da845a1fa4821697112c063 --- /dev/null +++ b/llama.cpp/build/examples/gritlm/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/gritlm + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-gritlm") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-gritlm") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/imatrix/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/DependInfo.cmake b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c22fc8da0e0cb00a6f467fcaa0a38530329067a3 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp" "examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o" "gcc" "examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0aa6c1123291e5733ff313f90104a74acfb68378 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/imatrix/CMakeFiles/llama-imatrix.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/imatrix/CMakeFiles/llama-imatrix.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/imatrix/CMakeFiles/llama-imatrix.dir/flags.make + +examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o: examples/imatrix/CMakeFiles/llama-imatrix.dir/flags.make +examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o: ../examples/imatrix/imatrix.cpp +examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o: examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o -MF CMakeFiles/llama-imatrix.dir/imatrix.cpp.o.d -o CMakeFiles/llama-imatrix.dir/imatrix.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp" + +examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-imatrix.dir/imatrix.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp" > CMakeFiles/llama-imatrix.dir/imatrix.cpp.i + +examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-imatrix.dir/imatrix.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp" -o CMakeFiles/llama-imatrix.dir/imatrix.cpp.s + +# Object files for target llama-imatrix +llama__imatrix_OBJECTS = \ +"CMakeFiles/llama-imatrix.dir/imatrix.cpp.o" + +# External object files for target llama-imatrix +llama__imatrix_EXTERNAL_OBJECTS = + +bin/llama-imatrix: examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o +bin/llama-imatrix: examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make +bin/llama-imatrix: common/libcommon.a +bin/llama-imatrix: src/libllama.so +bin/llama-imatrix: ggml/src/libggml.so +bin/llama-imatrix: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-imatrix: ggml/src/libggml-base.so +bin/llama-imatrix: examples/imatrix/CMakeFiles/llama-imatrix.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-imatrix" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-imatrix.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/imatrix/CMakeFiles/llama-imatrix.dir/build: bin/llama-imatrix +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/build + +examples/imatrix/CMakeFiles/llama-imatrix.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix" && $(CMAKE_COMMAND) -P CMakeFiles/llama-imatrix.dir/cmake_clean.cmake +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/clean + +examples/imatrix/CMakeFiles/llama-imatrix.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/depend + diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/cmake_clean.cmake b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a669d344410a99246dd594110ee6264afff89225 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-imatrix" + "../../bin/llama-imatrix.pdb" + "CMakeFiles/llama-imatrix.dir/imatrix.cpp.o" + "CMakeFiles/llama-imatrix.dir/imatrix.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-imatrix.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.make b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9652a40a32feaa06e5e58b79bfa9a8d2174ac32b --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-imatrix. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.ts b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cece2ffffcfd9ced957e7d8a780701babc3e9be8 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-imatrix. diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/depend.make b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..5cb6783103741f1ed68d2e12bc4a702c095cda6e --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-imatrix. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/flags.make b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..431cfc96388c82fbeb2b7769130c5ea6fd7c8c14 Binary files /dev/null and b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o differ diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o.d b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..5c1847c89e58bc07d926f16148c1380266ff6688 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o.d @@ -0,0 +1,228 @@ +examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix/imatrix.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/ctime /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/mutex /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/algorithm \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/pstl/execution_defs.h diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/link.txt b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..05ab990901128ffc7a747ffef2d59318bad5b5b0 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-imatrix.dir/imatrix.cpp.o -o ../../bin/llama-imatrix -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/progress.make b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6e0170c5be0203dcb2a3f0a9f8d08a75822d6f3b --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/llama-imatrix.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 36 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/imatrix/CMakeFiles/progress.marks b/llama.cpp/build/examples/imatrix/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/imatrix/CTestTestfile.cmake b/llama.cpp/build/examples/imatrix/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..90d93add6d25057fc544d604650e93ee26bf246a --- /dev/null +++ b/llama.cpp/build/examples/imatrix/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/imatrix/Makefile b/llama.cpp/build/examples/imatrix/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..1f7ae62019a3f24cfb8dd6e70e95810d3d25d608 --- /dev/null +++ b/llama.cpp/build/examples/imatrix/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/imatrix//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/imatrix/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/imatrix/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/imatrix/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/imatrix/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/imatrix/CMakeFiles/llama-imatrix.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/imatrix/CMakeFiles/llama-imatrix.dir/rule +.PHONY : examples/imatrix/CMakeFiles/llama-imatrix.dir/rule + +# Convenience name for target. +llama-imatrix: examples/imatrix/CMakeFiles/llama-imatrix.dir/rule +.PHONY : llama-imatrix + +# fast build rule for target. +llama-imatrix/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/build +.PHONY : llama-imatrix/fast + +imatrix.o: imatrix.cpp.o +.PHONY : imatrix.o + +# target to build an object file +imatrix.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o +.PHONY : imatrix.cpp.o + +imatrix.i: imatrix.cpp.i +.PHONY : imatrix.i + +# target to preprocess a source file +imatrix.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.i +.PHONY : imatrix.cpp.i + +imatrix.s: imatrix.cpp.s +.PHONY : imatrix.s + +# target to generate assembly for a file +imatrix.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/imatrix/CMakeFiles/llama-imatrix.dir/build.make examples/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.s +.PHONY : imatrix.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-imatrix" + @echo "... imatrix.o" + @echo "... imatrix.i" + @echo "... imatrix.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/imatrix/cmake_install.cmake b/llama.cpp/build/examples/imatrix/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..420bc87a8df865fe322e0a2853438309c20eb02c --- /dev/null +++ b/llama.cpp/build/examples/imatrix/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/imatrix + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-imatrix") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-imatrix") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/infill/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/infill/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/DependInfo.cmake b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8e92aaee89f10f3841f1fd66f5bcbc86d95aa8dd --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp" "examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o" "gcc" "examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/build.make b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..579325c87378aea5dcf8f3c46df74656e8f0b08a --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/infill/CMakeFiles/llama-infill.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/infill/CMakeFiles/llama-infill.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/infill/CMakeFiles/llama-infill.dir/flags.make + +examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o: examples/infill/CMakeFiles/llama-infill.dir/flags.make +examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o: ../examples/infill/infill.cpp +examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o: examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o -MF CMakeFiles/llama-infill.dir/infill.cpp.o.d -o CMakeFiles/llama-infill.dir/infill.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp" + +examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-infill.dir/infill.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp" > CMakeFiles/llama-infill.dir/infill.cpp.i + +examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-infill.dir/infill.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp" -o CMakeFiles/llama-infill.dir/infill.cpp.s + +# Object files for target llama-infill +llama__infill_OBJECTS = \ +"CMakeFiles/llama-infill.dir/infill.cpp.o" + +# External object files for target llama-infill +llama__infill_EXTERNAL_OBJECTS = + +bin/llama-infill: examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o +bin/llama-infill: examples/infill/CMakeFiles/llama-infill.dir/build.make +bin/llama-infill: common/libcommon.a +bin/llama-infill: src/libllama.so +bin/llama-infill: ggml/src/libggml.so +bin/llama-infill: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-infill: ggml/src/libggml-base.so +bin/llama-infill: examples/infill/CMakeFiles/llama-infill.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-infill" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-infill.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/infill/CMakeFiles/llama-infill.dir/build: bin/llama-infill +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/build + +examples/infill/CMakeFiles/llama-infill.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill" && $(CMAKE_COMMAND) -P CMakeFiles/llama-infill.dir/cmake_clean.cmake +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/clean + +examples/infill/CMakeFiles/llama-infill.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/depend + diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/cmake_clean.cmake b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ee23828f4c667a2f0ac363e891b1388d3618a829 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-infill" + "../../bin/llama-infill.pdb" + "CMakeFiles/llama-infill.dir/infill.cpp.o" + "CMakeFiles/llama-infill.dir/infill.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-infill.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.make b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..cc179f26bdd9124617597536f3ff8867f0d2688d --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-infill. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.ts b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..13bd9570b0824eab6e1c568c4c98d030c01fcf65 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-infill. diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/depend.make b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3a9fa0da2db3c17db48d1579359a294c4e3bc5d7 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-infill. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/flags.make b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..bb0a8213081f94760681d67718ac89aa4f6d6c1d Binary files /dev/null and b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o differ diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o.d b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..47b9fa657b4a2b29609fd34c32d58b5028a6c930 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o.d @@ -0,0 +1,241 @@ +examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill/infill.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./console.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/ctime /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream \ + /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/link.txt b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2d0b6b94a22a446ebd95ac41fb02a6c207f5674b --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-infill.dir/infill.cpp.o -o ../../bin/llama-infill -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/progress.make b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..26e5b21c231623418c8630061b819a50fc0141cf --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/llama-infill.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 37 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/infill/CMakeFiles/progress.marks b/llama.cpp/build/examples/infill/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/infill/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/infill/CTestTestfile.cmake b/llama.cpp/build/examples/infill/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..be6d7832cf18db6695285dd550eb8ff65a51fbf8 --- /dev/null +++ b/llama.cpp/build/examples/infill/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/infill/Makefile b/llama.cpp/build/examples/infill/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..af196b93a3b91a446723237ca1066a7993060bbb --- /dev/null +++ b/llama.cpp/build/examples/infill/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/infill//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/infill/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/infill/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/infill/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/infill/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/infill/CMakeFiles/llama-infill.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/infill/CMakeFiles/llama-infill.dir/rule +.PHONY : examples/infill/CMakeFiles/llama-infill.dir/rule + +# Convenience name for target. +llama-infill: examples/infill/CMakeFiles/llama-infill.dir/rule +.PHONY : llama-infill + +# fast build rule for target. +llama-infill/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/build +.PHONY : llama-infill/fast + +infill.o: infill.cpp.o +.PHONY : infill.o + +# target to build an object file +infill.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.o +.PHONY : infill.cpp.o + +infill.i: infill.cpp.i +.PHONY : infill.i + +# target to preprocess a source file +infill.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.i +.PHONY : infill.cpp.i + +infill.s: infill.cpp.s +.PHONY : infill.s + +# target to generate assembly for a file +infill.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/infill/CMakeFiles/llama-infill.dir/build.make examples/infill/CMakeFiles/llama-infill.dir/infill.cpp.s +.PHONY : infill.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-infill" + @echo "... infill.o" + @echo "... infill.i" + @echo "... infill.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/infill/cmake_install.cmake b/llama.cpp/build/examples/infill/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1c884d20c3fa029c01307b871306c3915ec3982a --- /dev/null +++ b/llama.cpp/build/examples/infill/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/infill + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-infill") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-infill") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/llama-bench/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/DependInfo.cmake b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8c777b421a60d01fdd2ea27e5effdd26575ef9bc --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp" "examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o" "gcc" "examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/build.make b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a26f031a78e70441b19b455cee6d1b7571dd27c6 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/llama-bench/CMakeFiles/llama-bench.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/llama-bench/CMakeFiles/llama-bench.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/llama-bench/CMakeFiles/llama-bench.dir/flags.make + +examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o: examples/llama-bench/CMakeFiles/llama-bench.dir/flags.make +examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o: ../examples/llama-bench/llama-bench.cpp +examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o: examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o -MF CMakeFiles/llama-bench.dir/llama-bench.cpp.o.d -o CMakeFiles/llama-bench.dir/llama-bench.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp" + +examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-bench.dir/llama-bench.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp" > CMakeFiles/llama-bench.dir/llama-bench.cpp.i + +examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-bench.dir/llama-bench.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp" -o CMakeFiles/llama-bench.dir/llama-bench.cpp.s + +# Object files for target llama-bench +llama__bench_OBJECTS = \ +"CMakeFiles/llama-bench.dir/llama-bench.cpp.o" + +# External object files for target llama-bench +llama__bench_EXTERNAL_OBJECTS = + +bin/llama-bench: examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o +bin/llama-bench: examples/llama-bench/CMakeFiles/llama-bench.dir/build.make +bin/llama-bench: common/libcommon.a +bin/llama-bench: src/libllama.so +bin/llama-bench: ggml/src/libggml.so +bin/llama-bench: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-bench: ggml/src/libggml-base.so +bin/llama-bench: examples/llama-bench/CMakeFiles/llama-bench.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-bench" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-bench.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/llama-bench/CMakeFiles/llama-bench.dir/build: bin/llama-bench +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/build + +examples/llama-bench/CMakeFiles/llama-bench.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench" && $(CMAKE_COMMAND) -P CMakeFiles/llama-bench.dir/cmake_clean.cmake +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/clean + +examples/llama-bench/CMakeFiles/llama-bench.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/depend + diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/cmake_clean.cmake b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6c15d380cb02a3dc27e094b106de3432397f911d --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-bench" + "../../bin/llama-bench.pdb" + "CMakeFiles/llama-bench.dir/llama-bench.cpp.o" + "CMakeFiles/llama-bench.dir/llama-bench.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-bench.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.make b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1c2e072d2d27254ff19b90000ecc31f97aa716e7 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-bench. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.ts b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e2fdaf1db7a020792c6ab8cca42fdd6b1d0ef981 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-bench. diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/depend.make b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f3b3c9b066e7be68eb4fd8168dc78e1f44f4f573 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-bench. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/flags.make b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/link.txt b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba5b3b5046cf443474b942cad72a0f153b31b567 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-bench.dir/llama-bench.cpp.o -o ../../bin/llama-bench -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ad51d48d77c06d04000ae4b1ec39831b598effbb Binary files /dev/null and b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o differ diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o.d b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..815e2f5c5c3bf5fe3af93da6771f339563dfe9d5 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o.d @@ -0,0 +1,252 @@ +examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench/llama-bench.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/algorithm \ + /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/cinttypes \ + /usr/include/inttypes.h /usr/include/c++/11/clocale \ + /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/iterator /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ios_base.h /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/streambuf.tcc /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/progress.make b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..bb3eefd9e4a08652d1376ac3af636e66596f3bd5 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/llama-bench.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 23 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/llama-bench/CMakeFiles/progress.marks b/llama.cpp/build/examples/llama-bench/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/llama-bench/CTestTestfile.cmake b/llama.cpp/build/examples/llama-bench/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0ad34045d757cfec7c3a1776bdbc9dd2411958d8 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/llama-bench/Makefile b/llama.cpp/build/examples/llama-bench/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..2c0872a5777abd9f77670e30012565f0ec51b271 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llama-bench//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llama-bench/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llama-bench/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llama-bench/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llama-bench/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/llama-bench/CMakeFiles/llama-bench.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llama-bench/CMakeFiles/llama-bench.dir/rule +.PHONY : examples/llama-bench/CMakeFiles/llama-bench.dir/rule + +# Convenience name for target. +llama-bench: examples/llama-bench/CMakeFiles/llama-bench.dir/rule +.PHONY : llama-bench + +# fast build rule for target. +llama-bench/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/build +.PHONY : llama-bench/fast + +llama-bench.o: llama-bench.cpp.o +.PHONY : llama-bench.o + +# target to build an object file +llama-bench.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.o +.PHONY : llama-bench.cpp.o + +llama-bench.i: llama-bench.cpp.i +.PHONY : llama-bench.i + +# target to preprocess a source file +llama-bench.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.i +.PHONY : llama-bench.cpp.i + +llama-bench.s: llama-bench.cpp.s +.PHONY : llama-bench.s + +# target to generate assembly for a file +llama-bench.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llama-bench/CMakeFiles/llama-bench.dir/build.make examples/llama-bench/CMakeFiles/llama-bench.dir/llama-bench.cpp.s +.PHONY : llama-bench.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-bench" + @echo "... llama-bench.o" + @echo "... llama-bench.i" + @echo "... llama-bench.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/llama-bench/cmake_install.cmake b/llama.cpp/build/examples/llama-bench/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..991fa496785a8a0ec9de790d3d088b58993f1fb1 --- /dev/null +++ b/llama.cpp/build/examples/llama-bench/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llama-bench + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-bench") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-bench") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/llava/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/DependInfo.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..397a656dbc048f2dabb93c1cbf531981f5adf25f --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp" "examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o" "gcc" "examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/build.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..557a4f0ce0316a90bdfb5e13acaaaab48704a752 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/build.make @@ -0,0 +1,119 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/llava/CMakeFiles/llama-llava-cli.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/llava/CMakeFiles/llama-llava-cli.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/llava/CMakeFiles/llama-llava-cli.dir/flags.make + +examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o: examples/llava/CMakeFiles/llama-llava-cli.dir/flags.make +examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o: ../examples/llava/llava-cli.cpp +examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o: examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o -MF CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o.d -o CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp" + +examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp" > CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.i + +examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp" -o CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.s + +# Object files for target llama-llava-cli +llama__llava__cli_OBJECTS = \ +"CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o" + +# External object files for target llama-llava-cli +llama__llava__cli_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o" \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o" + +bin/llama-llava-cli: examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o +bin/llama-llava-cli: examples/llava/CMakeFiles/llava.dir/llava.cpp.o +bin/llama-llava-cli: examples/llava/CMakeFiles/llava.dir/clip.cpp.o +bin/llama-llava-cli: examples/llava/CMakeFiles/llama-llava-cli.dir/build.make +bin/llama-llava-cli: common/libcommon.a +bin/llama-llava-cli: src/libllama.so +bin/llama-llava-cli: ggml/src/libggml.so +bin/llama-llava-cli: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-llava-cli: ggml/src/libggml-base.so +bin/llama-llava-cli: examples/llava/CMakeFiles/llama-llava-cli.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-llava-cli" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-llava-cli.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/llava/CMakeFiles/llama-llava-cli.dir/build: bin/llama-llava-cli +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/build + +examples/llava/CMakeFiles/llama-llava-cli.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -P CMakeFiles/llama-llava-cli.dir/cmake_clean.cmake +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/clean + +examples/llava/CMakeFiles/llama-llava-cli.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/depend + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/cmake_clean.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c3abccde14155e44a499e39226615e17c387ba6b --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-llava-cli" + "../../bin/llama-llava-cli.pdb" + "CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o" + "CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-llava-cli.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c36343d9b60f32215e233f49ea7f00ec4c635cac --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-llava-cli. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.ts b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..db65445e2662ae74872d01abb2fad29fb191d5ad --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-llava-cli. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d7b6e1f7b3eea91c71fa8858c907672647401229 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-llava-cli. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/flags.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..965582ca2d93df8fb94d5de90eed8a6b86ff958c --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../.." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/link.txt b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a9b48010b27cf9a16e75eba261ef9ae92445277c --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o CMakeFiles/llava.dir/llava.cpp.o CMakeFiles/llava.dir/clip.cpp.o -o ../../bin/llama-llava-cli -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f59862eead038d6294058b4f0b7835e24a67d7c8 Binary files /dev/null and b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o differ diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o.d b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..0d9694cf8b6ab5e3d594d452cdf779e4dd039306 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o.d @@ -0,0 +1,184 @@ +examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava-cli.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./base64.hpp \ + /usr/include/c++/11/iterator /usr/include/c++/11/bits/stream_iterator.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/progress.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..ad2d357457759ad6132a7ec14f97863d19dc1190 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-llava-cli.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 38 +CMAKE_PROGRESS_2 = 39 + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/DependInfo.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c875bd7d4f8c3c58cc1305e0534fc603f787bbe4 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp" "examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o" "gcc" "examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b8364a48a62ef0eaa90d63965d0c1eab2687968b --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make @@ -0,0 +1,119 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/llava/CMakeFiles/llama-minicpmv-cli.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/llava/CMakeFiles/llama-minicpmv-cli.dir/flags.make + +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/flags.make +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o: ../examples/llava/minicpmv-cli.cpp +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o -MF CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o.d -o CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp" + +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp" > CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.i + +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp" -o CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.s + +# Object files for target llama-minicpmv-cli +llama__minicpmv__cli_OBJECTS = \ +"CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o" + +# External object files for target llama-minicpmv-cli +llama__minicpmv__cli_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o" \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o" + +bin/llama-minicpmv-cli: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o +bin/llama-minicpmv-cli: examples/llava/CMakeFiles/llava.dir/llava.cpp.o +bin/llama-minicpmv-cli: examples/llava/CMakeFiles/llava.dir/clip.cpp.o +bin/llama-minicpmv-cli: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make +bin/llama-minicpmv-cli: common/libcommon.a +bin/llama-minicpmv-cli: src/libllama.so +bin/llama-minicpmv-cli: ggml/src/libggml.so +bin/llama-minicpmv-cli: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-minicpmv-cli: ggml/src/libggml-base.so +bin/llama-minicpmv-cli: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-minicpmv-cli" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-minicpmv-cli.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build: bin/llama-minicpmv-cli +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build + +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -P CMakeFiles/llama-minicpmv-cli.dir/cmake_clean.cmake +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/clean + +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/cmake_clean.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..272c305c2daf951955e0be1dc74bdda5fec925c4 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-minicpmv-cli" + "../../bin/llama-minicpmv-cli.pdb" + "CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o" + "CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-minicpmv-cli.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..0c180760142bd5eaee83309939d758e314c146b3 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-minicpmv-cli. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.ts b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e7e9528bec358f99f59cc647dcc61e67a3d8b4fa --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-minicpmv-cli. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d992c21b069504520142c0569320b6235702a0cb --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-minicpmv-cli. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/flags.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..965582ca2d93df8fb94d5de90eed8a6b86ff958c --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../.." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/link.txt b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..234bfab161f0baa4c12a4136c29cfb9d6549d3e6 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o CMakeFiles/llava.dir/llava.cpp.o CMakeFiles/llava.dir/clip.cpp.o -o ../../bin/llama-minicpmv-cli -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..efe017142754e83d59e2dfc951d3048ea3e3bd7e Binary files /dev/null and b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o differ diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o.d b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..148e642500952ee30377e350f3457b2d7ca1255e --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o.d @@ -0,0 +1,200 @@ +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/minicpmv-cli.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/iostream diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/progress.make b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..f18f1bf5217b66a6662426826d8d40d61cabdebd --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llama-minicpmv-cli.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 45 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/DependInfo.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8f55c748a8149ed007d970f532a7b3d03c0e0c74 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/DependInfo.cmake @@ -0,0 +1,20 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp" "examples/llava/CMakeFiles/llava.dir/clip.cpp.o" "gcc" "examples/llava/CMakeFiles/llava.dir/clip.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp" "examples/llava/CMakeFiles/llava.dir/llava.cpp.o" "gcc" "examples/llava/CMakeFiles/llava.dir/llava.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/build.make b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a2cdcddd8965926c4b2e1f52980ec50d5623c123 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/build.make @@ -0,0 +1,116 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/llava/CMakeFiles/llava.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/llava/CMakeFiles/llava.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/llava/CMakeFiles/llava.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/llava/CMakeFiles/llava.dir/flags.make + +examples/llava/CMakeFiles/llava.dir/llava.cpp.o: examples/llava/CMakeFiles/llava.dir/flags.make +examples/llava/CMakeFiles/llava.dir/llava.cpp.o: ../examples/llava/llava.cpp +examples/llava/CMakeFiles/llava.dir/llava.cpp.o: examples/llava/CMakeFiles/llava.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/llava/CMakeFiles/llava.dir/llava.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/llava/CMakeFiles/llava.dir/llava.cpp.o -MF CMakeFiles/llava.dir/llava.cpp.o.d -o CMakeFiles/llava.dir/llava.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp" + +examples/llava/CMakeFiles/llava.dir/llava.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llava.dir/llava.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp" > CMakeFiles/llava.dir/llava.cpp.i + +examples/llava/CMakeFiles/llava.dir/llava.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llava.dir/llava.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp" -o CMakeFiles/llava.dir/llava.cpp.s + +examples/llava/CMakeFiles/llava.dir/clip.cpp.o: examples/llava/CMakeFiles/llava.dir/flags.make +examples/llava/CMakeFiles/llava.dir/clip.cpp.o: ../examples/llava/clip.cpp +examples/llava/CMakeFiles/llava.dir/clip.cpp.o: examples/llava/CMakeFiles/llava.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object examples/llava/CMakeFiles/llava.dir/clip.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/llava/CMakeFiles/llava.dir/clip.cpp.o -MF CMakeFiles/llava.dir/clip.cpp.o.d -o CMakeFiles/llava.dir/clip.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp" + +examples/llava/CMakeFiles/llava.dir/clip.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llava.dir/clip.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp" > CMakeFiles/llava.dir/clip.cpp.i + +examples/llava/CMakeFiles/llava.dir/clip.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llava.dir/clip.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp" -o CMakeFiles/llava.dir/clip.cpp.s + +llava: examples/llava/CMakeFiles/llava.dir/llava.cpp.o +llava: examples/llava/CMakeFiles/llava.dir/clip.cpp.o +llava: examples/llava/CMakeFiles/llava.dir/build.make +.PHONY : llava + +# Rule to build all files generated by this target. +examples/llava/CMakeFiles/llava.dir/build: llava +.PHONY : examples/llava/CMakeFiles/llava.dir/build + +examples/llava/CMakeFiles/llava.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -P CMakeFiles/llava.dir/cmake_clean.cmake +.PHONY : examples/llava/CMakeFiles/llava.dir/clean + +examples/llava/CMakeFiles/llava.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/llava/CMakeFiles/llava.dir/depend + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b469e94cd68ee8ed419ca865307b30722f0c44b6 Binary files /dev/null and b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o differ diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o.d b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4a1e7d234051e3f78c2eedc4a72fd7372f1c0c61 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o.d @@ -0,0 +1,264 @@ +examples/llava/CMakeFiles/llava.dir/clip.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common/stb_image.h \ + /usr/include/c++/11/stdlib.h /usr/include/c++/11/cstdlib \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/assert.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/include/c++/11/cassert /usr/include/c++/11/cstring \ + /usr/include/c++/11/fstream /usr/include/c++/11/istream \ + /usr/include/c++/11/ios /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/char_traits.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/regex \ + /usr/include/c++/11/algorithm /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/bitset \ + /usr/include/c++/11/iterator /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h /usr/include/c++/11/ctime \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/cmake_clean.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e7495e4761c825f492e2fcd600e59962a748a3f1 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/llava.dir/clip.cpp.o" + "CMakeFiles/llava.dir/clip.cpp.o.d" + "CMakeFiles/llava.dir/llava.cpp.o" + "CMakeFiles/llava.dir/llava.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llava.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/compiler_depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6dac2f664c5d896ad76407df8ca121b8be163c62 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llava. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/compiler_depend.ts b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..4e2caa7aebdcf434b3d16f00f35400ead50ef268 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llava. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c853fa62d1aa862534b08af9b486ca198020a201 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llava. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/flags.make b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..76270978bfa531f48324eb39c8dbb08899e83ada --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../.." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/../../common" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -Wno-cast-qual + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..2b147db346b11621eb8951022e008ea58a0be1c8 Binary files /dev/null and b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o differ diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o.d b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..107473377c4be322cc691a92f52d2bd1b8ac0dea --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o.d @@ -0,0 +1,134 @@ +examples/llava/CMakeFiles/llava.dir/llava.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/clip.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava/llava.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/cstdio /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/limits diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/progress.make b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..4c0ccaa1df269009ecca09df244d515d0c7b1ee3 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 68 + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/DependInfo.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..01f5ff02f7e5576249a0f075841c2f75025b571e --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/DependInfo.cmake @@ -0,0 +1,22 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/build.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0f1359a097fc6156c1083c3aadbf3b7e4eb6368d --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/build.make @@ -0,0 +1,102 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/llava/CMakeFiles/llava_shared.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/llava/CMakeFiles/llava_shared.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/llava/CMakeFiles/llava_shared.dir/flags.make + +# Object files for target llava_shared +llava_shared_OBJECTS = + +# External object files for target llava_shared +llava_shared_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o" \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o" + +examples/llava/libllava_shared.so: examples/llava/CMakeFiles/llava.dir/llava.cpp.o +examples/llava/libllava_shared.so: examples/llava/CMakeFiles/llava.dir/clip.cpp.o +examples/llava/libllava_shared.so: examples/llava/CMakeFiles/llava_shared.dir/build.make +examples/llava/libllava_shared.so: src/libllama.so +examples/llava/libllava_shared.so: ggml/src/libggml.so +examples/llava/libllava_shared.so: ggml/src/ggml-cpu/libggml-cpu.so +examples/llava/libllava_shared.so: ggml/src/libggml-base.so +examples/llava/libllava_shared.so: examples/llava/CMakeFiles/llava_shared.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Linking CXX shared library libllava_shared.so" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llava_shared.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/llava/CMakeFiles/llava_shared.dir/build: examples/llava/libllava_shared.so +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/build + +examples/llava/CMakeFiles/llava_shared.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -P CMakeFiles/llava_shared.dir/cmake_clean.cmake +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/clean + +examples/llava/CMakeFiles/llava_shared.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/depend + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/cmake_clean.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..818198b7c5eee17599c5657eb2c1d8cc62dd9b1f --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/cmake_clean.cmake @@ -0,0 +1,9 @@ +file(REMOVE_RECURSE + "libllava_shared.pdb" + "libllava_shared.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llava_shared.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a144f425d6b404d1353927c6c4ebca1612621827 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llava_shared. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.ts b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..74b466bd6567e501728ec52fe3c37c7b417892cf --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llava_shared. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b36c6b7ad6c6a18db77ffed0ca51d78f31c80b6e --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llava_shared. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/flags.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..9ce6484f09a4e9e26849a0ec3fc3af3903c6c775 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED -Dllava_shared_EXPORTS + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/link.txt b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..0b7f505e7172d3d0226f2fbd4673dde756fe6699 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libllava_shared.so -o libllava_shared.so CMakeFiles/llava.dir/llava.cpp.o CMakeFiles/llava.dir/clip.cpp.o -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/progress.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..225de343d65c51fd774bbe0e1adee2d439eb81dc --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_shared.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/DependInfo.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc55e44b5556fc28ad7acb84f1df08a5aef15b8d --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/DependInfo.cmake @@ -0,0 +1,18 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/build.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0068d76aac06ad37a2800569886f621bb08d56ca --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/build.make @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/llava/CMakeFiles/llava_static.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/llava/CMakeFiles/llava_static.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/llava/CMakeFiles/llava_static.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/llava/CMakeFiles/llava_static.dir/flags.make + +# Object files for target llava_static +llava_static_OBJECTS = + +# External object files for target llava_static +llava_static_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/llava.cpp.o" \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava.dir/clip.cpp.o" + +examples/llava/libllava_static.a: examples/llava/CMakeFiles/llava.dir/llava.cpp.o +examples/llava/libllava_static.a: examples/llava/CMakeFiles/llava.dir/clip.cpp.o +examples/llava/libllava_static.a: examples/llava/CMakeFiles/llava_static.dir/build.make +examples/llava/libllava_static.a: examples/llava/CMakeFiles/llava_static.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Linking CXX static library libllava_static.a" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -P CMakeFiles/llava_static.dir/cmake_clean_target.cmake + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llava_static.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/llava/CMakeFiles/llava_static.dir/build: examples/llava/libllava_static.a +.PHONY : examples/llava/CMakeFiles/llava_static.dir/build + +examples/llava/CMakeFiles/llava_static.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" && $(CMAKE_COMMAND) -P CMakeFiles/llava_static.dir/cmake_clean.cmake +.PHONY : examples/llava/CMakeFiles/llava_static.dir/clean + +examples/llava/CMakeFiles/llava_static.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/llava/CMakeFiles/llava_static.dir/depend + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/cmake_clean.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f45eae4621fb1e392add05582d36a895837a9ae4 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/cmake_clean.cmake @@ -0,0 +1,9 @@ +file(REMOVE_RECURSE + "libllava_static.a" + "libllava_static.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llava_static.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/cmake_clean_target.cmake b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/cmake_clean_target.cmake new file mode 100644 index 0000000000000000000000000000000000000000..811ad1cc67be8b731aa77a0e6b5bf566c0845e19 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "libllava_static.a" +) diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/compiler_depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..53d1fc0d078f6ddfedad8dca71338848dcc344aa --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llava_static. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/compiler_depend.ts b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..795a3979cf036b92c76b1019f61c1f869866a3b6 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llava_static. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/depend.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..dbb3703db5596f67987debddf3a4eb1db7cb073f --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llava_static. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/flags.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..df60274ba2cc24f4db321a1253c3c3801d8643ff --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/link.txt b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d665aed4764daa6d8b37a3f2814ec21a6da7e792 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar qc libllava_static.a CMakeFiles/llava.dir/llava.cpp.o CMakeFiles/llava.dir/clip.cpp.o +/usr/bin/ranlib libllava_static.a diff --git a/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/progress.make b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..ddffd4946a2646b1802d982e912cafc4ca49e47b --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/llava_static.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = 69 + diff --git a/llama.cpp/build/examples/llava/CMakeFiles/progress.marks b/llama.cpp/build/examples/llava/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..7273c0fa8c522b7eed7762a353d46f7768e9b6f2 --- /dev/null +++ b/llama.cpp/build/examples/llava/CMakeFiles/progress.marks @@ -0,0 +1 @@ +25 diff --git a/llama.cpp/build/examples/llava/CTestTestfile.cmake b/llama.cpp/build/examples/llava/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1dc9701907d855f8de99e8f293b2c7e1a255206a --- /dev/null +++ b/llama.cpp/build/examples/llava/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/llava/Makefile b/llama.cpp/build/examples/llava/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d4503a7a700e0a7b102081853b8c09db61f054d5 --- /dev/null +++ b/llama.cpp/build/examples/llava/Makefile @@ -0,0 +1,383 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/llava/CMakeFiles/llava.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llava.dir/rule +.PHONY : examples/llava/CMakeFiles/llava.dir/rule + +# Convenience name for target. +llava: examples/llava/CMakeFiles/llava.dir/rule +.PHONY : llava + +# fast build rule for target. +llava/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/build +.PHONY : llava/fast + +# Convenience name for target. +examples/llava/CMakeFiles/llava_static.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llava_static.dir/rule +.PHONY : examples/llava/CMakeFiles/llava_static.dir/rule + +# Convenience name for target. +llava_static: examples/llava/CMakeFiles/llava_static.dir/rule +.PHONY : llava_static + +# fast build rule for target. +llava_static/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_static.dir/build.make examples/llava/CMakeFiles/llava_static.dir/build +.PHONY : llava_static/fast + +# Convenience name for target. +examples/llava/CMakeFiles/llava_shared.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llava_shared.dir/rule +.PHONY : examples/llava/CMakeFiles/llava_shared.dir/rule + +# Convenience name for target. +llava_shared: examples/llava/CMakeFiles/llava_shared.dir/rule +.PHONY : llava_shared + +# fast build rule for target. +llava_shared/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava_shared.dir/build.make examples/llava/CMakeFiles/llava_shared.dir/build +.PHONY : llava_shared/fast + +# Convenience name for target. +examples/llava/CMakeFiles/llama-llava-cli.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llama-llava-cli.dir/rule +.PHONY : examples/llava/CMakeFiles/llama-llava-cli.dir/rule + +# Convenience name for target. +llama-llava-cli: examples/llava/CMakeFiles/llama-llava-cli.dir/rule +.PHONY : llama-llava-cli + +# fast build rule for target. +llama-llava-cli/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/build +.PHONY : llama-llava-cli/fast + +# Convenience name for target. +examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule +.PHONY : examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule + +# Convenience name for target. +llama-minicpmv-cli: examples/llava/CMakeFiles/llama-minicpmv-cli.dir/rule +.PHONY : llama-minicpmv-cli + +# fast build rule for target. +llama-minicpmv-cli/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build +.PHONY : llama-minicpmv-cli/fast + +clip.o: clip.cpp.o +.PHONY : clip.o + +# target to build an object file +clip.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/clip.cpp.o +.PHONY : clip.cpp.o + +clip.i: clip.cpp.i +.PHONY : clip.i + +# target to preprocess a source file +clip.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/clip.cpp.i +.PHONY : clip.cpp.i + +clip.s: clip.cpp.s +.PHONY : clip.s + +# target to generate assembly for a file +clip.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/clip.cpp.s +.PHONY : clip.cpp.s + +llava-cli.o: llava-cli.cpp.o +.PHONY : llava-cli.o + +# target to build an object file +llava-cli.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.o +.PHONY : llava-cli.cpp.o + +llava-cli.i: llava-cli.cpp.i +.PHONY : llava-cli.i + +# target to preprocess a source file +llava-cli.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.i +.PHONY : llava-cli.cpp.i + +llava-cli.s: llava-cli.cpp.s +.PHONY : llava-cli.s + +# target to generate assembly for a file +llava-cli.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-llava-cli.dir/build.make examples/llava/CMakeFiles/llama-llava-cli.dir/llava-cli.cpp.s +.PHONY : llava-cli.cpp.s + +llava.o: llava.cpp.o +.PHONY : llava.o + +# target to build an object file +llava.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/llava.cpp.o +.PHONY : llava.cpp.o + +llava.i: llava.cpp.i +.PHONY : llava.i + +# target to preprocess a source file +llava.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/llava.cpp.i +.PHONY : llava.cpp.i + +llava.s: llava.cpp.s +.PHONY : llava.s + +# target to generate assembly for a file +llava.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llava.dir/build.make examples/llava/CMakeFiles/llava.dir/llava.cpp.s +.PHONY : llava.cpp.s + +minicpmv-cli.o: minicpmv-cli.cpp.o +.PHONY : minicpmv-cli.o + +# target to build an object file +minicpmv-cli.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.o +.PHONY : minicpmv-cli.cpp.o + +minicpmv-cli.i: minicpmv-cli.cpp.i +.PHONY : minicpmv-cli.i + +# target to preprocess a source file +minicpmv-cli.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.i +.PHONY : minicpmv-cli.cpp.i + +minicpmv-cli.s: minicpmv-cli.cpp.s +.PHONY : minicpmv-cli.s + +# target to generate assembly for a file +minicpmv-cli.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/llava/CMakeFiles/llama-minicpmv-cli.dir/build.make examples/llava/CMakeFiles/llama-minicpmv-cli.dir/minicpmv-cli.cpp.s +.PHONY : minicpmv-cli.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-llava-cli" + @echo "... llama-minicpmv-cli" + @echo "... llava" + @echo "... llava_shared" + @echo "... llava_static" + @echo "... clip.o" + @echo "... clip.i" + @echo "... clip.s" + @echo "... llava-cli.o" + @echo "... llava-cli.i" + @echo "... llava-cli.s" + @echo "... llava.o" + @echo "... llava.i" + @echo "... llava.s" + @echo "... minicpmv-cli.o" + @echo "... minicpmv-cli.i" + @echo "... minicpmv-cli.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/llava/cmake_install.cmake b/llama.cpp/build/examples/llava/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7d4f185b765c2dc6a1cde762357c5743a1d9ea44 --- /dev/null +++ b/llama.cpp/build/examples/llava/cmake_install.cmake @@ -0,0 +1,107 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/llava + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/llava/libllava_shared.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libllava_shared.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-llava-cli") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-llava-cli") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-minicpmv-cli") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-minicpmv-cli") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/llava/libllava_shared.so b/llama.cpp/build/examples/llava/libllava_shared.so new file mode 100644 index 0000000000000000000000000000000000000000..2233d0f632656579ad187be33b148775227d2891 Binary files /dev/null and b/llama.cpp/build/examples/llava/libllava_shared.so differ diff --git a/llama.cpp/build/examples/llava/libllava_static.a b/llama.cpp/build/examples/llava/libllava_static.a new file mode 100644 index 0000000000000000000000000000000000000000..6ff5c2f60a143663dae9bff85275c81d7ccd5e2e Binary files /dev/null and b/llama.cpp/build/examples/llava/libllava_static.a differ diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/lookahead/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/DependInfo.cmake b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5121af2b77c3eaa0c1e94b4a6dfd3fc467c20b8f --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp" "examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o" "gcc" "examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..6c086ccafa4dfd9b7dcc0a20d6aa40b295d0afba --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/lookahead/CMakeFiles/llama-lookahead.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/lookahead/CMakeFiles/llama-lookahead.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/lookahead/CMakeFiles/llama-lookahead.dir/flags.make + +examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o: examples/lookahead/CMakeFiles/llama-lookahead.dir/flags.make +examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o: ../examples/lookahead/lookahead.cpp +examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o: examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o -MF CMakeFiles/llama-lookahead.dir/lookahead.cpp.o.d -o CMakeFiles/llama-lookahead.dir/lookahead.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp" + +examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-lookahead.dir/lookahead.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp" > CMakeFiles/llama-lookahead.dir/lookahead.cpp.i + +examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-lookahead.dir/lookahead.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp" -o CMakeFiles/llama-lookahead.dir/lookahead.cpp.s + +# Object files for target llama-lookahead +llama__lookahead_OBJECTS = \ +"CMakeFiles/llama-lookahead.dir/lookahead.cpp.o" + +# External object files for target llama-lookahead +llama__lookahead_EXTERNAL_OBJECTS = + +bin/llama-lookahead: examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o +bin/llama-lookahead: examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make +bin/llama-lookahead: common/libcommon.a +bin/llama-lookahead: src/libllama.so +bin/llama-lookahead: ggml/src/libggml.so +bin/llama-lookahead: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-lookahead: ggml/src/libggml-base.so +bin/llama-lookahead: examples/lookahead/CMakeFiles/llama-lookahead.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-lookahead" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-lookahead.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/lookahead/CMakeFiles/llama-lookahead.dir/build: bin/llama-lookahead +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/build + +examples/lookahead/CMakeFiles/llama-lookahead.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead" && $(CMAKE_COMMAND) -P CMakeFiles/llama-lookahead.dir/cmake_clean.cmake +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/clean + +examples/lookahead/CMakeFiles/llama-lookahead.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/depend + diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/cmake_clean.cmake b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f2d543fb868430751df8961581ab5ef11e9cf498 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-lookahead" + "../../bin/llama-lookahead.pdb" + "CMakeFiles/llama-lookahead.dir/lookahead.cpp.o" + "CMakeFiles/llama-lookahead.dir/lookahead.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-lookahead.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.make b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..deb1d06f3fa5bfcb1bb69538b1b9c846db7d7c9b --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-lookahead. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.ts b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..179e6349c62087d28edd5923fc4d96604e9387a5 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-lookahead. diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/depend.make b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..62819da3765fc4e0e6dce7800bdd10a0e81c2e6d --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-lookahead. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/flags.make b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/link.txt b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..dc6f93d9e88865897b5ecb337f777feafea569ef --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-lookahead.dir/lookahead.cpp.o -o ../../bin/llama-lookahead -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b4ca18924205c9e521bce88164332f9dd9a58945 Binary files /dev/null and b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o differ diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o.d b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..1ff8540979e85d25a761c7ced5fef48366ea5d2a --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o.d @@ -0,0 +1,177 @@ +examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead/lookahead.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/progress.make b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..634b7f2f89f70589280394ce33f48f9511f00656 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/llama-lookahead.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 40 + diff --git a/llama.cpp/build/examples/lookahead/CMakeFiles/progress.marks b/llama.cpp/build/examples/lookahead/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/lookahead/CTestTestfile.cmake b/llama.cpp/build/examples/lookahead/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2a3f964ed437ad886c30b0a2edbed2296d6abff4 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/lookahead/Makefile b/llama.cpp/build/examples/lookahead/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..143c13846bea14b903a0ec78559ea452f54c4074 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookahead//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookahead/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookahead/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookahead/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookahead/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/lookahead/CMakeFiles/llama-lookahead.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookahead/CMakeFiles/llama-lookahead.dir/rule +.PHONY : examples/lookahead/CMakeFiles/llama-lookahead.dir/rule + +# Convenience name for target. +llama-lookahead: examples/lookahead/CMakeFiles/llama-lookahead.dir/rule +.PHONY : llama-lookahead + +# fast build rule for target. +llama-lookahead/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/build +.PHONY : llama-lookahead/fast + +lookahead.o: lookahead.cpp.o +.PHONY : lookahead.o + +# target to build an object file +lookahead.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o +.PHONY : lookahead.cpp.o + +lookahead.i: lookahead.cpp.i +.PHONY : lookahead.i + +# target to preprocess a source file +lookahead.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.i +.PHONY : lookahead.cpp.i + +lookahead.s: lookahead.cpp.s +.PHONY : lookahead.s + +# target to generate assembly for a file +lookahead.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookahead/CMakeFiles/llama-lookahead.dir/build.make examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.s +.PHONY : lookahead.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-lookahead" + @echo "... lookahead.o" + @echo "... lookahead.i" + @echo "... lookahead.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/lookahead/cmake_install.cmake b/llama.cpp/build/examples/lookahead/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b5430c9f037991e2752a32873287baf02b845fa4 --- /dev/null +++ b/llama.cpp/build/examples/lookahead/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookahead + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-lookahead") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookahead") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/DependInfo.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d8bd2e4cda4e046d7870044f10bd2ff8251346e4 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp" "examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o" "gcc" "examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..4dbeeaf80de21da11abb887e2c791469e1af7c6e --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/lookup/CMakeFiles/llama-lookup-create.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/lookup/CMakeFiles/llama-lookup-create.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/lookup/CMakeFiles/llama-lookup-create.dir/flags.make + +examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o: examples/lookup/CMakeFiles/llama-lookup-create.dir/flags.make +examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o: ../examples/lookup/lookup-create.cpp +examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o: examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o -MF CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o.d -o CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp" + +examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp" > CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.i + +examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp" -o CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.s + +# Object files for target llama-lookup-create +llama__lookup__create_OBJECTS = \ +"CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o" + +# External object files for target llama-lookup-create +llama__lookup__create_EXTERNAL_OBJECTS = + +bin/llama-lookup-create: examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o +bin/llama-lookup-create: examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make +bin/llama-lookup-create: common/libcommon.a +bin/llama-lookup-create: src/libllama.so +bin/llama-lookup-create: ggml/src/libggml.so +bin/llama-lookup-create: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-lookup-create: ggml/src/libggml-base.so +bin/llama-lookup-create: examples/lookup/CMakeFiles/llama-lookup-create.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-lookup-create" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-lookup-create.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/lookup/CMakeFiles/llama-lookup-create.dir/build: bin/llama-lookup-create +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/build + +examples/lookup/CMakeFiles/llama-lookup-create.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -P CMakeFiles/llama-lookup-create.dir/cmake_clean.cmake +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/clean + +examples/lookup/CMakeFiles/llama-lookup-create.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/depend + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/cmake_clean.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..80c0f075e5e6dad2f060d27ef659af9f4dd9ccc4 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-lookup-create" + "../../bin/llama-lookup-create.pdb" + "CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o" + "CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-lookup-create.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..1f5e8bab76232c42f9f7234493a666f1e41f6a0f --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-lookup-create. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.ts b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..e3073786d03c4bd38849941e4f8a19e5fb9c8e42 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-lookup-create. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9238324b43863fba91afc57716dcbb7992b7311f --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-lookup-create. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/flags.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/link.txt b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..353c4251a7fa33543624a6cab653995839a7e624 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o -o ../../bin/llama-lookup-create -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4982ed6c691ef13d6ed07900b7c8c0f90b20af3d Binary files /dev/null and b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o differ diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o.d b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..df952efa8287bb312acdac75da0115d19cbac1be --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o.d @@ -0,0 +1,187 @@ +examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-create.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./ngram-cache.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/progress.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..1c6716bb658c386fb895fe27e1ee4b79652fd5a6 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-create.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 42 + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/DependInfo.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0798c155aa32f9d93ee2d52db09a1a733dfe0d56 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp" "examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o" "gcc" "examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0e0db14c2f93329b3f159067a45418b25f69cdac --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/lookup/CMakeFiles/llama-lookup-merge.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/lookup/CMakeFiles/llama-lookup-merge.dir/flags.make + +examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o: examples/lookup/CMakeFiles/llama-lookup-merge.dir/flags.make +examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o: ../examples/lookup/lookup-merge.cpp +examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o: examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o -MF CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o.d -o CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp" + +examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp" > CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.i + +examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp" -o CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.s + +# Object files for target llama-lookup-merge +llama__lookup__merge_OBJECTS = \ +"CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o" + +# External object files for target llama-lookup-merge +llama__lookup__merge_EXTERNAL_OBJECTS = + +bin/llama-lookup-merge: examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o +bin/llama-lookup-merge: examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make +bin/llama-lookup-merge: common/libcommon.a +bin/llama-lookup-merge: src/libllama.so +bin/llama-lookup-merge: ggml/src/libggml.so +bin/llama-lookup-merge: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-lookup-merge: ggml/src/libggml-base.so +bin/llama-lookup-merge: examples/lookup/CMakeFiles/llama-lookup-merge.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-lookup-merge" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-lookup-merge.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/lookup/CMakeFiles/llama-lookup-merge.dir/build: bin/llama-lookup-merge +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/build + +examples/lookup/CMakeFiles/llama-lookup-merge.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -P CMakeFiles/llama-lookup-merge.dir/cmake_clean.cmake +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/clean + +examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/cmake_clean.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7add7a7c992bb4b26e4e9e8311822a2d3389cff8 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-lookup-merge" + "../../bin/llama-lookup-merge.pdb" + "CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o" + "CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-lookup-merge.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..17524a98657cd38587cc4ea7cda757bfdad877ab --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-lookup-merge. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.ts b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9b397877b91d2530b6728626f63488d8d3823bb1 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-lookup-merge. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..93a75e9bc277a5ebad7fedf935e7ac4c3624b772 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-lookup-merge. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/flags.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/link.txt b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..0b0ac8dd92b126957879dbb9a84a100841c559ae --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o -o ../../bin/llama-lookup-merge -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5f1d081482a6d228570d3d00f6f7404c1f08994e Binary files /dev/null and b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o differ diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o.d b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..fcad2b2c0e54c7bc6a09aeaad97e57159d416d73 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o.d @@ -0,0 +1,184 @@ +examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-merge.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./ngram-cache.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/progress.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..a0338d9e672cf6e4608e06e5a8de19a08b043db0 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-merge.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 43 + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/DependInfo.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3f5cf61a2264875c94267aad3a8a72ca6d2f4a8e --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp" "examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o" "gcc" "examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0418df4c746b1d793d8836ab0273e569cc0614de --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/lookup/CMakeFiles/llama-lookup-stats.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/lookup/CMakeFiles/llama-lookup-stats.dir/flags.make + +examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o: examples/lookup/CMakeFiles/llama-lookup-stats.dir/flags.make +examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o: ../examples/lookup/lookup-stats.cpp +examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o: examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o -MF CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o.d -o CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp" + +examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp" > CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.i + +examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp" -o CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.s + +# Object files for target llama-lookup-stats +llama__lookup__stats_OBJECTS = \ +"CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o" + +# External object files for target llama-lookup-stats +llama__lookup__stats_EXTERNAL_OBJECTS = + +bin/llama-lookup-stats: examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o +bin/llama-lookup-stats: examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make +bin/llama-lookup-stats: common/libcommon.a +bin/llama-lookup-stats: src/libllama.so +bin/llama-lookup-stats: ggml/src/libggml.so +bin/llama-lookup-stats: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-lookup-stats: ggml/src/libggml-base.so +bin/llama-lookup-stats: examples/lookup/CMakeFiles/llama-lookup-stats.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-lookup-stats" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-lookup-stats.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/lookup/CMakeFiles/llama-lookup-stats.dir/build: bin/llama-lookup-stats +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/build + +examples/lookup/CMakeFiles/llama-lookup-stats.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -P CMakeFiles/llama-lookup-stats.dir/cmake_clean.cmake +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/clean + +examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/cmake_clean.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..714a6f207925cec8e83ca33f493dfba54ccd434c --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-lookup-stats" + "../../bin/llama-lookup-stats.pdb" + "CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o" + "CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-lookup-stats.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..fee5aeac4f8a98d607f90ca4c6b820999819c6a8 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-lookup-stats. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.ts b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0823acd465c301f7b9e2a8fe0803c58c5d54185c --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-lookup-stats. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..41b599b7b5df4be2aff92e604311264b238f5ea5 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-lookup-stats. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/flags.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/link.txt b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e663c1eb077309b8a3448a74f822cf2ff0cc6341 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o -o ../../bin/llama-lookup-stats -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..44bda5ee1cb3b4e8fb9e9b6e019977f689018653 Binary files /dev/null and b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o differ diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o.d b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..bb290f1ad034c918e3453348e721dea5aebbc1a0 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o.d @@ -0,0 +1,189 @@ +examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup-stats.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./ngram-cache.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/cinttypes \ + /usr/include/inttypes.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/progress.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..ad6384a33affb37123d7986d8e5b5370e1e3df21 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup-stats.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 44 + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/DependInfo.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9c3a8ce6869b4f936c2270398a56dbb4907ec23c --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp" "examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o" "gcc" "examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/build.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..6cc3becd46d1edaa2706fb75ac910ebf1404db94 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/lookup/CMakeFiles/llama-lookup.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/lookup/CMakeFiles/llama-lookup.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/lookup/CMakeFiles/llama-lookup.dir/flags.make + +examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o: examples/lookup/CMakeFiles/llama-lookup.dir/flags.make +examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o: ../examples/lookup/lookup.cpp +examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o: examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o -MF CMakeFiles/llama-lookup.dir/lookup.cpp.o.d -o CMakeFiles/llama-lookup.dir/lookup.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp" + +examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-lookup.dir/lookup.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp" > CMakeFiles/llama-lookup.dir/lookup.cpp.i + +examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-lookup.dir/lookup.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp" -o CMakeFiles/llama-lookup.dir/lookup.cpp.s + +# Object files for target llama-lookup +llama__lookup_OBJECTS = \ +"CMakeFiles/llama-lookup.dir/lookup.cpp.o" + +# External object files for target llama-lookup +llama__lookup_EXTERNAL_OBJECTS = + +bin/llama-lookup: examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o +bin/llama-lookup: examples/lookup/CMakeFiles/llama-lookup.dir/build.make +bin/llama-lookup: common/libcommon.a +bin/llama-lookup: src/libllama.so +bin/llama-lookup: ggml/src/libggml.so +bin/llama-lookup: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-lookup: ggml/src/libggml-base.so +bin/llama-lookup: examples/lookup/CMakeFiles/llama-lookup.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-lookup" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-lookup.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/lookup/CMakeFiles/llama-lookup.dir/build: bin/llama-lookup +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/build + +examples/lookup/CMakeFiles/llama-lookup.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" && $(CMAKE_COMMAND) -P CMakeFiles/llama-lookup.dir/cmake_clean.cmake +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/clean + +examples/lookup/CMakeFiles/llama-lookup.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/depend + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/cmake_clean.cmake b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b992738e82fce49ccdb6ffeb7ce7eee25c5c1f7f --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-lookup" + "../../bin/llama-lookup.pdb" + "CMakeFiles/llama-lookup.dir/lookup.cpp.o" + "CMakeFiles/llama-lookup.dir/lookup.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-lookup.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..fd9760c03a6b7354f81ad2880ddcc91ab1c9fd73 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-lookup. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.ts b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..172e5abdd150f4c8d6cf2b3522acd07f81077b10 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-lookup. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/depend.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2e29a7d30b62184e1acd9c526d0b9bd94d4e506d --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-lookup. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/flags.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/link.txt b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0b23bac53c6db23877717fa886e76ef45f171d7 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-lookup.dir/lookup.cpp.o -o ../../bin/llama-lookup -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5050640d98c5d0fc48a3195c01d3966490fd81d3 Binary files /dev/null and b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o differ diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o.d b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..44f01a80f57cdb2d640173553baee1510c784cd2 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o.d @@ -0,0 +1,189 @@ +examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup/lookup.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./ngram-cache.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/progress.make b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..b1f50d925dce7c5e5e5fd1608191a1190a942a7a --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/llama-lookup.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 41 + diff --git a/llama.cpp/build/examples/lookup/CMakeFiles/progress.marks b/llama.cpp/build/examples/lookup/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..a45fd52cc5891570d6299fab38643103c3955474 --- /dev/null +++ b/llama.cpp/build/examples/lookup/CMakeFiles/progress.marks @@ -0,0 +1 @@ +24 diff --git a/llama.cpp/build/examples/lookup/CTestTestfile.cmake b/llama.cpp/build/examples/lookup/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7d1b8d24e7ccd7c0b5684ef9d9ae364222e01bcf --- /dev/null +++ b/llama.cpp/build/examples/lookup/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/lookup/Makefile b/llama.cpp/build/examples/lookup/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..73a6f222c71ec93ed8564e1380c80a3e0a12f1df --- /dev/null +++ b/llama.cpp/build/examples/lookup/Makefile @@ -0,0 +1,368 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/lookup//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/lookup/CMakeFiles/llama-lookup.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup.dir/rule +.PHONY : examples/lookup/CMakeFiles/llama-lookup.dir/rule + +# Convenience name for target. +llama-lookup: examples/lookup/CMakeFiles/llama-lookup.dir/rule +.PHONY : llama-lookup + +# fast build rule for target. +llama-lookup/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/build +.PHONY : llama-lookup/fast + +# Convenience name for target. +examples/lookup/CMakeFiles/llama-lookup-create.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup-create.dir/rule +.PHONY : examples/lookup/CMakeFiles/llama-lookup-create.dir/rule + +# Convenience name for target. +llama-lookup-create: examples/lookup/CMakeFiles/llama-lookup-create.dir/rule +.PHONY : llama-lookup-create + +# fast build rule for target. +llama-lookup-create/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/build +.PHONY : llama-lookup-create/fast + +# Convenience name for target. +examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule +.PHONY : examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule + +# Convenience name for target. +llama-lookup-merge: examples/lookup/CMakeFiles/llama-lookup-merge.dir/rule +.PHONY : llama-lookup-merge + +# fast build rule for target. +llama-lookup-merge/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/build +.PHONY : llama-lookup-merge/fast + +# Convenience name for target. +examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule +.PHONY : examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule + +# Convenience name for target. +llama-lookup-stats: examples/lookup/CMakeFiles/llama-lookup-stats.dir/rule +.PHONY : llama-lookup-stats + +# fast build rule for target. +llama-lookup-stats/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/build +.PHONY : llama-lookup-stats/fast + +lookup-create.o: lookup-create.cpp.o +.PHONY : lookup-create.o + +# target to build an object file +lookup-create.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o +.PHONY : lookup-create.cpp.o + +lookup-create.i: lookup-create.cpp.i +.PHONY : lookup-create.i + +# target to preprocess a source file +lookup-create.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.i +.PHONY : lookup-create.cpp.i + +lookup-create.s: lookup-create.cpp.s +.PHONY : lookup-create.s + +# target to generate assembly for a file +lookup-create.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-create.dir/build.make examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.s +.PHONY : lookup-create.cpp.s + +lookup-merge.o: lookup-merge.cpp.o +.PHONY : lookup-merge.o + +# target to build an object file +lookup-merge.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o +.PHONY : lookup-merge.cpp.o + +lookup-merge.i: lookup-merge.cpp.i +.PHONY : lookup-merge.i + +# target to preprocess a source file +lookup-merge.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.i +.PHONY : lookup-merge.cpp.i + +lookup-merge.s: lookup-merge.cpp.s +.PHONY : lookup-merge.s + +# target to generate assembly for a file +lookup-merge.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-merge.dir/build.make examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.s +.PHONY : lookup-merge.cpp.s + +lookup-stats.o: lookup-stats.cpp.o +.PHONY : lookup-stats.o + +# target to build an object file +lookup-stats.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o +.PHONY : lookup-stats.cpp.o + +lookup-stats.i: lookup-stats.cpp.i +.PHONY : lookup-stats.i + +# target to preprocess a source file +lookup-stats.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.i +.PHONY : lookup-stats.cpp.i + +lookup-stats.s: lookup-stats.cpp.s +.PHONY : lookup-stats.s + +# target to generate assembly for a file +lookup-stats.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup-stats.dir/build.make examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.s +.PHONY : lookup-stats.cpp.s + +lookup.o: lookup.cpp.o +.PHONY : lookup.o + +# target to build an object file +lookup.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o +.PHONY : lookup.cpp.o + +lookup.i: lookup.cpp.i +.PHONY : lookup.i + +# target to preprocess a source file +lookup.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.i +.PHONY : lookup.cpp.i + +lookup.s: lookup.cpp.s +.PHONY : lookup.s + +# target to generate assembly for a file +lookup.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/lookup/CMakeFiles/llama-lookup.dir/build.make examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.s +.PHONY : lookup.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-lookup" + @echo "... llama-lookup-create" + @echo "... llama-lookup-merge" + @echo "... llama-lookup-stats" + @echo "... lookup-create.o" + @echo "... lookup-create.i" + @echo "... lookup-create.s" + @echo "... lookup-merge.o" + @echo "... lookup-merge.i" + @echo "... lookup-merge.s" + @echo "... lookup-stats.o" + @echo "... lookup-stats.i" + @echo "... lookup-stats.s" + @echo "... lookup.o" + @echo "... lookup.i" + @echo "... lookup.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/lookup/cmake_install.cmake b/llama.cpp/build/examples/lookup/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fe6e7cea5e2601d69671557b0b6daf55c2135678 --- /dev/null +++ b/llama.cpp/build/examples/lookup/cmake_install.cmake @@ -0,0 +1,124 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/lookup + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-lookup") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-lookup-create") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-create") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-lookup-merge") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-merge") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-lookup-stats") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-lookup-stats") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/main/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/main/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/DependInfo.cmake b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..35c611c2899f40523fe8db64d476fafb4eeefb6b --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp" "examples/main/CMakeFiles/llama-cli.dir/main.cpp.o" "gcc" "examples/main/CMakeFiles/llama-cli.dir/main.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/build.make b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e2e181c73ac69fe874f89d45e79b3436314474fb --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/main/CMakeFiles/llama-cli.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/main/CMakeFiles/llama-cli.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/main/CMakeFiles/llama-cli.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/main/CMakeFiles/llama-cli.dir/flags.make + +examples/main/CMakeFiles/llama-cli.dir/main.cpp.o: examples/main/CMakeFiles/llama-cli.dir/flags.make +examples/main/CMakeFiles/llama-cli.dir/main.cpp.o: ../examples/main/main.cpp +examples/main/CMakeFiles/llama-cli.dir/main.cpp.o: examples/main/CMakeFiles/llama-cli.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/main/CMakeFiles/llama-cli.dir/main.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/main/CMakeFiles/llama-cli.dir/main.cpp.o -MF CMakeFiles/llama-cli.dir/main.cpp.o.d -o CMakeFiles/llama-cli.dir/main.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp" + +examples/main/CMakeFiles/llama-cli.dir/main.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-cli.dir/main.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp" > CMakeFiles/llama-cli.dir/main.cpp.i + +examples/main/CMakeFiles/llama-cli.dir/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-cli.dir/main.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp" -o CMakeFiles/llama-cli.dir/main.cpp.s + +# Object files for target llama-cli +llama__cli_OBJECTS = \ +"CMakeFiles/llama-cli.dir/main.cpp.o" + +# External object files for target llama-cli +llama__cli_EXTERNAL_OBJECTS = + +bin/llama-cli: examples/main/CMakeFiles/llama-cli.dir/main.cpp.o +bin/llama-cli: examples/main/CMakeFiles/llama-cli.dir/build.make +bin/llama-cli: common/libcommon.a +bin/llama-cli: src/libllama.so +bin/llama-cli: ggml/src/libggml.so +bin/llama-cli: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-cli: ggml/src/libggml-base.so +bin/llama-cli: examples/main/CMakeFiles/llama-cli.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-cli" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-cli.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/main/CMakeFiles/llama-cli.dir/build: bin/llama-cli +.PHONY : examples/main/CMakeFiles/llama-cli.dir/build + +examples/main/CMakeFiles/llama-cli.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main" && $(CMAKE_COMMAND) -P CMakeFiles/llama-cli.dir/cmake_clean.cmake +.PHONY : examples/main/CMakeFiles/llama-cli.dir/clean + +examples/main/CMakeFiles/llama-cli.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/main/CMakeFiles/llama-cli.dir/depend + diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/cmake_clean.cmake b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e0db4c4a95f3ff89bf34d738079b5d0f9a8d4701 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-cli" + "../../bin/llama-cli.pdb" + "CMakeFiles/llama-cli.dir/main.cpp.o" + "CMakeFiles/llama-cli.dir/main.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-cli.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/compiler_depend.make b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7d9fd679e16c491cfb988df15918964748a49cc5 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-cli. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/compiler_depend.ts b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..729105b9897b3513610aafc4914335c5c606890f --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-cli. diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/depend.make b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..43671a3c7d5b63ccb976eea5efcad12a57d9518a --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-cli. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/flags.make b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/link.txt b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e4e40d0b591ab0003857e495061514a626717358 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-cli.dir/main.cpp.o -o ../../bin/llama-cli -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/main.cpp.o b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/main.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b907c2dbfa9340a373d71262d15f9b3bb036de3b Binary files /dev/null and b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/main.cpp.o differ diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/main.cpp.o.d b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/main.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..0c939b1b403846a3aaf5c9de71ae00a8d28f1f32 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/main.cpp.o.d @@ -0,0 +1,217 @@ +examples/main/CMakeFiles/llama-cli.dir/main.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main/main.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./console.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/ctime /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream \ + /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h diff --git a/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/progress.make b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..4a242352d39585f565bcf3c09c9ba9a555bfcae1 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/llama-cli.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 24 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/main/CMakeFiles/progress.marks b/llama.cpp/build/examples/main/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/main/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/main/CTestTestfile.cmake b/llama.cpp/build/examples/main/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..173ff7b67505d80ba11f208d0351e52a7b608146 --- /dev/null +++ b/llama.cpp/build/examples/main/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/main/Makefile b/llama.cpp/build/examples/main/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..140d62619841221b88e2e6d7167a27d03dd27641 --- /dev/null +++ b/llama.cpp/build/examples/main/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/main//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/main/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/main/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/main/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/main/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/main/CMakeFiles/llama-cli.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/main/CMakeFiles/llama-cli.dir/rule +.PHONY : examples/main/CMakeFiles/llama-cli.dir/rule + +# Convenience name for target. +llama-cli: examples/main/CMakeFiles/llama-cli.dir/rule +.PHONY : llama-cli + +# fast build rule for target. +llama-cli/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/build +.PHONY : llama-cli/fast + +main.o: main.cpp.o +.PHONY : main.o + +# target to build an object file +main.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/main.cpp.o +.PHONY : main.cpp.o + +main.i: main.cpp.i +.PHONY : main.i + +# target to preprocess a source file +main.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/main.cpp.i +.PHONY : main.cpp.i + +main.s: main.cpp.s +.PHONY : main.s + +# target to generate assembly for a file +main.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/main/CMakeFiles/llama-cli.dir/build.make examples/main/CMakeFiles/llama-cli.dir/main.cpp.s +.PHONY : main.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-cli" + @echo "... main.o" + @echo "... main.i" + @echo "... main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/main/cmake_install.cmake b/llama.cpp/build/examples/main/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c0f6fb41298b4e93cb3ba090236920a0a24bc6ee --- /dev/null +++ b/llama.cpp/build/examples/main/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/main + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-cli") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-cli") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/parallel/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/DependInfo.cmake b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2b44ff61bdb3224b78ad3d7d2e6afe6b93f5ba00 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp" "examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o" "gcc" "examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/build.make b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ccddd146cbdfff856588f96339f302bfdaa7ef8b --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/parallel/CMakeFiles/llama-parallel.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/parallel/CMakeFiles/llama-parallel.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/parallel/CMakeFiles/llama-parallel.dir/flags.make + +examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o: examples/parallel/CMakeFiles/llama-parallel.dir/flags.make +examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o: ../examples/parallel/parallel.cpp +examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o: examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o -MF CMakeFiles/llama-parallel.dir/parallel.cpp.o.d -o CMakeFiles/llama-parallel.dir/parallel.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp" + +examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-parallel.dir/parallel.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp" > CMakeFiles/llama-parallel.dir/parallel.cpp.i + +examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-parallel.dir/parallel.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp" -o CMakeFiles/llama-parallel.dir/parallel.cpp.s + +# Object files for target llama-parallel +llama__parallel_OBJECTS = \ +"CMakeFiles/llama-parallel.dir/parallel.cpp.o" + +# External object files for target llama-parallel +llama__parallel_EXTERNAL_OBJECTS = + +bin/llama-parallel: examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o +bin/llama-parallel: examples/parallel/CMakeFiles/llama-parallel.dir/build.make +bin/llama-parallel: common/libcommon.a +bin/llama-parallel: src/libllama.so +bin/llama-parallel: ggml/src/libggml.so +bin/llama-parallel: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-parallel: ggml/src/libggml-base.so +bin/llama-parallel: examples/parallel/CMakeFiles/llama-parallel.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-parallel" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-parallel.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/parallel/CMakeFiles/llama-parallel.dir/build: bin/llama-parallel +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/build + +examples/parallel/CMakeFiles/llama-parallel.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel" && $(CMAKE_COMMAND) -P CMakeFiles/llama-parallel.dir/cmake_clean.cmake +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/clean + +examples/parallel/CMakeFiles/llama-parallel.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/depend + diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/cmake_clean.cmake b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3cabae09d610facd9499ce11c75ca9b3614dae8f --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-parallel" + "../../bin/llama-parallel.pdb" + "CMakeFiles/llama-parallel.dir/parallel.cpp.o" + "CMakeFiles/llama-parallel.dir/parallel.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-parallel.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.make b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ab16cff6b61890713ba9b0e17027ae1a80659c2f --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-parallel. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.ts b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..8aba78ecf684d4deb89f946254a67d38951e130f --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-parallel. diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/depend.make b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..27f173764ee87c91cc1d5975e05726931755d21c --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-parallel. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/flags.make b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/link.txt b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..cda9dd7252a0e13471737f762a823a4930fe6da4 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-parallel.dir/parallel.cpp.o -o ../../bin/llama-parallel -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..3dcfd38abb45199abcb1024684b74f8aeee2c69b Binary files /dev/null and b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o differ diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o.d b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..68d90fd9ef6643b9ed39f3e748edc735afbc41d4 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o.d @@ -0,0 +1,200 @@ +examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel/parallel.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/ctime diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/progress.make b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..661b7ff72564ebcdeef00b93f0a0fe494d29a098 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/llama-parallel.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 46 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/parallel/CMakeFiles/progress.marks b/llama.cpp/build/examples/parallel/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/parallel/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/parallel/CTestTestfile.cmake b/llama.cpp/build/examples/parallel/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dcfde70a6184dd4e1538a0d45255c8fe94519bcf --- /dev/null +++ b/llama.cpp/build/examples/parallel/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/parallel/Makefile b/llama.cpp/build/examples/parallel/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..518709318b5a9f330de125b52f6678a136744eee --- /dev/null +++ b/llama.cpp/build/examples/parallel/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/parallel//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/parallel/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/parallel/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/parallel/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/parallel/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/parallel/CMakeFiles/llama-parallel.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/parallel/CMakeFiles/llama-parallel.dir/rule +.PHONY : examples/parallel/CMakeFiles/llama-parallel.dir/rule + +# Convenience name for target. +llama-parallel: examples/parallel/CMakeFiles/llama-parallel.dir/rule +.PHONY : llama-parallel + +# fast build rule for target. +llama-parallel/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/build +.PHONY : llama-parallel/fast + +parallel.o: parallel.cpp.o +.PHONY : parallel.o + +# target to build an object file +parallel.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o +.PHONY : parallel.cpp.o + +parallel.i: parallel.cpp.i +.PHONY : parallel.i + +# target to preprocess a source file +parallel.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.i +.PHONY : parallel.cpp.i + +parallel.s: parallel.cpp.s +.PHONY : parallel.s + +# target to generate assembly for a file +parallel.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/parallel/CMakeFiles/llama-parallel.dir/build.make examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.s +.PHONY : parallel.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-parallel" + @echo "... parallel.o" + @echo "... parallel.i" + @echo "... parallel.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/parallel/cmake_install.cmake b/llama.cpp/build/examples/parallel/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..da6bed1b613a850bbd920c5c56720d6beb79e8d7 --- /dev/null +++ b/llama.cpp/build/examples/parallel/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/parallel + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-parallel") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-parallel") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/passkey/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/DependInfo.cmake b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ece84dc0488ed16657481370c0626035731cfff6 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp" "examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o" "gcc" "examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/build.make b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..64906c93315364fb496b1d413b2dd3f23ba4a7e6 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/passkey/CMakeFiles/llama-passkey.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/passkey/CMakeFiles/llama-passkey.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/passkey/CMakeFiles/llama-passkey.dir/flags.make + +examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o: examples/passkey/CMakeFiles/llama-passkey.dir/flags.make +examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o: ../examples/passkey/passkey.cpp +examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o: examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o -MF CMakeFiles/llama-passkey.dir/passkey.cpp.o.d -o CMakeFiles/llama-passkey.dir/passkey.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp" + +examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-passkey.dir/passkey.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp" > CMakeFiles/llama-passkey.dir/passkey.cpp.i + +examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-passkey.dir/passkey.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp" -o CMakeFiles/llama-passkey.dir/passkey.cpp.s + +# Object files for target llama-passkey +llama__passkey_OBJECTS = \ +"CMakeFiles/llama-passkey.dir/passkey.cpp.o" + +# External object files for target llama-passkey +llama__passkey_EXTERNAL_OBJECTS = + +bin/llama-passkey: examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o +bin/llama-passkey: examples/passkey/CMakeFiles/llama-passkey.dir/build.make +bin/llama-passkey: common/libcommon.a +bin/llama-passkey: src/libllama.so +bin/llama-passkey: ggml/src/libggml.so +bin/llama-passkey: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-passkey: ggml/src/libggml-base.so +bin/llama-passkey: examples/passkey/CMakeFiles/llama-passkey.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-passkey" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-passkey.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/passkey/CMakeFiles/llama-passkey.dir/build: bin/llama-passkey +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/build + +examples/passkey/CMakeFiles/llama-passkey.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey" && $(CMAKE_COMMAND) -P CMakeFiles/llama-passkey.dir/cmake_clean.cmake +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/clean + +examples/passkey/CMakeFiles/llama-passkey.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/depend + diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/cmake_clean.cmake b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2bd9b981db9763314e65ccfb1c320956acaac3a7 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-passkey" + "../../bin/llama-passkey.pdb" + "CMakeFiles/llama-passkey.dir/passkey.cpp.o" + "CMakeFiles/llama-passkey.dir/passkey.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-passkey.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.make b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9d97f36db13e5f3e4d556b1fd8f602592c938a6a --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-passkey. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.ts b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..1c83609ce89d27890dc4f68b9c6032cc0fae001e --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-passkey. diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/depend.make b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..f86f8179f7f923c8e58e66633114ad1a8fe9bda9 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-passkey. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/flags.make b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/link.txt b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..fafb87672beac56b723843a7b894f4dfa6011ae6 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-passkey.dir/passkey.cpp.o -o ../../bin/llama-passkey -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c152d9f582ab168a88f73006af281294fbabece5 Binary files /dev/null and b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o differ diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o.d b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..738e4c6b01d3510993d30ce7bf145cbd385d3fe8 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o.d @@ -0,0 +1,199 @@ +examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey/passkey.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/progress.make b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..e767016d336066eafb86f047c54088f4dd34a084 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/llama-passkey.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 47 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/passkey/CMakeFiles/progress.marks b/llama.cpp/build/examples/passkey/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/passkey/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/passkey/CTestTestfile.cmake b/llama.cpp/build/examples/passkey/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ee937e9171bab2657147daac5e8f7173807148db --- /dev/null +++ b/llama.cpp/build/examples/passkey/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/passkey/Makefile b/llama.cpp/build/examples/passkey/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..22f751e63ed86ae5d3b881233a323b688980b79c --- /dev/null +++ b/llama.cpp/build/examples/passkey/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/passkey//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/passkey/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/passkey/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/passkey/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/passkey/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/passkey/CMakeFiles/llama-passkey.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/passkey/CMakeFiles/llama-passkey.dir/rule +.PHONY : examples/passkey/CMakeFiles/llama-passkey.dir/rule + +# Convenience name for target. +llama-passkey: examples/passkey/CMakeFiles/llama-passkey.dir/rule +.PHONY : llama-passkey + +# fast build rule for target. +llama-passkey/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/build +.PHONY : llama-passkey/fast + +passkey.o: passkey.cpp.o +.PHONY : passkey.o + +# target to build an object file +passkey.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o +.PHONY : passkey.cpp.o + +passkey.i: passkey.cpp.i +.PHONY : passkey.i + +# target to preprocess a source file +passkey.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.i +.PHONY : passkey.cpp.i + +passkey.s: passkey.cpp.s +.PHONY : passkey.s + +# target to generate assembly for a file +passkey.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/passkey/CMakeFiles/llama-passkey.dir/build.make examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.s +.PHONY : passkey.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-passkey" + @echo "... passkey.o" + @echo "... passkey.i" + @echo "... passkey.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/passkey/cmake_install.cmake b/llama.cpp/build/examples/passkey/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..02f248ecafc4cab5b14c09def8e01dc026eee39e --- /dev/null +++ b/llama.cpp/build/examples/passkey/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/passkey + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-passkey") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-passkey") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/perplexity/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/DependInfo.cmake b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6592debcc1196d2104341fcbd4b97011d75ab70d --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp" "examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o" "gcc" "examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..1cc67c5e6e908d93d05165a5711b795d4eb2f1b5 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/perplexity/CMakeFiles/llama-perplexity.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/perplexity/CMakeFiles/llama-perplexity.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/perplexity/CMakeFiles/llama-perplexity.dir/flags.make + +examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o: examples/perplexity/CMakeFiles/llama-perplexity.dir/flags.make +examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o: ../examples/perplexity/perplexity.cpp +examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o: examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o -MF CMakeFiles/llama-perplexity.dir/perplexity.cpp.o.d -o CMakeFiles/llama-perplexity.dir/perplexity.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp" + +examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-perplexity.dir/perplexity.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp" > CMakeFiles/llama-perplexity.dir/perplexity.cpp.i + +examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-perplexity.dir/perplexity.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp" -o CMakeFiles/llama-perplexity.dir/perplexity.cpp.s + +# Object files for target llama-perplexity +llama__perplexity_OBJECTS = \ +"CMakeFiles/llama-perplexity.dir/perplexity.cpp.o" + +# External object files for target llama-perplexity +llama__perplexity_EXTERNAL_OBJECTS = + +bin/llama-perplexity: examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o +bin/llama-perplexity: examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make +bin/llama-perplexity: common/libcommon.a +bin/llama-perplexity: src/libllama.so +bin/llama-perplexity: ggml/src/libggml.so +bin/llama-perplexity: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-perplexity: ggml/src/libggml-base.so +bin/llama-perplexity: examples/perplexity/CMakeFiles/llama-perplexity.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-perplexity" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-perplexity.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/perplexity/CMakeFiles/llama-perplexity.dir/build: bin/llama-perplexity +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/build + +examples/perplexity/CMakeFiles/llama-perplexity.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity" && $(CMAKE_COMMAND) -P CMakeFiles/llama-perplexity.dir/cmake_clean.cmake +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/clean + +examples/perplexity/CMakeFiles/llama-perplexity.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/depend + diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/cmake_clean.cmake b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5e766240f388b032558a0cf83e5cd933b09c1111 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-perplexity" + "../../bin/llama-perplexity.pdb" + "CMakeFiles/llama-perplexity.dir/perplexity.cpp.o" + "CMakeFiles/llama-perplexity.dir/perplexity.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-perplexity.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.make b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e8f7bb6ec4848b3495391fe1916fbc8784fd522f --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-perplexity. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.ts b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5480f2c8e5813c42652e934f89769ee254aaf1a6 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-perplexity. diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/depend.make b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..20ff1c2928524f85a20e9c2b899bf3510db8c99c --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-perplexity. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/flags.make b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/link.txt b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2929f9b56ab1f9748459acc18d08726497ca6195 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-perplexity.dir/perplexity.cpp.o -o ../../bin/llama-perplexity -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c4b1c5057de9932609233b6af75a5b38c27e5702 Binary files /dev/null and b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o differ diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o.d b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..839c8a8c6d2ad80fd19f26ea0e87e9f04b563787 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o.d @@ -0,0 +1,238 @@ +examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity/perplexity.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/atomic \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/ctime /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/mutex \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h /usr/include/c++/11/random \ + /usr/include/c++/11/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/this_thread_sleep.h diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/progress.make b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..23b590b4e7a477f6e327cd634a8f1643168a5853 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/llama-perplexity.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 48 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/perplexity/CMakeFiles/progress.marks b/llama.cpp/build/examples/perplexity/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/perplexity/CTestTestfile.cmake b/llama.cpp/build/examples/perplexity/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..27fb32dcef154ddeb7c9f024a9a0240de39afe44 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/perplexity/Makefile b/llama.cpp/build/examples/perplexity/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..f12fb25b3b24bd0649ddde19cab0d4e180673fd7 --- /dev/null +++ b/llama.cpp/build/examples/perplexity/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/perplexity//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/perplexity/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/perplexity/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/perplexity/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/perplexity/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/perplexity/CMakeFiles/llama-perplexity.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/perplexity/CMakeFiles/llama-perplexity.dir/rule +.PHONY : examples/perplexity/CMakeFiles/llama-perplexity.dir/rule + +# Convenience name for target. +llama-perplexity: examples/perplexity/CMakeFiles/llama-perplexity.dir/rule +.PHONY : llama-perplexity + +# fast build rule for target. +llama-perplexity/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/build +.PHONY : llama-perplexity/fast + +perplexity.o: perplexity.cpp.o +.PHONY : perplexity.o + +# target to build an object file +perplexity.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.o +.PHONY : perplexity.cpp.o + +perplexity.i: perplexity.cpp.i +.PHONY : perplexity.i + +# target to preprocess a source file +perplexity.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.i +.PHONY : perplexity.cpp.i + +perplexity.s: perplexity.cpp.s +.PHONY : perplexity.s + +# target to generate assembly for a file +perplexity.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/perplexity/CMakeFiles/llama-perplexity.dir/build.make examples/perplexity/CMakeFiles/llama-perplexity.dir/perplexity.cpp.s +.PHONY : perplexity.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-perplexity" + @echo "... perplexity.o" + @echo "... perplexity.i" + @echo "... perplexity.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/perplexity/cmake_install.cmake b/llama.cpp/build/examples/perplexity/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3c671c4c26a8dead92341f1bf325459ce043b6fd --- /dev/null +++ b/llama.cpp/build/examples/perplexity/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/perplexity + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-perplexity") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-perplexity") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/quantize-stats/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/DependInfo.cmake b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7e4f01e53972d95f12a17b47cb6c40d1db2dbc1f --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/DependInfo.cmake @@ -0,0 +1,23 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp" "examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o" "gcc" "examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2529d8bc475e8bfe51231a616187f36c701aa82d --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make @@ -0,0 +1,116 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/flags.make + +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/flags.make +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o: ../examples/quantize-stats/quantize-stats.cpp +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o -MF CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o.d -o CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp" + +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp" > CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.i + +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp" -o CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.s + +# Object files for target llama-quantize-stats +llama__quantize__stats_OBJECTS = \ +"CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o" + +# External object files for target llama-quantize-stats +llama__quantize__stats_EXTERNAL_OBJECTS = \ +"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/build_info.dir/build-info.cpp.o" + +bin/llama-quantize-stats: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o +bin/llama-quantize-stats: common/CMakeFiles/build_info.dir/build-info.cpp.o +bin/llama-quantize-stats: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make +bin/llama-quantize-stats: src/libllama.so +bin/llama-quantize-stats: ggml/src/libggml.so +bin/llama-quantize-stats: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-quantize-stats: ggml/src/libggml-base.so +bin/llama-quantize-stats: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-quantize-stats" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-quantize-stats.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build: bin/llama-quantize-stats +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build + +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats" && $(CMAKE_COMMAND) -P CMakeFiles/llama-quantize-stats.dir/cmake_clean.cmake +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/clean + +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend + diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/cmake_clean.cmake b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7ccd9dd7a2643b14c8a20c1c0c5a695d69c7c14e --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-quantize-stats" + "../../bin/llama-quantize-stats.pdb" + "CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o" + "CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-quantize-stats.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.make b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..34d33aa97be5385d22fc70cc5d8a75670e1f3c8d --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-quantize-stats. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.ts b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cb140a12d7fa7d7af814d78aa1df3b40339db84b --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-quantize-stats. diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend.make b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4bc0475a5d1900932a69bf2d261908ac2e77363f --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-quantize-stats. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/flags.make b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..3c24b7220bda18c101bf735d90ec4e470e335e89 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/../../common" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/link.txt b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..34dff3f29840cd6e5d7c495c4c7e0f97b804c433 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o ../../common/CMakeFiles/build_info.dir/build-info.cpp.o -o ../../bin/llama-quantize-stats -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/progress.make b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..da69ae6cce8dca8bbf8b0618a5d82077bc6bcc83 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 52 + diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4a6a6822a5be5a0d38beda30cef7f4fbc5dc9431 Binary files /dev/null and b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o differ diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o.d b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..fb7497344709ba82eaa93f04ef08d91bb5fb8acc --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o.d @@ -0,0 +1,259 @@ +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/quantize-stats.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats/../../common/common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-impl.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/cinttypes \ + /usr/include/inttypes.h /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/iterator \ + /usr/include/c++/11/bits/stream_iterator.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h /usr/include/c++/11/ctime \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/mutex /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h diff --git a/llama.cpp/build/examples/quantize-stats/CMakeFiles/progress.marks b/llama.cpp/build/examples/quantize-stats/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..b6a7d89c68e0ca66e96a9a51892cc33db66fb8a3 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CMakeFiles/progress.marks @@ -0,0 +1 @@ +16 diff --git a/llama.cpp/build/examples/quantize-stats/CTestTestfile.cmake b/llama.cpp/build/examples/quantize-stats/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9fedfc821f3ddffac4e35360cc34050f578f98d3 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/quantize-stats/Makefile b/llama.cpp/build/examples/quantize-stats/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..fabe68be9cd0a025a2a290c453fab0e0f477bd91 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize-stats//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize-stats/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize-stats/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize-stats/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize-stats/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule +.PHONY : examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule + +# Convenience name for target. +llama-quantize-stats: examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/rule +.PHONY : llama-quantize-stats + +# fast build rule for target. +llama-quantize-stats/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build +.PHONY : llama-quantize-stats/fast + +quantize-stats.o: quantize-stats.cpp.o +.PHONY : quantize-stats.o + +# target to build an object file +quantize-stats.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.o +.PHONY : quantize-stats.cpp.o + +quantize-stats.i: quantize-stats.cpp.i +.PHONY : quantize-stats.i + +# target to preprocess a source file +quantize-stats.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.i +.PHONY : quantize-stats.cpp.i + +quantize-stats.s: quantize-stats.cpp.s +.PHONY : quantize-stats.s + +# target to generate assembly for a file +quantize-stats.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/build.make examples/quantize-stats/CMakeFiles/llama-quantize-stats.dir/quantize-stats.cpp.s +.PHONY : quantize-stats.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-quantize-stats" + @echo "... quantize-stats.o" + @echo "... quantize-stats.i" + @echo "... quantize-stats.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/quantize-stats/cmake_install.cmake b/llama.cpp/build/examples/quantize-stats/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b3b516e9c6da090ce53c7855805bad5384be8ab9 --- /dev/null +++ b/llama.cpp/build/examples/quantize-stats/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize-stats + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-quantize-stats") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize-stats") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/quantize/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/DependInfo.cmake b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc72d44ba0ff9f0692d64544b52884d1293dbf00 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp" "examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o" "gcc" "examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/build.make b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b39046c6cbf82d12457482a3a621ea83fcd38c1e --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/quantize/CMakeFiles/llama-quantize.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/quantize/CMakeFiles/llama-quantize.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/quantize/CMakeFiles/llama-quantize.dir/flags.make + +examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o: examples/quantize/CMakeFiles/llama-quantize.dir/flags.make +examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o: ../examples/quantize/quantize.cpp +examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o: examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o -MF CMakeFiles/llama-quantize.dir/quantize.cpp.o.d -o CMakeFiles/llama-quantize.dir/quantize.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp" + +examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-quantize.dir/quantize.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp" > CMakeFiles/llama-quantize.dir/quantize.cpp.i + +examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-quantize.dir/quantize.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp" -o CMakeFiles/llama-quantize.dir/quantize.cpp.s + +# Object files for target llama-quantize +llama__quantize_OBJECTS = \ +"CMakeFiles/llama-quantize.dir/quantize.cpp.o" + +# External object files for target llama-quantize +llama__quantize_EXTERNAL_OBJECTS = + +bin/llama-quantize: examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o +bin/llama-quantize: examples/quantize/CMakeFiles/llama-quantize.dir/build.make +bin/llama-quantize: common/libcommon.a +bin/llama-quantize: src/libllama.so +bin/llama-quantize: ggml/src/libggml.so +bin/llama-quantize: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-quantize: ggml/src/libggml-base.so +bin/llama-quantize: examples/quantize/CMakeFiles/llama-quantize.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-quantize" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-quantize.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/quantize/CMakeFiles/llama-quantize.dir/build: bin/llama-quantize +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/build + +examples/quantize/CMakeFiles/llama-quantize.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize" && $(CMAKE_COMMAND) -P CMakeFiles/llama-quantize.dir/cmake_clean.cmake +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/clean + +examples/quantize/CMakeFiles/llama-quantize.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/depend + diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/cmake_clean.cmake b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..20f6a74cbc41c223be3e39656c4ce9aaa7049b46 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-quantize" + "../../bin/llama-quantize.pdb" + "CMakeFiles/llama-quantize.dir/quantize.cpp.o" + "CMakeFiles/llama-quantize.dir/quantize.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-quantize.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.make b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..59c8540f6c4d00f3f587f58374e16afbc9b87550 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-quantize. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.ts b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..ed3ba1051fd3e0371e483738725e3e5a56dcb090 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-quantize. diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/depend.make b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..149c2e5435947d3a4e02992f5e285fc62c42ba84 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-quantize. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/flags.make b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..951df7da243da63f300424ad1ca6df9b5c073906 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/../../common" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/link.txt b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..9fb566580b5a1be9e4dc86df0ccc37371cc5812e --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-quantize.dir/quantize.cpp.o -o ../../bin/llama-quantize -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/progress.make b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..9fc8bfe236b8b0bfed747864457ae4d52f95467d --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 51 + diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..720bde5de715ddbcd278fbcf22bef9a52d3bf676 Binary files /dev/null and b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o differ diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o.d b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f915fc540695b632cd91289fadaaf8e9cf01cd02 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o.d @@ -0,0 +1,208 @@ +examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/quantize.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize/../../common/common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/cmath \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc diff --git a/llama.cpp/build/examples/quantize/CMakeFiles/progress.marks b/llama.cpp/build/examples/quantize/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/quantize/CTestTestfile.cmake b/llama.cpp/build/examples/quantize/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4d457b019f8e859d79e3a597bbf3fbb9a2ed5b91 --- /dev/null +++ b/llama.cpp/build/examples/quantize/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/quantize/Makefile b/llama.cpp/build/examples/quantize/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..1678210f54154f8d1492ae09ea8a9749bce8734d --- /dev/null +++ b/llama.cpp/build/examples/quantize/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/quantize//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/quantize/CMakeFiles/llama-quantize.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/quantize/CMakeFiles/llama-quantize.dir/rule +.PHONY : examples/quantize/CMakeFiles/llama-quantize.dir/rule + +# Convenience name for target. +llama-quantize: examples/quantize/CMakeFiles/llama-quantize.dir/rule +.PHONY : llama-quantize + +# fast build rule for target. +llama-quantize/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/build +.PHONY : llama-quantize/fast + +quantize.o: quantize.cpp.o +.PHONY : quantize.o + +# target to build an object file +quantize.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.o +.PHONY : quantize.cpp.o + +quantize.i: quantize.cpp.i +.PHONY : quantize.i + +# target to preprocess a source file +quantize.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.i +.PHONY : quantize.cpp.i + +quantize.s: quantize.cpp.s +.PHONY : quantize.s + +# target to generate assembly for a file +quantize.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/quantize/CMakeFiles/llama-quantize.dir/build.make examples/quantize/CMakeFiles/llama-quantize.dir/quantize.cpp.s +.PHONY : quantize.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-quantize" + @echo "... quantize.o" + @echo "... quantize.i" + @echo "... quantize.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/quantize/cmake_install.cmake b/llama.cpp/build/examples/quantize/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0b44ffacda0ce768076e784a0944c0e31e62fa7a --- /dev/null +++ b/llama.cpp/build/examples/quantize/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/quantize + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-quantize") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-quantize") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/retrieval/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/DependInfo.cmake b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ebf9a480183cfa92eca7a62d4a333d472a2f654a --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp" "examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o" "gcc" "examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..9469bc575e33425f397d8eaa4f1e871102f83616 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/retrieval/CMakeFiles/llama-retrieval.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/retrieval/CMakeFiles/llama-retrieval.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/retrieval/CMakeFiles/llama-retrieval.dir/flags.make + +examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o: examples/retrieval/CMakeFiles/llama-retrieval.dir/flags.make +examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o: ../examples/retrieval/retrieval.cpp +examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o: examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o -MF CMakeFiles/llama-retrieval.dir/retrieval.cpp.o.d -o CMakeFiles/llama-retrieval.dir/retrieval.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp" + +examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-retrieval.dir/retrieval.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp" > CMakeFiles/llama-retrieval.dir/retrieval.cpp.i + +examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-retrieval.dir/retrieval.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp" -o CMakeFiles/llama-retrieval.dir/retrieval.cpp.s + +# Object files for target llama-retrieval +llama__retrieval_OBJECTS = \ +"CMakeFiles/llama-retrieval.dir/retrieval.cpp.o" + +# External object files for target llama-retrieval +llama__retrieval_EXTERNAL_OBJECTS = + +bin/llama-retrieval: examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o +bin/llama-retrieval: examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make +bin/llama-retrieval: common/libcommon.a +bin/llama-retrieval: src/libllama.so +bin/llama-retrieval: ggml/src/libggml.so +bin/llama-retrieval: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-retrieval: ggml/src/libggml-base.so +bin/llama-retrieval: examples/retrieval/CMakeFiles/llama-retrieval.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-retrieval" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-retrieval.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/retrieval/CMakeFiles/llama-retrieval.dir/build: bin/llama-retrieval +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/build + +examples/retrieval/CMakeFiles/llama-retrieval.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval" && $(CMAKE_COMMAND) -P CMakeFiles/llama-retrieval.dir/cmake_clean.cmake +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/clean + +examples/retrieval/CMakeFiles/llama-retrieval.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/depend + diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/cmake_clean.cmake b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..da71f17e522bcb6bf0c4d3ab51548721b63fc27f --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-retrieval" + "../../bin/llama-retrieval.pdb" + "CMakeFiles/llama-retrieval.dir/retrieval.cpp.o" + "CMakeFiles/llama-retrieval.dir/retrieval.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-retrieval.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.make b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..397b98a534f84ca1df2ee001852f7082f06d7c63 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-retrieval. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.ts b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..586fd2a0f15d1ad0ea55feb264968a819e507ac8 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-retrieval. diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/depend.make b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2dadfaf2cf8a6363d0580fdd5d924446ef99032a --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-retrieval. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/flags.make b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/link.txt b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..4e795a7991f2bc4445deb9f9549dd2de2d47b08d --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-retrieval.dir/retrieval.cpp.o -o ../../bin/llama-retrieval -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/progress.make b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..356049e7d8b9c90e303b6047d5c07f44638dc96d --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 53 + diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..481cb2c5f15c685f2e5811b43b9d0631bd56d36a Binary files /dev/null and b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o differ diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o.d b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..8ab9fa966e2885a92656a7ea571b9a3e0b28a855 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o.d @@ -0,0 +1,197 @@ +examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval/retrieval.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream diff --git a/llama.cpp/build/examples/retrieval/CMakeFiles/progress.marks b/llama.cpp/build/examples/retrieval/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/retrieval/CTestTestfile.cmake b/llama.cpp/build/examples/retrieval/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e2bb351de572030badf4d018e16c75512c4effcc --- /dev/null +++ b/llama.cpp/build/examples/retrieval/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/retrieval/Makefile b/llama.cpp/build/examples/retrieval/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ad36ac4854620da219909336c0e02cd69a7513c3 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/retrieval//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/retrieval/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/retrieval/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/retrieval/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/retrieval/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/retrieval/CMakeFiles/llama-retrieval.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/retrieval/CMakeFiles/llama-retrieval.dir/rule +.PHONY : examples/retrieval/CMakeFiles/llama-retrieval.dir/rule + +# Convenience name for target. +llama-retrieval: examples/retrieval/CMakeFiles/llama-retrieval.dir/rule +.PHONY : llama-retrieval + +# fast build rule for target. +llama-retrieval/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/build +.PHONY : llama-retrieval/fast + +retrieval.o: retrieval.cpp.o +.PHONY : retrieval.o + +# target to build an object file +retrieval.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o +.PHONY : retrieval.cpp.o + +retrieval.i: retrieval.cpp.i +.PHONY : retrieval.i + +# target to preprocess a source file +retrieval.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.i +.PHONY : retrieval.cpp.i + +retrieval.s: retrieval.cpp.s +.PHONY : retrieval.s + +# target to generate assembly for a file +retrieval.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/retrieval/CMakeFiles/llama-retrieval.dir/build.make examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.s +.PHONY : retrieval.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-retrieval" + @echo "... retrieval.o" + @echo "... retrieval.i" + @echo "... retrieval.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/retrieval/cmake_install.cmake b/llama.cpp/build/examples/retrieval/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9317fda334f8a20c0f7ae15235bed2cee73351f3 --- /dev/null +++ b/llama.cpp/build/examples/retrieval/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/retrieval + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-retrieval") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-retrieval") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/run/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/run/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/DependInfo.cmake b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ac5900a48cd14ac301b9f1769e5d5c1b0cad43cf --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/DependInfo.cmake @@ -0,0 +1,23 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp" "examples/run/CMakeFiles/llama-run.dir/run.cpp.o" "gcc" "examples/run/CMakeFiles/llama-run.dir/run.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/build.make b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..55b10d678a4848a7e82b5760d169b4bf61256877 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/build.make @@ -0,0 +1,114 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/run/CMakeFiles/llama-run.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/run/CMakeFiles/llama-run.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/run/CMakeFiles/llama-run.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/run/CMakeFiles/llama-run.dir/flags.make + +examples/run/CMakeFiles/llama-run.dir/run.cpp.o: examples/run/CMakeFiles/llama-run.dir/flags.make +examples/run/CMakeFiles/llama-run.dir/run.cpp.o: ../examples/run/run.cpp +examples/run/CMakeFiles/llama-run.dir/run.cpp.o: examples/run/CMakeFiles/llama-run.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/run/CMakeFiles/llama-run.dir/run.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/run/CMakeFiles/llama-run.dir/run.cpp.o -MF CMakeFiles/llama-run.dir/run.cpp.o.d -o CMakeFiles/llama-run.dir/run.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp" + +examples/run/CMakeFiles/llama-run.dir/run.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-run.dir/run.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp" > CMakeFiles/llama-run.dir/run.cpp.i + +examples/run/CMakeFiles/llama-run.dir/run.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-run.dir/run.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp" -o CMakeFiles/llama-run.dir/run.cpp.s + +# Object files for target llama-run +llama__run_OBJECTS = \ +"CMakeFiles/llama-run.dir/run.cpp.o" + +# External object files for target llama-run +llama__run_EXTERNAL_OBJECTS = + +bin/llama-run: examples/run/CMakeFiles/llama-run.dir/run.cpp.o +bin/llama-run: examples/run/CMakeFiles/llama-run.dir/build.make +bin/llama-run: src/libllama.so +bin/llama-run: ggml/src/libggml.so +bin/llama-run: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-run: ggml/src/libggml-base.so +bin/llama-run: examples/run/CMakeFiles/llama-run.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-run" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-run.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/run/CMakeFiles/llama-run.dir/build: bin/llama-run +.PHONY : examples/run/CMakeFiles/llama-run.dir/build + +examples/run/CMakeFiles/llama-run.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run" && $(CMAKE_COMMAND) -P CMakeFiles/llama-run.dir/cmake_clean.cmake +.PHONY : examples/run/CMakeFiles/llama-run.dir/clean + +examples/run/CMakeFiles/llama-run.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/run/CMakeFiles/llama-run.dir/depend + diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/cmake_clean.cmake b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f40f6b67a48a9a561517184fa3e03d7420d9d438 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-run" + "../../bin/llama-run.pdb" + "CMakeFiles/llama-run.dir/run.cpp.o" + "CMakeFiles/llama-run.dir/run.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-run.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/compiler_depend.make b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..808bdf8c7562bb126e4f03934ab43d1183b4357f --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-run. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/compiler_depend.ts b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0544e28b194d35f9cc3fa81972696485145a0471 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-run. diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/depend.make b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9d4abe827650fa4c16632b411db20ad0e3051dac --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-run. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/flags.make b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..4760531e6a1223f219f3b1ae8ba5877dd4a0e560 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/link.txt b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..1eab56c085f15d2b080586bc03d554619887fa72 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-run.dir/run.cpp.o -o ../../bin/llama-run -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/progress.make b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..3ac26efee8293764320d91a3eefdc22e0655d238 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 54 + diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/run.cpp.o b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/run.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..98549e633e59d44e724c2dbe1d5f1af96dc30484 Binary files /dev/null and b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/run.cpp.o differ diff --git a/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/run.cpp.o.d b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/run.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a9802e791d26883018edaad044ce609081dc8db1 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/llama-run.dir/run.cpp.o.d @@ -0,0 +1,211 @@ +examples/run/CMakeFiles/llama-run.dir/run.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run/run.cpp \ + /usr/include/stdc-predef.h /usr/include/unistd.h /usr/include/features.h \ + /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h /usr/include/c++/11/climits \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstring \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/iostream /usr/include/c++/11/ostream \ + /usr/include/c++/11/ios /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ios_base.h /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc \ + /usr/include/c++/11/bits/ostream.tcc /usr/include/c++/11/istream \ + /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama-cpp.h \ + /usr/include/c++/11/memory /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/bits/refwrap.h /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/include/c++/11/pstl/execution_defs.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h diff --git a/llama.cpp/build/examples/run/CMakeFiles/progress.marks b/llama.cpp/build/examples/run/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..60d3b2f4a4cd5f1637eba020358bfe5ecb5edcf2 --- /dev/null +++ b/llama.cpp/build/examples/run/CMakeFiles/progress.marks @@ -0,0 +1 @@ +15 diff --git a/llama.cpp/build/examples/run/CTestTestfile.cmake b/llama.cpp/build/examples/run/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..db09ce2715b3c37f1ff18dc5cc766410a29fad7c --- /dev/null +++ b/llama.cpp/build/examples/run/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/run/Makefile b/llama.cpp/build/examples/run/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..5e6d88cc4374ede84fef06bc250f5836b71cbf37 --- /dev/null +++ b/llama.cpp/build/examples/run/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/run//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/run/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/run/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/run/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/run/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/run/CMakeFiles/llama-run.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/run/CMakeFiles/llama-run.dir/rule +.PHONY : examples/run/CMakeFiles/llama-run.dir/rule + +# Convenience name for target. +llama-run: examples/run/CMakeFiles/llama-run.dir/rule +.PHONY : llama-run + +# fast build rule for target. +llama-run/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/build +.PHONY : llama-run/fast + +run.o: run.cpp.o +.PHONY : run.o + +# target to build an object file +run.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/run.cpp.o +.PHONY : run.cpp.o + +run.i: run.cpp.i +.PHONY : run.i + +# target to preprocess a source file +run.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/run.cpp.i +.PHONY : run.cpp.i + +run.s: run.cpp.s +.PHONY : run.s + +# target to generate assembly for a file +run.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/run/CMakeFiles/llama-run.dir/build.make examples/run/CMakeFiles/llama-run.dir/run.cpp.s +.PHONY : run.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-run" + @echo "... run.o" + @echo "... run.i" + @echo "... run.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/run/cmake_install.cmake b/llama.cpp/build/examples/run/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..24048d1404a603182af7506c66e824915d9486d3 --- /dev/null +++ b/llama.cpp/build/examples/run/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/run + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-run") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-run") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/save-load-state/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/DependInfo.cmake b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..632baa50085d7f3c47045801c43d4c5fce545a10 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp" "examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o" "gcc" "examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d01eef16e3d63864875c70e1fad0a7791f967e8f --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/save-load-state/CMakeFiles/llama-save-load-state.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/save-load-state/CMakeFiles/llama-save-load-state.dir/flags.make + +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/flags.make +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o: ../examples/save-load-state/save-load-state.cpp +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o -MF CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o.d -o CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp" + +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp" > CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.i + +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp" -o CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.s + +# Object files for target llama-save-load-state +llama__save__load__state_OBJECTS = \ +"CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o" + +# External object files for target llama-save-load-state +llama__save__load__state_EXTERNAL_OBJECTS = + +bin/llama-save-load-state: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o +bin/llama-save-load-state: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make +bin/llama-save-load-state: common/libcommon.a +bin/llama-save-load-state: src/libllama.so +bin/llama-save-load-state: ggml/src/libggml.so +bin/llama-save-load-state: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-save-load-state: ggml/src/libggml-base.so +bin/llama-save-load-state: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-save-load-state" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-save-load-state.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build: bin/llama-save-load-state +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build + +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state" && $(CMAKE_COMMAND) -P CMakeFiles/llama-save-load-state.dir/cmake_clean.cmake +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/clean + +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend + diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/cmake_clean.cmake b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..529ecb303ab318be951a58b5f57aea96431ad6d8 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-save-load-state" + "../../bin/llama-save-load-state.pdb" + "CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o" + "CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-save-load-state.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.make b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e2337559df13d56293b490613e5803f65283d802 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-save-load-state. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.ts b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..04c940de10bd2e9154152f37aa667e8b2453acd0 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-save-load-state. diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend.make b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..356bd17b8a706889269eaa65912f5752c80b90b0 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-save-load-state. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/flags.make b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/link.txt b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d0b5e273dd51771fb770cc0276278c7a0b911f9c --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o -o ../../bin/llama-save-load-state -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/progress.make b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..3fab501d4c02afbc4fa5e200c81d554e9d9c485c --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 55 + diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..651e3aaeba64ef767230681d3595fd15c20bb0eb Binary files /dev/null and b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o differ diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o.d b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..aedf6d07f3cb517c4ef6158ab463eb01f5778e7a --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o.d @@ -0,0 +1,175 @@ +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state/save-load-state.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h diff --git a/llama.cpp/build/examples/save-load-state/CMakeFiles/progress.marks b/llama.cpp/build/examples/save-load-state/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/save-load-state/CTestTestfile.cmake b/llama.cpp/build/examples/save-load-state/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7737a2a76ffde6103ead1f34ff31ef8188aeffe3 --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/save-load-state/Makefile b/llama.cpp/build/examples/save-load-state/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..b01b9f020ac36cd75acab8354add5cb95907633a --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/save-load-state//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/save-load-state/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/save-load-state/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/save-load-state/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/save-load-state/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule +.PHONY : examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule + +# Convenience name for target. +llama-save-load-state: examples/save-load-state/CMakeFiles/llama-save-load-state.dir/rule +.PHONY : llama-save-load-state + +# fast build rule for target. +llama-save-load-state/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build +.PHONY : llama-save-load-state/fast + +save-load-state.o: save-load-state.cpp.o +.PHONY : save-load-state.o + +# target to build an object file +save-load-state.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.o +.PHONY : save-load-state.cpp.o + +save-load-state.i: save-load-state.cpp.i +.PHONY : save-load-state.i + +# target to preprocess a source file +save-load-state.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.i +.PHONY : save-load-state.cpp.i + +save-load-state.s: save-load-state.cpp.s +.PHONY : save-load-state.s + +# target to generate assembly for a file +save-load-state.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/save-load-state/CMakeFiles/llama-save-load-state.dir/build.make examples/save-load-state/CMakeFiles/llama-save-load-state.dir/save-load-state.cpp.s +.PHONY : save-load-state.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-save-load-state" + @echo "... save-load-state.o" + @echo "... save-load-state.i" + @echo "... save-load-state.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/save-load-state/cmake_install.cmake b/llama.cpp/build/examples/save-load-state/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..adacf4b4d74d06e298eb3644cfe6f78b0a8829fd --- /dev/null +++ b/llama.cpp/build/examples/save-load-state/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/save-load-state + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-save-load-state") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-save-load-state") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/server/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/server/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/DependInfo.cmake b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..75db523eada790d29d351a715c717ee1d0920f28 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp" "examples/server/CMakeFiles/llama-server.dir/server.cpp.o" "gcc" "examples/server/CMakeFiles/llama-server.dir/server.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/build.make b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..71def49c393d690719fb45f380bb9f8cbad44ff5 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/build.make @@ -0,0 +1,149 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/server/CMakeFiles/llama-server.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/server/CMakeFiles/llama-server.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/server/CMakeFiles/llama-server.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/server/CMakeFiles/llama-server.dir/flags.make + +examples/server/index.html.hpp: ../examples/server/public/index.html + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Generating index.html.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/index.html -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/index.html.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/completion.js.hpp: ../examples/server/public/completion.js + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Generating completion.js.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/completion.js -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/completion.js.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/loading.html.hpp: ../examples/server/public/loading.html + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Generating loading.html.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/loading.html -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/loading.html.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/deps_daisyui.min.css.hpp: ../examples/server/public/deps_daisyui.min.css + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_4) "Generating deps_daisyui.min.css.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/deps_daisyui.min.css -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_daisyui.min.css.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/deps_markdown-it.js.hpp: ../examples/server/public/deps_markdown-it.js + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_5) "Generating deps_markdown-it.js.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/deps_markdown-it.js -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_markdown-it.js.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/deps_tailwindcss.js.hpp: ../examples/server/public/deps_tailwindcss.js + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_6) "Generating deps_tailwindcss.js.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/deps_tailwindcss.js -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_tailwindcss.js.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/deps_vue.esm-browser.js.hpp: ../examples/server/public/deps_vue.esm-browser.js + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_7) "Generating deps_vue.esm-browser.js.hpp" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/cmake -DINPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/public/deps_vue.esm-browser.js -DOUTPUT=/home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_vue.esm-browser.js.hpp -P /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/scripts/xxd.cmake + +examples/server/CMakeFiles/llama-server.dir/server.cpp.o: examples/server/CMakeFiles/llama-server.dir/flags.make +examples/server/CMakeFiles/llama-server.dir/server.cpp.o: ../examples/server/server.cpp +examples/server/CMakeFiles/llama-server.dir/server.cpp.o: examples/server/CMakeFiles/llama-server.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object examples/server/CMakeFiles/llama-server.dir/server.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/server/CMakeFiles/llama-server.dir/server.cpp.o -MF CMakeFiles/llama-server.dir/server.cpp.o.d -o CMakeFiles/llama-server.dir/server.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp" + +examples/server/CMakeFiles/llama-server.dir/server.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-server.dir/server.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp" > CMakeFiles/llama-server.dir/server.cpp.i + +examples/server/CMakeFiles/llama-server.dir/server.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-server.dir/server.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp" -o CMakeFiles/llama-server.dir/server.cpp.s + +# Object files for target llama-server +llama__server_OBJECTS = \ +"CMakeFiles/llama-server.dir/server.cpp.o" + +# External object files for target llama-server +llama__server_EXTERNAL_OBJECTS = + +bin/llama-server: examples/server/CMakeFiles/llama-server.dir/server.cpp.o +bin/llama-server: examples/server/CMakeFiles/llama-server.dir/build.make +bin/llama-server: common/libcommon.a +bin/llama-server: src/libllama.so +bin/llama-server: ggml/src/libggml.so +bin/llama-server: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-server: ggml/src/libggml-base.so +bin/llama-server: examples/server/CMakeFiles/llama-server.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX executable ../../bin/llama-server" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-server.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/server/CMakeFiles/llama-server.dir/build: bin/llama-server +.PHONY : examples/server/CMakeFiles/llama-server.dir/build + +examples/server/CMakeFiles/llama-server.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" && $(CMAKE_COMMAND) -P CMakeFiles/llama-server.dir/cmake_clean.cmake +.PHONY : examples/server/CMakeFiles/llama-server.dir/clean + +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/completion.js.hpp +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/deps_daisyui.min.css.hpp +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/deps_markdown-it.js.hpp +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/deps_tailwindcss.js.hpp +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/deps_vue.esm-browser.js.hpp +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/index.html.hpp +examples/server/CMakeFiles/llama-server.dir/depend: examples/server/loading.html.hpp + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/server/CMakeFiles/llama-server.dir/depend + diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/cmake_clean.cmake b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3a8af90e2c7926f29021e0d42a35417c15640816 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/cmake_clean.cmake @@ -0,0 +1,18 @@ +file(REMOVE_RECURSE + "../../bin/llama-server" + "../../bin/llama-server.pdb" + "CMakeFiles/llama-server.dir/server.cpp.o" + "CMakeFiles/llama-server.dir/server.cpp.o.d" + "completion.js.hpp" + "deps_daisyui.min.css.hpp" + "deps_markdown-it.js.hpp" + "deps_tailwindcss.js.hpp" + "deps_vue.esm-browser.js.hpp" + "index.html.hpp" + "loading.html.hpp" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-server.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/compiler_depend.make b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d02193b303a005e69caf3254772973d7a635f059 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-server. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/compiler_depend.ts b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..27b57f8a896a275d2e9fcfa99d1a3f3b694d34f4 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-server. diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/depend.make b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..24a49eb70f3629475b23577650d6ec049d74b01a --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-server. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/flags.make b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..33199f8613ccf1f20ff6c72fb5152fb47a060ac7 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/link.txt b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..f780510dbba30aae567027462a84316ae8cdf8ee --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-server.dir/server.cpp.o -o ../../bin/llama-server -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/progress.make b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..9e5756fefc5e1a578d2a1cfa266f0e9b6cfa6a24 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/progress.make @@ -0,0 +1,10 @@ +CMAKE_PROGRESS_1 = 56 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 57 +CMAKE_PROGRESS_4 = +CMAKE_PROGRESS_5 = 58 +CMAKE_PROGRESS_6 = +CMAKE_PROGRESS_7 = 59 +CMAKE_PROGRESS_8 = +CMAKE_PROGRESS_9 = 60 + diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..117846fc143423e426ba1f11e7297a8deec44733 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b1a577fc205ee63eac93f3a39b8a9e87ccfa1fbf3f7ad7a6d6c0c553b55d7b +size 3468424 diff --git a/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o.d b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..2a43e39fba92e2a9369f3551def903317813bcae --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/llama-server.dir/server.cpp.o.d @@ -0,0 +1,390 @@ +examples/server/CMakeFiles/llama-server.dir/server.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/server.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/utils.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server/httplib.h \ + /usr/include/arpa/inet.h /usr/include/netinet/in.h \ + /usr/include/x86_64-linux-gnu/sys/socket.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/x86_64-linux-gnu/bits/socket.h \ + /usr/include/x86_64-linux-gnu/bits/socket_type.h \ + /usr/include/x86_64-linux-gnu/bits/sockaddr.h \ + /usr/include/x86_64-linux-gnu/asm/socket.h \ + /usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h \ + /usr/include/x86_64-linux-gnu/asm/sockios.h \ + /usr/include/asm-generic/sockios.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_osockaddr.h \ + /usr/include/x86_64-linux-gnu/bits/socket2.h \ + /usr/include/x86_64-linux-gnu/bits/in.h /usr/include/ifaddrs.h \ + /usr/include/net/if.h /usr/include/netdb.h /usr/include/rpc/netdb.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/netdb.h /usr/include/resolv.h \ + /usr/include/x86_64-linux-gnu/sys/param.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h \ + /usr/include/x86_64-linux-gnu/bits/param.h /usr/include/linux/param.h \ + /usr/include/x86_64-linux-gnu/asm/param.h \ + /usr/include/asm-generic/param.h /usr/include/arpa/nameser.h \ + /usr/include/arpa/nameser_compat.h \ + /usr/include/x86_64-linux-gnu/bits/types/res_state.h \ + /usr/include/netinet/tcp.h /usr/include/c++/11/csignal \ + /usr/include/x86_64-linux-gnu/sys/mman.h \ + /usr/include/x86_64-linux-gnu/bits/mman.h \ + /usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h \ + /usr/include/x86_64-linux-gnu/bits/mman-linux.h \ + /usr/include/x86_64-linux-gnu/bits/mman-shared.h \ + /usr/include/x86_64-linux-gnu/sys/un.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/atomic \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/climits /usr/include/c++/11/condition_variable \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/ext/concurrence.h /usr/include/c++/11/cstring \ + /usr/include/fcntl.h /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/linux/falloc.h /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iomanip \ + /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/iostream \ + /usr/include/c++/11/list /usr/include/c++/11/bits/stl_list.h \ + /usr/include/c++/11/bits/list.tcc /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/mutex \ + /usr/include/c++/11/random /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/iterator \ + /usr/include/c++/11/bits/stream_iterator.h /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/c++/11/thread /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h \ + /usr/include/c++/11/unordered_set \ + /usr/include/c++/11/bits/unordered_set.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json.hpp \ + /usr/include/c++/11/cstddef /usr/include/c++/11/forward_list \ + /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/valarray \ + /usr/include/c++/11/bits/valarray_array.h \ + /usr/include/c++/11/bits/valarray_array.tcc \ + /usr/include/c++/11/bits/valarray_before.h \ + /usr/include/c++/11/bits/slice_array.h \ + /usr/include/c++/11/bits/valarray_after.h \ + /usr/include/c++/11/bits/gslice.h \ + /usr/include/c++/11/bits/gslice_array.h \ + /usr/include/c++/11/bits/mask_array.h \ + /usr/include/c++/11/bits/indirect_array.h /usr/include/c++/11/version \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/any \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json-schema-to-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./speculative.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/index.html.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/completion.js.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/loading.html.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_daisyui.min.css.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_markdown-it.js.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_tailwindcss.js.hpp \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server/deps_vue.esm-browser.js.hpp \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h diff --git a/llama.cpp/build/examples/server/CMakeFiles/progress.marks b/llama.cpp/build/examples/server/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..7273c0fa8c522b7eed7762a353d46f7768e9b6f2 --- /dev/null +++ b/llama.cpp/build/examples/server/CMakeFiles/progress.marks @@ -0,0 +1 @@ +25 diff --git a/llama.cpp/build/examples/server/CTestTestfile.cmake b/llama.cpp/build/examples/server/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ac08d5cf3898034f3b3e8eebb228c114a23129a5 --- /dev/null +++ b/llama.cpp/build/examples/server/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/server/Makefile b/llama.cpp/build/examples/server/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d4f0d1145b0d583d81d88976da61297db56e99b9 --- /dev/null +++ b/llama.cpp/build/examples/server/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/server//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/server/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/server/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/server/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/server/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/server/CMakeFiles/llama-server.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/server/CMakeFiles/llama-server.dir/rule +.PHONY : examples/server/CMakeFiles/llama-server.dir/rule + +# Convenience name for target. +llama-server: examples/server/CMakeFiles/llama-server.dir/rule +.PHONY : llama-server + +# fast build rule for target. +llama-server/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/build +.PHONY : llama-server/fast + +server.o: server.cpp.o +.PHONY : server.o + +# target to build an object file +server.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/server.cpp.o +.PHONY : server.cpp.o + +server.i: server.cpp.i +.PHONY : server.i + +# target to preprocess a source file +server.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/server.cpp.i +.PHONY : server.cpp.i + +server.s: server.cpp.s +.PHONY : server.s + +# target to generate assembly for a file +server.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/server/CMakeFiles/llama-server.dir/build.make examples/server/CMakeFiles/llama-server.dir/server.cpp.s +.PHONY : server.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-server" + @echo "... server.o" + @echo "... server.i" + @echo "... server.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/server/cmake_install.cmake b/llama.cpp/build/examples/server/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5ca5d1ef5465d4688dd75ad3bb5522e98a9e0669 --- /dev/null +++ b/llama.cpp/build/examples/server/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/server + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-server") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-server") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/server/completion.js.hpp b/llama.cpp/build/examples/server/completion.js.hpp new file mode 100644 index 0000000000000000000000000000000000000000..8e8df1bd27168de59055267a6df466791dd86e90 --- /dev/null +++ b/llama.cpp/build/examples/server/completion.js.hpp @@ -0,0 +1,2 @@ +unsigned char completion_js[] = {0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x73,0x74,0x72,0x65,0x61,0x6d,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x3a,0x20,0x30,0x2e,0x32,0x2c,0x0a,0x7d,0x3b,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x43,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x45,0x72,0x72,0x6f,0x72,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x72,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x20,0x61,0x73,0x20,0x61,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x2e,0x20,0x52,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x6d,0x6f,0x73,0x74,0x20,0x75,0x73,0x65,0x20,0x63,0x61,0x73,0x65,0x73,0x2e,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x3a,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x20,0x7b,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x20,0x7d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x27,0x2f,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x2e,0x6a,0x73,0x27,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x3d,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x28,0x22,0x54,0x65,0x6c,0x6c,0x20,0x6d,0x65,0x20,0x61,0x20,0x6a,0x6f,0x6b,0x65,0x22,0x2c,0x20,0x7b,0x6e,0x5f,0x70,0x72,0x65,0x64,0x69,0x63,0x74,0x3a,0x20,0x38,0x30,0x30,0x7d,0x29,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x29,0x20,0x7b,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x77,0x72,0x69,0x74,0x65,0x28,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x7d,0x0a,0x2f,0x2f,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x3f,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x2f,0x2b,0x24,0x2f,0x2c,0x20,0x27,0x27,0x29,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x62,0x6f,0x72,0x74,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x50,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x20,0x2e,0x2e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x2c,0x20,0x2e,0x2e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x28,0x60,0x24,0x7b,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x7d,0x24,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x6e,0x64,0x70,0x6f,0x69,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x27,0x2f,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x27,0x7d,0x60,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x3a,0x20,0x27,0x50,0x4f,0x53,0x54,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x64,0x79,0x3a,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x50,0x61,0x72,0x61,0x6d,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6f,0x6e,0x27,0x3a,0x20,0x27,0x6b,0x65,0x65,0x70,0x2d,0x61,0x6c,0x69,0x76,0x65,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x54,0x79,0x70,0x65,0x27,0x3a,0x20,0x27,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6a,0x73,0x6f,0x6e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x41,0x63,0x63,0x65,0x70,0x74,0x27,0x3a,0x20,0x27,0x74,0x65,0x78,0x74,0x2f,0x65,0x76,0x65,0x6e,0x74,0x2d,0x73,0x74,0x72,0x65,0x61,0x6d,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x61,0x70,0x69,0x5f,0x6b,0x65,0x79,0x20,0x3f,0x20,0x7b,0x27,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x27,0x3a,0x20,0x60,0x42,0x65,0x61,0x72,0x65,0x72,0x20,0x24,0x7b,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x61,0x70,0x69,0x5f,0x6b,0x65,0x79,0x7d,0x60,0x7d,0x20,0x3a,0x20,0x7b,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x67,0x6e,0x61,0x6c,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x2e,0x73,0x69,0x67,0x6e,0x61,0x6c,0x2c,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x21,0x3d,0x3d,0x20,0x32,0x30,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x6f,0x64,0x79,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x6f,0x64,0x79,0x20,0x26,0x26,0x20,0x62,0x6f,0x64,0x79,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x26,0x26,0x20,0x62,0x6f,0x64,0x79,0x2e,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x43,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x62,0x6f,0x64,0x79,0x2e,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x53,0x65,0x72,0x76,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x43,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2c,0x20,0x27,0x53,0x65,0x72,0x76,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x61,0x64,0x65,0x72,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x67,0x65,0x74,0x52,0x65,0x61,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x54,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x2f,0x2f,0x20,0x42,0x75,0x66,0x66,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x70,0x61,0x72,0x74,0x69,0x61,0x6c,0x6c,0x79,0x20,0x72,0x65,0x61,0x64,0x20,0x6c,0x69,0x6e,0x65,0x73,0x0a,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x72,0x65,0x61,0x64,0x65,0x72,0x2e,0x72,0x65,0x61,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x6f,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x61,0x6e,0x79,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x2b,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x69,0x73,0x20,0x61,0x20,0x6c,0x69,0x6e,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x4c,0x69,0x6e,0x65,0x42,0x72,0x65,0x61,0x6b,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x5c,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x70,0x6c,0x69,0x74,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x69,0x6e,0x74,0x6f,0x20,0x6c,0x69,0x6e,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x27,0x5c,0x6e,0x27,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x65,0x6e,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x6c,0x69,0x6e,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x73,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x6f,0x72,0x65,0x20,0x69,0x74,0x20,0x69,0x6e,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x78,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x4c,0x69,0x6e,0x65,0x42,0x72,0x65,0x61,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x6c,0x65,0x66,0x74,0x6f,0x76,0x65,0x72,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x6c,0x69,0x6e,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x61,0x6c,0x6c,0x20,0x73,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x61,0x6e,0x64,0x20,0x61,0x64,0x64,0x20,0x74,0x68,0x65,0x6d,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x67,0x65,0x78,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x5c,0x53,0x2b,0x29,0x3a,0x5c,0x73,0x28,0x2e,0x2a,0x29,0x24,0x2f,0x67,0x6d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x6f,0x66,0x20,0x6c,0x69,0x6e,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x2e,0x65,0x78,0x65,0x63,0x28,0x6c,0x69,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x5d,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x5b,0x44,0x4f,0x4e,0x45,0x5d,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x77,0x65,0x20,0x6b,0x6e,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x2e,0x63,0x70,0x70,0x2c,0x20,0x6c,0x65,0x74,0x27,0x73,0x20,0x6a,0x75,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x6a,0x73,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x79,0x69,0x65,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x79,0x69,0x65,0x6c,0x64,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x67,0x6f,0x74,0x20,0x61,0x20,0x73,0x74,0x6f,0x70,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x2c,0x20,0x77,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x72,0x65,0x61,0x6b,0x20,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x2e,0x73,0x74,0x6f,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x61,0x74,0x61,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x27,0x73,0x6c,0x6f,0x74,0x20,0x75,0x6e,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x72,0x6f,0x77,0x20,0x61,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x63,0x61,0x75,0x67,0x68,0x74,0x20,0x62,0x79,0x20,0x75,0x70,0x73,0x74,0x72,0x65,0x61,0x6d,0x20,0x63,0x61,0x6c,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x73,0x6c,0x6f,0x74,0x20,0x75,0x6e,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x6c,0x6c,0x61,0x6d,0x61,0x2e,0x63,0x70,0x70,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x5b,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x2e,0x63,0x6f,0x64,0x65,0x7d,0x20,0x2d,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x2e,0x74,0x79,0x70,0x65,0x7d,0x5d,0x3a,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x6c,0x6c,0x61,0x6d,0x61,0x2e,0x63,0x70,0x70,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x24,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x7d,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x27,0x41,0x62,0x6f,0x72,0x74,0x45,0x72,0x72,0x6f,0x72,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6c,0x6c,0x61,0x6d,0x61,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x22,0x2c,0x20,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x2e,0x61,0x62,0x6f,0x72,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x61,0x6c,0x6c,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x20,0x74,0x6f,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x3a,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x20,0x7b,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x45,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x7d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x27,0x2f,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x2e,0x6a,0x73,0x27,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x6e,0x20,0x3d,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x45,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x29,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x22,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x2c,0x20,0x28,0x63,0x68,0x75,0x6e,0x6b,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x77,0x72,0x69,0x74,0x65,0x28,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x65,0x74,0x61,0x69,0x6c,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x2f,0x2f,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x45,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x45,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x28,0x61,0x73,0x79,0x6e,0x63,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x76,0x65,0x6e,0x74,0x28,0x22,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x2c,0x20,0x7b,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x3a,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x76,0x65,0x6e,0x74,0x28,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x2c,0x20,0x7b,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x3a,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x74,0x69,0x6d,0x69,0x6e,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x76,0x65,0x6e,0x74,0x28,0x22,0x74,0x69,0x6d,0x69,0x6e,0x67,0x73,0x22,0x2c,0x20,0x7b,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x3a,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x74,0x69,0x6d,0x69,0x6e,0x67,0x73,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x76,0x65,0x6e,0x74,0x28,0x22,0x64,0x6f,0x6e,0x65,0x22,0x2c,0x20,0x7b,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x3a,0x20,0x7b,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7d,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x43,0x61,0x6c,0x6c,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x20,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x73,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x73,0x74,0x72,0x65,0x61,0x6d,0x69,0x6e,0x67,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x3a,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x77,0x72,0x69,0x74,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x6f,0x72,0x0a,0x2f,0x2f,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x29,0x0a,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x77,0x72,0x69,0x74,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x0a,0x2f,0x2f,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x61,0x73,0x79,0x6e,0x63,0x20,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x2f,0x2a,0x2a,0x0a,0x20,0x2a,0x20,0x28,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x29,0x0a,0x20,0x2a,0x2f,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x43,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x20,0x3d,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x7b,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x7d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x63,0x68,0x75,0x6e,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x2f,0x2f,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x69,0x6e,0x66,0x6f,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x66,0x75,0x6c,0x20,0x66,0x6f,0x72,0x20,0x67,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x61,0x6e,0x64,0x20,0x73,0x6f,0x20,0x6f,0x6e,0x2e,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x4d,0x6f,0x64,0x65,0x6c,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x3f,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x2f,0x2b,0x24,0x2f,0x2c,0x20,0x27,0x27,0x29,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x65,0x74,0x63,0x68,0x28,0x60,0x24,0x7b,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x7d,0x2f,0x70,0x72,0x6f,0x70,0x73,0x60,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x72,0x20,0x3d,0x3e,0x20,0x72,0x2e,0x6a,0x73,0x6f,0x6e,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3b,0x0a,0x7d,0x0a,}; +unsigned int completion_js_len = 6506; diff --git a/llama.cpp/build/examples/server/deps_daisyui.min.css.hpp b/llama.cpp/build/examples/server/deps_daisyui.min.css.hpp new file mode 100644 index 0000000000000000000000000000000000000000..1b412c778921be9c9a378a09f9cfe950fa639112 --- /dev/null +++ b/llama.cpp/build/examples/server/deps_daisyui.min.css.hpp @@ -0,0 +1,2 @@ +unsigned char deps_daisyui_min_css[] = {0x2e,0x61,0x6c,0x65,0x72,0x74,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x72,0x6f,0x77,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x67,0x61,0x70,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x36,0x34,0x30,0x70,0x78,0x29,0x7b,0x2e,0x61,0x6c,0x65,0x72,0x74,0x7b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x61,0x75,0x74,0x6f,0x2c,0x31,0x66,0x72,0x29,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x61,0x72,0x74,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x73,0x74,0x61,0x72,0x74,0x7d,0x7d,0x2e,0x61,0x72,0x74,0x62,0x6f,0x61,0x72,0x64,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x7d,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x3e,0x64,0x69,0x76,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x61,0x73,0x70,0x65,0x63,0x74,0x2d,0x72,0x61,0x74,0x69,0x6f,0x3a,0x31,0x2f,0x31,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x7d,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x20,0x69,0x6d,0x67,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x3a,0x63,0x6f,0x76,0x65,0x72,0x7d,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x2e,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3e,0x64,0x69,0x76,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x2e,0x35,0x36,0x33,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x36,0x33,0x72,0x65,0x6d,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x72,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x6f,0x77,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x73,0x70,0x61,0x63,0x65,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x65,0x6e,0x76,0x28,0x73,0x61,0x66,0x65,0x2d,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x29,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x2a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x62,0x61,0x73,0x69,0x73,0x3a,0x31,0x30,0x30,0x25,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x67,0x61,0x70,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x77,0x72,0x61,0x70,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x65,0x6d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x62,0x74,0x6e,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x29,0x29,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x29,0x29,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x61,0x72,0x69,0x61,0x2d,0x6c,0x61,0x62,0x65,0x6c,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7d,0x2e,0x63,0x61,0x72,0x64,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2e,0x63,0x61,0x72,0x64,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x64,0x79,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x3a,0x31,0x20,0x31,0x20,0x61,0x75,0x74,0x6f,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x64,0x79,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x70,0x29,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x3a,0x31,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x77,0x72,0x61,0x70,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x61,0x72,0x64,0x20,0x66,0x69,0x67,0x75,0x72,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3e,0x2a,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3e,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x69,0x6d,0x67,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x3a,0x63,0x6f,0x76,0x65,0x72,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3e,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x64,0x79,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x3b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x3a,0x78,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x3b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x3b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x3a,0x79,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x6f,0x78,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x73,0x74,0x61,0x72,0x74,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x73,0x74,0x61,0x72,0x74,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x65,0x6e,0x64,0x7d,0x2e,0x63,0x68,0x61,0x74,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x32,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x3b,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x67,0x61,0x70,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x69,0x6d,0x61,0x67,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x3a,0x73,0x70,0x61,0x6e,0x20,0x32,0x2f,0x73,0x70,0x61,0x6e,0x20,0x32,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x66,0x6f,0x6f,0x74,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x33,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x39,0x30,0x25,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x7b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x61,0x72,0x74,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x31,0x66,0x72,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x66,0x6f,0x6f,0x74,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x69,0x6d,0x61,0x67,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x33,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x33,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x20,0x30,0x20,0x33,0x20,0x4c,0x20,0x33,0x20,0x33,0x20,0x4c,0x20,0x33,0x20,0x30,0x20,0x43,0x20,0x33,0x20,0x31,0x20,0x31,0x20,0x33,0x20,0x30,0x20,0x33,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x33,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x33,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x20,0x30,0x20,0x33,0x20,0x4c,0x20,0x31,0x20,0x33,0x20,0x4c,0x20,0x33,0x20,0x33,0x20,0x43,0x20,0x32,0x20,0x33,0x20,0x30,0x20,0x31,0x20,0x30,0x20,0x30,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x7b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x65,0x6e,0x64,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x31,0x66,0x72,0x20,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x66,0x6f,0x6f,0x74,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x69,0x6d,0x61,0x67,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x33,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x33,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x20,0x30,0x20,0x33,0x20,0x4c,0x20,0x31,0x20,0x33,0x20,0x4c,0x20,0x33,0x20,0x33,0x20,0x43,0x20,0x32,0x20,0x33,0x20,0x30,0x20,0x31,0x20,0x30,0x20,0x30,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x33,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x33,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x20,0x30,0x20,0x33,0x20,0x4c,0x20,0x33,0x20,0x33,0x20,0x4c,0x20,0x33,0x20,0x30,0x20,0x43,0x20,0x33,0x20,0x31,0x20,0x31,0x20,0x33,0x20,0x30,0x20,0x33,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x74,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x74,0x72,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x29,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x30,0x66,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x20,0x2e,0x32,0x73,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x2e,0x32,0x73,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x7b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x31,0x66,0x72,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x31,0x66,0x72,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x20,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x7b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x65,0x6d,0x7d,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x7d,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x3e,0x2a,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x7d,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x3e,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x30,0x30,0x5c,0x41,0x20,0x30,0x31,0x5c,0x41,0x20,0x30,0x32,0x5c,0x41,0x20,0x30,0x33,0x5c,0x41,0x20,0x30,0x34,0x5c,0x41,0x20,0x30,0x35,0x5c,0x41,0x20,0x30,0x36,0x5c,0x41,0x20,0x30,0x37,0x5c,0x41,0x20,0x30,0x38,0x5c,0x41,0x20,0x30,0x39,0x5c,0x41,0x20,0x31,0x30,0x5c,0x41,0x20,0x31,0x31,0x5c,0x41,0x20,0x31,0x32,0x5c,0x41,0x20,0x31,0x33,0x5c,0x41,0x20,0x31,0x34,0x5c,0x41,0x20,0x31,0x35,0x5c,0x41,0x20,0x31,0x36,0x5c,0x41,0x20,0x31,0x37,0x5c,0x41,0x20,0x31,0x38,0x5c,0x41,0x20,0x31,0x39,0x5c,0x41,0x20,0x32,0x30,0x5c,0x41,0x20,0x32,0x31,0x5c,0x41,0x20,0x32,0x32,0x5c,0x41,0x20,0x32,0x33,0x5c,0x41,0x20,0x32,0x34,0x5c,0x41,0x20,0x32,0x35,0x5c,0x41,0x20,0x32,0x36,0x5c,0x41,0x20,0x32,0x37,0x5c,0x41,0x20,0x32,0x38,0x5c,0x41,0x20,0x32,0x39,0x5c,0x41,0x20,0x33,0x30,0x5c,0x41,0x20,0x33,0x31,0x5c,0x41,0x20,0x33,0x32,0x5c,0x41,0x20,0x33,0x33,0x5c,0x41,0x20,0x33,0x34,0x5c,0x41,0x20,0x33,0x35,0x5c,0x41,0x20,0x33,0x36,0x5c,0x41,0x20,0x33,0x37,0x5c,0x41,0x20,0x33,0x38,0x5c,0x41,0x20,0x33,0x39,0x5c,0x41,0x20,0x34,0x30,0x5c,0x41,0x20,0x34,0x31,0x5c,0x41,0x20,0x34,0x32,0x5c,0x41,0x20,0x34,0x33,0x5c,0x41,0x20,0x34,0x34,0x5c,0x41,0x20,0x34,0x35,0x5c,0x41,0x20,0x34,0x36,0x5c,0x41,0x20,0x34,0x37,0x5c,0x41,0x20,0x34,0x38,0x5c,0x41,0x20,0x34,0x39,0x5c,0x41,0x20,0x35,0x30,0x5c,0x41,0x20,0x35,0x31,0x5c,0x41,0x20,0x35,0x32,0x5c,0x41,0x20,0x35,0x33,0x5c,0x41,0x20,0x35,0x34,0x5c,0x41,0x20,0x35,0x35,0x5c,0x41,0x20,0x35,0x36,0x5c,0x41,0x20,0x35,0x37,0x5c,0x41,0x20,0x35,0x38,0x5c,0x41,0x20,0x35,0x39,0x5c,0x41,0x20,0x36,0x30,0x5c,0x41,0x20,0x36,0x31,0x5c,0x41,0x20,0x36,0x32,0x5c,0x41,0x20,0x36,0x33,0x5c,0x41,0x20,0x36,0x34,0x5c,0x41,0x20,0x36,0x35,0x5c,0x41,0x20,0x36,0x36,0x5c,0x41,0x20,0x36,0x37,0x5c,0x41,0x20,0x36,0x38,0x5c,0x41,0x20,0x36,0x39,0x5c,0x41,0x20,0x37,0x30,0x5c,0x41,0x20,0x37,0x31,0x5c,0x41,0x20,0x37,0x32,0x5c,0x41,0x20,0x37,0x33,0x5c,0x41,0x20,0x37,0x34,0x5c,0x41,0x20,0x37,0x35,0x5c,0x41,0x20,0x37,0x36,0x5c,0x41,0x20,0x37,0x37,0x5c,0x41,0x20,0x37,0x38,0x5c,0x41,0x20,0x37,0x39,0x5c,0x41,0x20,0x38,0x30,0x5c,0x41,0x20,0x38,0x31,0x5c,0x41,0x20,0x38,0x32,0x5c,0x41,0x20,0x38,0x33,0x5c,0x41,0x20,0x38,0x34,0x5c,0x41,0x20,0x38,0x35,0x5c,0x41,0x20,0x38,0x36,0x5c,0x41,0x20,0x38,0x37,0x5c,0x41,0x20,0x38,0x38,0x5c,0x41,0x20,0x38,0x39,0x5c,0x41,0x20,0x39,0x30,0x5c,0x41,0x20,0x39,0x31,0x5c,0x41,0x20,0x39,0x32,0x5c,0x41,0x20,0x39,0x33,0x5c,0x41,0x20,0x39,0x34,0x5c,0x41,0x20,0x39,0x35,0x5c,0x41,0x20,0x39,0x36,0x5c,0x41,0x20,0x39,0x37,0x5c,0x41,0x20,0x39,0x38,0x5c,0x41,0x20,0x39,0x39,0x5c,0x41,0x22,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x70,0x72,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x2a,0x20,0x2d,0x31,0x65,0x6d,0x29,0x7d,0x2e,0x64,0x69,0x66,0x66,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2d,0x74,0x79,0x70,0x65,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x31,0x66,0x72,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x30,0x25,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x63,0x71,0x69,0x20,0x2d,0x20,0x31,0x72,0x65,0x6d,0x29,0x3b,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x31,0x30,0x30,0x25,0x20,0x31,0x30,0x30,0x25,0x3b,0x73,0x63,0x61,0x6c,0x65,0x3a,0x34,0x3b,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x20,0x2d,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x63,0x6c,0x69,0x70,0x2d,0x70,0x61,0x74,0x68,0x3a,0x69,0x6e,0x73,0x65,0x74,0x28,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2d,0x20,0x2e,0x37,0x35,0x72,0x65,0x6d,0x29,0x20,0x30,0x20,0x30,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2d,0x20,0x2e,0x37,0x35,0x72,0x65,0x6d,0x29,0x29,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x31,0x2c,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x32,0x2c,0x2e,0x64,0x69,0x66,0x66,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x31,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x70,0x78,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x30,0x25,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x3a,0x35,0x30,0x25,0x20,0x2d,0x35,0x30,0x25,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x32,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x31,0x3e,0x2a,0x2c,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x32,0x3e,0x2a,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x63,0x71,0x69,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x3a,0x63,0x6f,0x76,0x65,0x72,0x3b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x6f,0x77,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x61,0x72,0x74,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x76,0x68,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x64,0x76,0x68,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x74,0x69,0x63,0x6b,0x79,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x2a,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x77,0x69,0x6c,0x6c,0x2d,0x63,0x68,0x61,0x6e,0x67,0x65,0x3a,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x2d,0x31,0x30,0x30,0x25,0x29,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x31,0x30,0x30,0x25,0x29,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x30,0x29,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x65,0x6e,0x64,0x7b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x61,0x75,0x74,0x6f,0x20,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x65,0x6e,0x64,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x65,0x6e,0x64,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x65,0x6e,0x64,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x65,0x6e,0x64,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x31,0x30,0x30,0x25,0x29,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x65,0x6e,0x64,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x2d,0x31,0x30,0x30,0x25,0x29,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x65,0x6e,0x64,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x58,0x28,0x30,0x29,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x69,0x73,0x28,0x3a,0x6e,0x6f,0x74,0x28,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x29,0x29,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x30,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x31,0x30,0x30,0x25,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x74,0x6f,0x70,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x74,0x6f,0x70,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x30,0x30,0x25,0x3b,0x74,0x6f,0x70,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x65,0x6e,0x64,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x65,0x6e,0x64,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x6f,0x70,0x65,0x6e,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x69,0x73,0x28,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x29,0x20,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2d,0x6d,0x61,0x72,0x6b,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x31,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x77,0x72,0x61,0x70,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x65,0x6d,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x72,0x6f,0x77,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x61,0x72,0x74,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x3e,0x2a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x61,0x72,0x74,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x7b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x3e,0x2a,0x7b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x38,0x72,0x65,0x6d,0x29,0x7b,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x7b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x72,0x6f,0x77,0x20,0x64,0x65,0x6e,0x73,0x65,0x7d,0x7d,0x2e,0x66,0x6f,0x72,0x6d,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2e,0x6c,0x61,0x62,0x65,0x6c,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x7d,0x2e,0x68,0x65,0x72,0x6f,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x63,0x6f,0x76,0x65,0x72,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x68,0x65,0x72,0x6f,0x3e,0x2a,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x68,0x65,0x72,0x6f,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x68,0x65,0x72,0x6f,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x30,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x2e,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x2d,0x69,0x74,0x65,0x6d,0x29,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x31,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x6d,0x64,0x5b,0x74,0x79,0x70,0x65,0x3d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x6e,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x6e,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x2d,0x31,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2d,0x31,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x2d,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x78,0x73,0x5b,0x74,0x79,0x70,0x65,0x3d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x6e,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x2d,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2d,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x30,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x6d,0x5b,0x74,0x79,0x70,0x65,0x3d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x6e,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x30,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x6c,0x67,0x5b,0x74,0x79,0x70,0x65,0x3d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x6e,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x2d,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2d,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x2d,0x31,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2c,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2c,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2c,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x2c,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2c,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x2c,0x2e,0x6a,0x6f,0x69,0x6e,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x3a,0x68,0x61,0x73,0x28,0x2a,0x29,0x29,0x7b,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6a,0x6f,0x69,0x6e,0x2a,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x3a,0x68,0x61,0x73,0x28,0x2a,0x29,0x29,0x7b,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6a,0x6f,0x69,0x6e,0x3a,0x68,0x61,0x73,0x28,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x29,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x7d,0x2e,0x6b,0x62,0x64,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x68,0x6f,0x76,0x65,0x72,0x7b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x7d,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x61,0x6c,0x66,0x2d,0x31,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x30,0x30,0x25,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x6c,0x65,0x66,0x74,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x61,0x6c,0x66,0x2d,0x31,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2a,0x29,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x61,0x6c,0x66,0x2d,0x32,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x30,0x30,0x25,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x61,0x6c,0x66,0x2d,0x32,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2a,0x29,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x6c,0x65,0x66,0x74,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x77,0x72,0x61,0x70,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x75,0x6c,0x29,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x29,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x61,0x75,0x74,0x6f,0x2c,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x61,0x75,0x74,0x6f,0x20,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3e,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x73,0x68,0x6f,0x77,0x29,0x29,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x29,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x77,0x72,0x61,0x70,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x29,0x20,0x2e,0x62,0x61,0x64,0x67,0x65,0x7b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x65,0x6e,0x64,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x20,0x70,0x72,0x65,0x5b,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x5d,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x70,0x72,0x65,0x5b,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x5d,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x70,0x72,0x65,0x5b,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x5d,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x69,0x6e,0x73,0x65,0x74,0x3a,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x39,0x39,0x39,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x7b,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x29,0x7b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x7b,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x76,0x68,0x20,0x2d,0x20,0x35,0x65,0x6d,0x29,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x70,0x65,0x6e,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2b,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x3a,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x3a,0x69,0x73,0x28,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x70,0x65,0x6e,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x3a,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2b,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x29,0x29,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x62,0x61,0x72,0x2d,0x67,0x75,0x74,0x74,0x65,0x72,0x3a,0x73,0x74,0x61,0x62,0x6c,0x65,0x7d,0x2e,0x6e,0x61,0x76,0x62,0x61,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6e,0x61,0x76,0x62,0x61,0x72,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x73,0x63,0x72,0x69,0x70,0x74,0x2c,0x73,0x74,0x79,0x6c,0x65,0x29,0x29,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x6e,0x61,0x76,0x62,0x61,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x25,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x7d,0x2e,0x6e,0x61,0x76,0x62,0x61,0x72,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x7d,0x2e,0x6e,0x61,0x76,0x62,0x61,0x72,0x2d,0x65,0x6e,0x64,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x25,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x69,0x7a,0x65,0x29,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x69,0x7a,0x65,0x29,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x6d,0x69,0x64,0x64,0x6c,0x65,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x6f,0x78,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x69,0x6e,0x73,0x65,0x74,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x66,0x61,0x72,0x74,0x68,0x65,0x73,0x74,0x2d,0x73,0x69,0x64,0x65,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x39,0x38,0x25,0x2c,0x23,0x30,0x30,0x30,0x30,0x29,0x20,0x74,0x6f,0x70,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x20,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x2c,0x63,0x6f,0x6e,0x69,0x63,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x2a,0x20,0x31,0x25,0x29,0x2c,0x23,0x30,0x30,0x30,0x30,0x20,0x30,0x29,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6d,0x61,0x73,0x6b,0x3a,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x66,0x61,0x72,0x74,0x68,0x65,0x73,0x74,0x2d,0x73,0x69,0x64,0x65,0x2c,0x23,0x30,0x30,0x30,0x30,0x20,0x63,0x61,0x6c,0x63,0x28,0x39,0x39,0x25,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x29,0x2c,0x23,0x30,0x30,0x30,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x29,0x29,0x3b,0x6d,0x61,0x73,0x6b,0x3a,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x66,0x61,0x72,0x74,0x68,0x65,0x73,0x74,0x2d,0x73,0x69,0x64,0x65,0x2c,0x23,0x30,0x30,0x30,0x30,0x20,0x63,0x61,0x6c,0x63,0x28,0x39,0x39,0x25,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x29,0x2c,0x23,0x30,0x30,0x30,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x69,0x6e,0x73,0x65,0x74,0x3a,0x63,0x61,0x6c,0x63,0x28,0x35,0x30,0x25,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x29,0x2f,0x20,0x32,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x2a,0x20,0x33,0x2e,0x36,0x64,0x65,0x67,0x20,0x2d,0x20,0x39,0x30,0x64,0x65,0x67,0x29,0x29,0x20,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x69,0x7a,0x65,0x29,0x2f,0x20,0x32,0x20,0x2d,0x20,0x35,0x30,0x25,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x30,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x32,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x5b,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x5d,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3e,0x2a,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x31,0x30,0x25,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x28,0x2e,0x39,0x29,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3e,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x32,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x35,0x25,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x28,0x2e,0x39,0x35,0x29,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x32,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3e,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x31,0x29,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x30,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x28,0x31,0x29,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x33,0x7d,0x2e,0x73,0x74,0x61,0x74,0x73,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x74,0x61,0x74,0x73,0x29,0x7b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2e,0x73,0x74,0x61,0x74,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x2c,0x31,0x66,0x72,0x29,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x66,0x69,0x67,0x75,0x72,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x3a,0x73,0x70,0x61,0x6e,0x20,0x33,0x2f,0x73,0x70,0x61,0x6e,0x20,0x33,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x65,0x6e,0x64,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x64,0x65,0x73,0x63,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2d,0x72,0x65,0x73,0x65,0x74,0x3a,0x73,0x74,0x65,0x70,0x3b,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x31,0x66,0x72,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x32,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x73,0x77,0x61,0x70,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x73,0x77,0x61,0x70,0x3e,0x2a,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x7d,0x2e,0x73,0x77,0x61,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x73,0x77,0x61,0x70,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x2e,0x73,0x77,0x61,0x70,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x2e,0x73,0x77,0x61,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x2c,0x2e,0x73,0x77,0x61,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x2e,0x73,0x77,0x61,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x74,0x61,0x62,0x73,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3a,0x68,0x61,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x5b,0x63,0x6c,0x61,0x73,0x73,0x2a,0x3d,0x22,0x20,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x22,0x5d,0x29,0x20,0x2e,0x74,0x61,0x62,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x29,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3a,0x68,0x61,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x5b,0x63,0x6c,0x61,0x73,0x73,0x5e,0x3d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x5d,0x29,0x20,0x2e,0x74,0x61,0x62,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x74,0x61,0x62,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x3a,0x77,0x72,0x61,0x70,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x29,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x61,0x72,0x69,0x61,0x2d,0x6c,0x61,0x62,0x65,0x6c,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7d,0x2e,0x74,0x61,0x62,0x3a,0x6e,0x6f,0x74,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x3a,0x65,0x6d,0x70,0x74,0x79,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x73,0x70,0x61,0x6e,0x20,0x39,0x39,0x39,0x39,0x7d,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x65,0x6e,0x64,0x3a,0x73,0x70,0x61,0x6e,0x20,0x39,0x39,0x39,0x39,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x29,0x20,0x2a,0x20,0x2d,0x31,0x29,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x30,0x29,0x7d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2b,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x32,0x29,0x2c,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x2b,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x32,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x2b,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x61,0x62,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2b,0x2e,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x70,0x69,0x6e,0x2d,0x72,0x6f,0x77,0x73,0x74,0x68,0x65,0x61,0x64,0x74,0x72,0x29,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x74,0x69,0x63,0x6b,0x79,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x70,0x69,0x6e,0x2d,0x72,0x6f,0x77,0x73,0x74,0x66,0x6f,0x6f,0x74,0x74,0x72,0x29,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x74,0x69,0x63,0x6b,0x79,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x70,0x69,0x6e,0x2d,0x63,0x6f,0x6c,0x73,0x74,0x72,0x74,0x68,0x29,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x74,0x69,0x63,0x6b,0x79,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x72,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x62,0x6f,0x64,0x79,0x20,0x74,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x70,0x69,0x6e,0x2d,0x63,0x6f,0x6c,0x73,0x74,0x72,0x74,0x68,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x31,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3e,0x6c,0x69,0x29,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x20,0x61,0x75,0x74,0x6f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x72,0x6f,0x77,0x2d,0x65,0x6e,0x64,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x2d,0x73,0x74,0x61,0x72,0x74,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x20,0x61,0x75,0x74,0x6f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x2d,0x65,0x6e,0x64,0x2c,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x31,0x66,0x72,0x29,0x29,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3e,0x6c,0x69,0x3e,0x68,0x72,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3e,0x6c,0x69,0x3e,0x68,0x72,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3e,0x6c,0x69,0x3e,0x68,0x72,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x33,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x65,0x6e,0x64,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x65,0x6e,0x64,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x65,0x6e,0x64,0x3a,0x34,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x65,0x6e,0x64,0x3a,0x32,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x32,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x65,0x6e,0x64,0x3a,0x34,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x33,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x65,0x6e,0x64,0x3a,0x34,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x74,0x6f,0x61,0x73,0x74,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x66,0x69,0x78,0x65,0x64,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x2d,0x6d,0x69,0x78,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x29,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x2d,0x6d,0x69,0x78,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x2d,0x6d,0x69,0x78,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x2d,0x6d,0x69,0x78,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x61,0x6c,0x65,0x72,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x61,0x6c,0x65,0x72,0x74,0x2d,0x62,0x67,0x2d,0x6d,0x69,0x78,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x2d,0x67,0x72,0x6f,0x75,0x70,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x7d,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x2d,0x67,0x72,0x6f,0x75,0x70,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x61,0x76,0x61,0x74,0x61,0x72,0x29,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x67,0x68,0x6f,0x73,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x35,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x61,0x64,0x67,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x2a,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x7d,0x2e,0x62,0x74,0x6d,0x2d,0x6e,0x61,0x76,0x3e,0x2a,0x20,0x2e,0x6c,0x61,0x62,0x65,0x6c,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x3e,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x2b,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x2b,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x33,0x37,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x33,0x37,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x34,0x35,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x34,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x6f,0x6c,0x3e,0x6c,0x69,0x2b,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x62,0x72,0x65,0x61,0x64,0x63,0x72,0x75,0x6d,0x62,0x73,0x3e,0x75,0x6c,0x3e,0x6c,0x69,0x2b,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x2d,0x31,0x33,0x35,0x64,0x65,0x67,0x7d,0x2e,0x62,0x74,0x6e,0x7b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x36,0x30,0x30,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x2c,0x31,0x70,0x78,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x2d,0x6d,0x6f,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x6f,0x2d,0x70,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2d,0x70,0x6f,0x70,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x32,0x35,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2d,0x70,0x6f,0x70,0x20,0x30,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2c,0x2e,0x39,0x37,0x29,0x29,0x7d,0x2e,0x62,0x74,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x35,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x29,0x20,0x2f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x29,0x20,0x2f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x29,0x29,0x7d,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x29,0x20,0x2f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x29,0x20,0x2f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x29,0x29,0x7d,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x29,0x20,0x2f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x29,0x20,0x2f,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x7d,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2e,0x67,0x6c,0x61,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2e,0x67,0x6c,0x61,0x73,0x73,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x67,0x6c,0x61,0x73,0x73,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x32,0x35,0x25,0x3b,0x2d,0x2d,0x67,0x6c,0x61,0x73,0x73,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x35,0x25,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2e,0x67,0x6c,0x61,0x73,0x73,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x67,0x6c,0x61,0x73,0x73,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x32,0x35,0x25,0x3b,0x2d,0x2d,0x67,0x6c,0x61,0x73,0x73,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x35,0x25,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6c,0x69,0x6e,0x6b,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6c,0x69,0x6e,0x6b,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6c,0x69,0x6e,0x6b,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x69,0x6e,0x66,0x6f,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2e,0x62,0x74,0x6e,0x2d,0x65,0x72,0x72,0x6f,0x72,0x2e,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x2e,0x62,0x74,0x6e,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x62,0x74,0x6e,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x62,0x74,0x6e,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x39,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2d,0x70,0x6f,0x70,0x7b,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2c,0x2e,0x39,0x38,0x29,0x29,0x7d,0x34,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x31,0x2e,0x30,0x32,0x29,0x7d,0x31,0x30,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x31,0x29,0x7d,0x7d,0x2e,0x63,0x61,0x72,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x7d,0x2e,0x63,0x61,0x72,0x64,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x66,0x69,0x67,0x75,0x72,0x65,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x75,0x6e,0x73,0x65,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x75,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x63,0x61,0x72,0x64,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x66,0x69,0x67,0x75,0x72,0x65,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x75,0x6e,0x73,0x65,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x75,0x6e,0x73,0x65,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x2e,0x63,0x61,0x72,0x64,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x63,0x6f,0x6d,0x70,0x61,0x63,0x74,0x20,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x64,0x79,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x64,0x79,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x63,0x61,0x72,0x64,0x2c,0x32,0x72,0x65,0x6d,0x29,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x36,0x30,0x30,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x37,0x35,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x3e,0x2e,0x63,0x61,0x72,0x64,0x2d,0x62,0x6f,0x64,0x79,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x32,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x61,0x72,0x64,0x2e,0x69,0x6d,0x61,0x67,0x65,0x2d,0x66,0x75,0x6c,0x6c,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x66,0x69,0x67,0x75,0x72,0x65,0x29,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x7b,0x2d,0x6d,0x73,0x2d,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x62,0x61,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x61,0x72,0x6f,0x75,0x73,0x65,0x6c,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x62,0x61,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x2e,0x37,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x2d,0x2e,0x37,0x34,0x39,0x72,0x65,0x6d,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x39,0x39,0x2e,0x39,0x25,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x2e,0x32,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x2d,0x34,0x35,0x64,0x65,0x67,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x36,0x35,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x36,0x35,0x2e,0x39,0x39,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x34,0x35,0x64,0x65,0x67,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x37,0x35,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x37,0x35,0x2e,0x39,0x39,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x2d,0x34,0x35,0x64,0x65,0x67,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x34,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x34,0x30,0x2e,0x39,0x39,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x34,0x35,0x64,0x65,0x67,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x33,0x30,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x29,0x20,0x33,0x30,0x2e,0x39,0x39,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x29,0x20,0x34,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x34,0x30,0x2e,0x39,0x39,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x2d,0x34,0x35,0x64,0x65,0x67,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x29,0x20,0x35,0x30,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x35,0x30,0x2e,0x39,0x39,0x25,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x2e,0x32,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x39,0x30,0x64,0x65,0x67,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x38,0x30,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x38,0x30,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x2d,0x39,0x30,0x64,0x65,0x67,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x38,0x30,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x38,0x30,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x30,0x64,0x65,0x67,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x34,0x33,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x29,0x20,0x34,0x33,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x29,0x20,0x35,0x37,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x29,0x20,0x35,0x37,0x25,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x69,0x6e,0x66,0x6f,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x63,0x68,0x6b,0x66,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x65,0x72,0x72,0x6f,0x72,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x32,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x7b,0x30,0x25,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x79,0x3a,0x35,0x70,0x78,0x7d,0x35,0x30,0x25,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x79,0x3a,0x2d,0x32,0x70,0x78,0x7d,0x31,0x30,0x30,0x25,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x79,0x3a,0x30,0x7d,0x7d,0x2e,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2d,0x6d,0x61,0x72,0x6b,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x7d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x7d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2d,0x6d,0x61,0x72,0x6b,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x7d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x68,0x61,0x73,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x29,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x3a,0x2d,0x31,0x30,0x30,0x25,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x34,0x35,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x61,0x6c,0x6c,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x31,0x35,0x30,0x6d,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x6f,0x70,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x31,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x37,0x35,0x25,0x20,0x37,0x35,0x25,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x32,0x70,0x78,0x20,0x32,0x70,0x78,0x3b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x70,0x6c,0x75,0x73,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x61,0x6c,0x6c,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x6f,0x70,0x3a,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x31,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x2b,0x22,0x3b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x29,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x75,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x29,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x29,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x29,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x29,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x33,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x75,0x6e,0x73,0x65,0x74,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x3a,0x66,0x6f,0x63,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x3a,0x2d,0x35,0x30,0x25,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x32,0x32,0x35,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x6f,0x70,0x65,0x6e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x70,0x6c,0x75,0x73,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x70,0x6c,0x75,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x70,0x6c,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x70,0x6c,0x75,0x73,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6c,0x6f,0x73,0x65,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x70,0x6c,0x75,0x73,0x3e,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0xe2,0x88,0x92,0x22,0x7d,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x64,0x6f,0x77,0x6e,0x3e,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x6c,0x6c,0x20,0x31,0x73,0x20,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x31,0x2c,0x30,0x2c,0x30,0x2c,0x31,0x29,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x31,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x2e,0x35,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x35,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x33,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x30,0x35,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x6c,0x75,0x72,0x3a,0x62,0x6c,0x75,0x72,0x28,0x38,0x70,0x78,0x29,0x3b,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x6c,0x75,0x72,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x65,0x70,0x69,0x61,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x3a,0x35,0x30,0x25,0x20,0x2d,0x35,0x30,0x25,0x7d,0x2e,0x64,0x69,0x66,0x66,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x32,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x31,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x65,0x6d,0x70,0x74,0x79,0x29,0x7b,0x67,0x61,0x70,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x72,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x73,0x69,0x64,0x65,0x3e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x36,0x7d,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7e,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6c,0x61,0x62,0x65,0x6c,0x2e,0x64,0x72,0x61,0x77,0x65,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x69,0x73,0x28,0x3a,0x6e,0x6f,0x74,0x28,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x29,0x29,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x74,0x6f,0x70,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x3a,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x3a,0x2e,0x39,0x35,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x74,0x6f,0x70,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x74,0x6f,0x70,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x6c,0x65,0x66,0x74,0x7d,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x6f,0x70,0x65,0x6e,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x66,0x6f,0x63,0x75,0x73,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x3a,0x31,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x2e,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x3a,0x31,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x36,0x30,0x30,0x3b,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x2c,0x31,0x70,0x78,0x29,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2d,0x70,0x6f,0x70,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x32,0x35,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x30,0x35,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x2e,0x66,0x69,0x6c,0x65,0x2d,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x67,0x61,0x70,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x72,0x6f,0x77,0x2d,0x67,0x61,0x70,0x3a,0x32,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x3e,0x2a,0x7b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x36,0x7d,0x2e,0x6c,0x61,0x62,0x65,0x6c,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6c,0x61,0x62,0x65,0x6c,0x2d,0x74,0x65,0x78,0x74,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x6c,0x61,0x62,0x65,0x6c,0x2d,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x74,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x61,0x62,0x65,0x6c,0x20,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x68,0x65,0x72,0x6f,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x35,0x7d,0x2e,0x68,0x65,0x72,0x6f,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x30,0x72,0x65,0x6d,0x3b,0x67,0x61,0x70,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x6c,0x69,0x73,0x74,0x5d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x63,0x61,0x6c,0x65,0x6e,0x64,0x61,0x72,0x2d,0x70,0x69,0x63,0x6b,0x65,0x72,0x2d,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x7b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x65,0x6d,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x30,0x35,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x34,0x29,0x29,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x68,0x61,0x73,0x28,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3e,0x69,0x6e,0x70,0x75,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x7d,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x64,0x61,0x74,0x65,0x2d,0x61,0x6e,0x64,0x2d,0x74,0x69,0x6d,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x2d,0x31,0x70,0x78,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x3e,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x3a,0x69,0x73,0x28,0x2e,0x62,0x74,0x6e,0x29,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x29,0x20,0x2a,0x20,0x2d,0x31,0x29,0x7d,0x2e,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x69,0x73,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x7d,0x2e,0x6b,0x62,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x2e,0x32,0x65,0x6d,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x2e,0x32,0x65,0x6d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x29,0x29,0x7b,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6c,0x69,0x6e,0x6b,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x6d,0x69,0x78,0x28,0x69,0x6e,0x20,0x6f,0x6b,0x6c,0x61,0x62,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x20,0x38,0x30,0x25,0x2c,0x23,0x30,0x30,0x30,0x29,0x7d,0x7d,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x6c,0x69,0x6e,0x6b,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x7b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x61,0x73,0x70,0x65,0x63,0x74,0x2d,0x72,0x61,0x74,0x69,0x6f,0x3a,0x31,0x2f,0x31,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x34,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3d,0x27,0x25,0x32,0x33,0x30,0x30,0x30,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x32,0x34,0x20,0x32,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x56,0x38,0x6d,0x31,0x25,0x37,0x42,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x7a,0x4b,0x6f,0x61,0x20,0x32,0x73,0x20,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x25,0x37,0x44,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x56,0x38,0x6d,0x31,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x63,0x61,0x70,0x3a,0x72,0x6f,0x75,0x6e,0x64,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x70,0x5a,0x53,0x20,0x31,0x2e,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x25,0x37,0x44,0x25,0x34,0x30,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x7a,0x4b,0x6f,0x61,0x25,0x37,0x42,0x31,0x30,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x33,0x36,0x30,0x64,0x65,0x67,0x29,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x34,0x30,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x70,0x5a,0x53,0x25,0x37,0x42,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3a,0x30,0x20,0x31,0x35,0x30,0x3b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x30,0x25,0x37,0x44,0x34,0x37,0x2e,0x35,0x25,0x32,0x35,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3a,0x34,0x32,0x20,0x31,0x35,0x30,0x3b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x31,0x36,0x25,0x37,0x44,0x39,0x35,0x25,0x32,0x35,0x25,0x32,0x43,0x31,0x30,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3a,0x34,0x32,0x20,0x31,0x35,0x30,0x3b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x35,0x39,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x33,0x43,0x25,0x32,0x46,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x67,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x56,0x38,0x6d,0x31,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x78,0x3d,0x27,0x31,0x32,0x27,0x20,0x63,0x79,0x3d,0x27,0x31,0x32,0x27,0x20,0x72,0x3d,0x27,0x39,0x2e,0x35,0x27,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x33,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x25,0x32,0x46,0x63,0x69,0x72,0x63,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x25,0x32,0x46,0x67,0x25,0x33,0x45,0x25,0x33,0x43,0x25,0x32,0x46,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x34,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3d,0x27,0x25,0x32,0x33,0x30,0x30,0x30,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x32,0x34,0x20,0x32,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x56,0x38,0x6d,0x31,0x25,0x37,0x42,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x7a,0x4b,0x6f,0x61,0x20,0x32,0x73,0x20,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x25,0x37,0x44,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x56,0x38,0x6d,0x31,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x63,0x61,0x70,0x3a,0x72,0x6f,0x75,0x6e,0x64,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x70,0x5a,0x53,0x20,0x31,0x2e,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x25,0x37,0x44,0x25,0x34,0x30,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x7a,0x4b,0x6f,0x61,0x25,0x37,0x42,0x31,0x30,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x33,0x36,0x30,0x64,0x65,0x67,0x29,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x34,0x30,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x70,0x5a,0x53,0x25,0x37,0x42,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3a,0x30,0x20,0x31,0x35,0x30,0x3b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x30,0x25,0x37,0x44,0x34,0x37,0x2e,0x35,0x25,0x32,0x35,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3a,0x34,0x32,0x20,0x31,0x35,0x30,0x3b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x31,0x36,0x25,0x37,0x44,0x39,0x35,0x25,0x32,0x35,0x25,0x32,0x43,0x31,0x30,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3a,0x34,0x32,0x20,0x31,0x35,0x30,0x3b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x35,0x39,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x33,0x43,0x25,0x32,0x46,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x67,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x56,0x38,0x6d,0x31,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x78,0x3d,0x27,0x31,0x32,0x27,0x20,0x63,0x79,0x3d,0x27,0x31,0x32,0x27,0x20,0x72,0x3d,0x27,0x39,0x2e,0x35,0x27,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x33,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x25,0x32,0x46,0x63,0x69,0x72,0x63,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x25,0x32,0x46,0x67,0x25,0x33,0x45,0x25,0x33,0x43,0x25,0x32,0x46,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x64,0x6f,0x74,0x73,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x34,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x32,0x34,0x20,0x32,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x71,0x4d,0x38,0x33,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x38,0x48,0x51,0x47,0x20,0x31,0x2e,0x30,0x35,0x73,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x25,0x37,0x44,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x6f,0x58,0x50,0x72,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x65,0x6c,0x61,0x79,0x3a,0x2e,0x31,0x73,0x25,0x37,0x44,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x5a,0x54,0x4c,0x66,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x65,0x6c,0x61,0x79,0x3a,0x2e,0x32,0x73,0x25,0x37,0x44,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x38,0x48,0x51,0x47,0x25,0x37,0x42,0x30,0x25,0x32,0x35,0x2c,0x35,0x37,0x2e,0x31,0x34,0x25,0x32,0x35,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x33,0x33,0x2c,0x2e,0x36,0x36,0x2c,0x2e,0x36,0x36,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x30,0x29,0x25,0x37,0x44,0x32,0x38,0x2e,0x35,0x37,0x25,0x32,0x35,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x33,0x33,0x2c,0x30,0x2c,0x2e,0x36,0x36,0x2c,0x2e,0x33,0x33,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x36,0x70,0x78,0x29,0x25,0x37,0x44,0x31,0x30,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x30,0x29,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x33,0x43,0x2f,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x71,0x4d,0x38,0x33,0x27,0x20,0x63,0x78,0x3d,0x27,0x34,0x27,0x20,0x63,0x79,0x3d,0x27,0x31,0x32,0x27,0x20,0x72,0x3d,0x27,0x33,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x71,0x4d,0x38,0x33,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x6f,0x58,0x50,0x72,0x27,0x20,0x63,0x78,0x3d,0x27,0x31,0x32,0x27,0x20,0x63,0x79,0x3d,0x27,0x31,0x32,0x27,0x20,0x72,0x3d,0x27,0x33,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x71,0x4d,0x38,0x33,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x5a,0x54,0x4c,0x66,0x27,0x20,0x63,0x78,0x3d,0x27,0x32,0x30,0x27,0x20,0x63,0x79,0x3d,0x27,0x31,0x32,0x27,0x20,0x72,0x3d,0x27,0x33,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x6e,0x67,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x34,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x34,0x34,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x34,0x34,0x20,0x34,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3d,0x27,0x25,0x32,0x33,0x66,0x66,0x66,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x67,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x78,0x3d,0x27,0x32,0x32,0x27,0x20,0x63,0x79,0x3d,0x27,0x32,0x32,0x27,0x20,0x72,0x3d,0x27,0x31,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x3d,0x27,0x72,0x27,0x20,0x62,0x65,0x67,0x69,0x6e,0x3d,0x27,0x30,0x73,0x27,0x20,0x64,0x75,0x72,0x3d,0x27,0x31,0x2e,0x38,0x73,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x27,0x31,0x3b,0x20,0x32,0x30,0x27,0x20,0x63,0x61,0x6c,0x63,0x4d,0x6f,0x64,0x65,0x3d,0x27,0x73,0x70,0x6c,0x69,0x6e,0x65,0x27,0x20,0x6b,0x65,0x79,0x54,0x69,0x6d,0x65,0x73,0x3d,0x27,0x30,0x3b,0x20,0x31,0x27,0x20,0x6b,0x65,0x79,0x53,0x70,0x6c,0x69,0x6e,0x65,0x73,0x3d,0x27,0x30,0x2e,0x31,0x36,0x35,0x2c,0x20,0x30,0x2e,0x38,0x34,0x2c,0x20,0x30,0x2e,0x34,0x34,0x2c,0x20,0x31,0x27,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x27,0x69,0x6e,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x65,0x27,0x20,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x3d,0x27,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x27,0x20,0x62,0x65,0x67,0x69,0x6e,0x3d,0x27,0x30,0x73,0x27,0x20,0x64,0x75,0x72,0x3d,0x27,0x31,0x2e,0x38,0x73,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x27,0x31,0x3b,0x20,0x30,0x27,0x20,0x63,0x61,0x6c,0x63,0x4d,0x6f,0x64,0x65,0x3d,0x27,0x73,0x70,0x6c,0x69,0x6e,0x65,0x27,0x20,0x6b,0x65,0x79,0x54,0x69,0x6d,0x65,0x73,0x3d,0x27,0x30,0x3b,0x20,0x31,0x27,0x20,0x6b,0x65,0x79,0x53,0x70,0x6c,0x69,0x6e,0x65,0x73,0x3d,0x27,0x30,0x2e,0x33,0x2c,0x20,0x30,0x2e,0x36,0x31,0x2c,0x20,0x30,0x2e,0x33,0x35,0x35,0x2c,0x20,0x31,0x27,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x27,0x69,0x6e,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x65,0x27,0x20,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x63,0x69,0x72,0x63,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x63,0x78,0x3d,0x27,0x32,0x32,0x27,0x20,0x63,0x79,0x3d,0x27,0x32,0x32,0x27,0x20,0x72,0x3d,0x27,0x31,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x3d,0x27,0x72,0x27,0x20,0x62,0x65,0x67,0x69,0x6e,0x3d,0x27,0x2d,0x30,0x2e,0x39,0x73,0x27,0x20,0x64,0x75,0x72,0x3d,0x27,0x31,0x2e,0x38,0x73,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x27,0x31,0x3b,0x20,0x32,0x30,0x27,0x20,0x63,0x61,0x6c,0x63,0x4d,0x6f,0x64,0x65,0x3d,0x27,0x73,0x70,0x6c,0x69,0x6e,0x65,0x27,0x20,0x6b,0x65,0x79,0x54,0x69,0x6d,0x65,0x73,0x3d,0x27,0x30,0x3b,0x20,0x31,0x27,0x20,0x6b,0x65,0x79,0x53,0x70,0x6c,0x69,0x6e,0x65,0x73,0x3d,0x27,0x30,0x2e,0x31,0x36,0x35,0x2c,0x20,0x30,0x2e,0x38,0x34,0x2c,0x20,0x30,0x2e,0x34,0x34,0x2c,0x20,0x31,0x27,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x27,0x69,0x6e,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x65,0x27,0x20,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x3d,0x27,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x27,0x20,0x62,0x65,0x67,0x69,0x6e,0x3d,0x27,0x2d,0x30,0x2e,0x39,0x73,0x27,0x20,0x64,0x75,0x72,0x3d,0x27,0x31,0x2e,0x38,0x73,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x27,0x31,0x3b,0x20,0x30,0x27,0x20,0x63,0x61,0x6c,0x63,0x4d,0x6f,0x64,0x65,0x3d,0x27,0x73,0x70,0x6c,0x69,0x6e,0x65,0x27,0x20,0x6b,0x65,0x79,0x54,0x69,0x6d,0x65,0x73,0x3d,0x27,0x30,0x3b,0x20,0x31,0x27,0x20,0x6b,0x65,0x79,0x53,0x70,0x6c,0x69,0x6e,0x65,0x73,0x3d,0x27,0x30,0x2e,0x33,0x2c,0x20,0x30,0x2e,0x36,0x31,0x2c,0x20,0x30,0x2e,0x33,0x35,0x35,0x2c,0x20,0x31,0x27,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x27,0x69,0x6e,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x65,0x27,0x20,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x63,0x69,0x72,0x63,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x67,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x62,0x61,0x6c,0x6c,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x30,0x41,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x34,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x32,0x34,0x20,0x32,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x72,0x58,0x4e,0x50,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x65,0x42,0x6a,0x20,0x2e,0x38,0x73,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x25,0x37,0x44,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x65,0x42,0x6a,0x25,0x37,0x42,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x33,0x33,0x2c,0x30,0x2c,0x2e,0x36,0x36,0x2c,0x2e,0x33,0x33,0x29,0x3b,0x63,0x79,0x3a,0x35,0x70,0x78,0x25,0x37,0x44,0x34,0x36,0x2e,0x38,0x37,0x35,0x25,0x32,0x35,0x25,0x37,0x42,0x63,0x79,0x3a,0x32,0x30,0x70,0x78,0x3b,0x72,0x78,0x3a,0x34,0x70,0x78,0x3b,0x72,0x79,0x3a,0x34,0x70,0x78,0x25,0x37,0x44,0x35,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x33,0x33,0x2c,0x2e,0x36,0x36,0x2c,0x2e,0x36,0x36,0x2c,0x31,0x29,0x3b,0x63,0x79,0x3a,0x32,0x30,0x2e,0x35,0x70,0x78,0x3b,0x72,0x78,0x3a,0x34,0x2e,0x38,0x70,0x78,0x3b,0x72,0x79,0x3a,0x33,0x70,0x78,0x25,0x37,0x44,0x35,0x33,0x2e,0x31,0x32,0x35,0x25,0x32,0x35,0x25,0x37,0x42,0x72,0x78,0x3a,0x34,0x70,0x78,0x3b,0x72,0x79,0x3a,0x34,0x70,0x78,0x25,0x37,0x44,0x31,0x30,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x63,0x79,0x3a,0x35,0x70,0x78,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x33,0x43,0x2f,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x65,0x6c,0x6c,0x69,0x70,0x73,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x72,0x58,0x4e,0x50,0x27,0x20,0x63,0x78,0x3d,0x27,0x31,0x32,0x27,0x20,0x63,0x79,0x3d,0x27,0x35,0x27,0x20,0x72,0x78,0x3d,0x27,0x34,0x27,0x20,0x72,0x79,0x3d,0x27,0x34,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x62,0x61,0x72,0x73,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x30,0x41,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x34,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x32,0x34,0x20,0x32,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x68,0x7a,0x6c,0x4b,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x76,0x63,0x34,0x48,0x20,0x2e,0x38,0x73,0x20,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x65,0x6c,0x61,0x79,0x3a,0x2d,0x2e,0x38,0x73,0x25,0x37,0x44,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x6b,0x6f,0x47,0x54,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x65,0x6c,0x61,0x79,0x3a,0x2d,0x2e,0x36,0x35,0x73,0x25,0x37,0x44,0x2e,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x46,0x31,0x75,0x25,0x37,0x42,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x65,0x6c,0x61,0x79,0x3a,0x2d,0x2e,0x35,0x73,0x25,0x37,0x44,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x76,0x63,0x34,0x48,0x25,0x37,0x42,0x30,0x25,0x32,0x35,0x25,0x37,0x42,0x79,0x3a,0x31,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x32,0x70,0x78,0x25,0x37,0x44,0x39,0x33,0x2e,0x37,0x35,0x25,0x32,0x35,0x25,0x37,0x42,0x79,0x3a,0x35,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x34,0x70,0x78,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x32,0x25,0x37,0x44,0x25,0x37,0x44,0x25,0x33,0x43,0x2f,0x73,0x74,0x79,0x6c,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x72,0x65,0x63,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x68,0x7a,0x6c,0x4b,0x27,0x20,0x78,0x3d,0x27,0x31,0x27,0x20,0x79,0x3d,0x27,0x31,0x27,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x36,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x32,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x72,0x65,0x63,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x68,0x7a,0x6c,0x4b,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x6b,0x6f,0x47,0x54,0x27,0x20,0x78,0x3d,0x27,0x39,0x27,0x20,0x79,0x3d,0x27,0x31,0x27,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x36,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x32,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x72,0x65,0x63,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x68,0x7a,0x6c,0x4b,0x20,0x73,0x70,0x69,0x6e,0x6e,0x65,0x72,0x5f,0x59,0x46,0x31,0x75,0x27,0x20,0x78,0x3d,0x27,0x31,0x37,0x27,0x20,0x79,0x3d,0x27,0x31,0x27,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x36,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x32,0x27,0x2f,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x79,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x43,0x73,0x76,0x67,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69,0x6e,0x6b,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69,0x6e,0x6b,0x27,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x27,0x73,0x68,0x61,0x70,0x65,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x27,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x70,0x78,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x30,0x70,0x78,0x27,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x27,0x30,0x20,0x30,0x20,0x31,0x30,0x30,0x20,0x31,0x30,0x30,0x27,0x20,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x41,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x3d,0x27,0x78,0x4d,0x69,0x64,0x59,0x4d,0x69,0x64,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3d,0x27,0x25,0x32,0x33,0x30,0x61,0x30,0x61,0x30,0x61,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x30,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x3d,0x27,0x32,0x30,0x35,0x2e,0x32,0x37,0x31,0x31,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x35,0x31,0x2e,0x33,0x31,0x37,0x37,0x38,0x35,0x36,0x34,0x34,0x35,0x33,0x31,0x32,0x35,0x36,0x27,0x20,0x64,0x3d,0x27,0x4d,0x32,0x34,0x2e,0x33,0x20,0x33,0x30,0x43,0x31,0x31,0x2e,0x34,0x20,0x33,0x30,0x20,0x35,0x20,0x34,0x33,0x2e,0x33,0x20,0x35,0x20,0x35,0x30,0x73,0x36,0x2e,0x34,0x20,0x32,0x30,0x20,0x31,0x39,0x2e,0x33,0x20,0x32,0x30,0x63,0x31,0x39,0x2e,0x33,0x20,0x30,0x20,0x33,0x32,0x2e,0x31,0x2d,0x34,0x30,0x20,0x35,0x31,0x2e,0x34,0x2d,0x34,0x30,0x20,0x43,0x38,0x38,0x2e,0x36,0x20,0x33,0x30,0x20,0x39,0x35,0x20,0x34,0x33,0x2e,0x33,0x20,0x39,0x35,0x20,0x35,0x30,0x73,0x2d,0x36,0x2e,0x34,0x20,0x32,0x30,0x2d,0x31,0x39,0x2e,0x33,0x20,0x32,0x30,0x43,0x35,0x36,0x2e,0x34,0x20,0x37,0x30,0x20,0x34,0x33,0x2e,0x36,0x20,0x33,0x30,0x20,0x32,0x34,0x2e,0x33,0x20,0x33,0x30,0x7a,0x27,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x63,0x61,0x70,0x3d,0x27,0x72,0x6f,0x75,0x6e,0x64,0x27,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x27,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x30,0x2e,0x38,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x35,0x30,0x70,0x78,0x20,0x35,0x30,0x70,0x78,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x3d,0x27,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x27,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x27,0x69,0x6e,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x65,0x27,0x20,0x64,0x75,0x72,0x3d,0x27,0x32,0x73,0x27,0x20,0x6b,0x65,0x79,0x54,0x69,0x6d,0x65,0x73,0x3d,0x27,0x30,0x3b,0x31,0x27,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x27,0x30,0x3b,0x32,0x35,0x36,0x2e,0x35,0x38,0x38,0x39,0x32,0x38,0x32,0x32,0x32,0x36,0x35,0x36,0x32,0x35,0x27,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x70,0x61,0x74,0x68,0x25,0x33,0x45,0x25,0x33,0x43,0x2f,0x73,0x76,0x67,0x25,0x33,0x45,0x22,0x29,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x78,0x73,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x73,0x6d,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x6d,0x64,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x67,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x71,0x75,0x69,0x72,0x63,0x6c,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x27,0x4d,0x31,0x30,0x30,0x20,0x30,0x43,0x32,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x30,0x20,0x30,0x20,0x31,0x30,0x30,0x73,0x32,0x30,0x20,0x31,0x30,0x30,0x20,0x31,0x30,0x30,0x20,0x31,0x30,0x30,0x20,0x31,0x30,0x30,0x2d,0x32,0x30,0x20,0x31,0x30,0x30,0x2d,0x31,0x30,0x30,0x53,0x31,0x38,0x30,0x20,0x30,0x20,0x31,0x30,0x30,0x20,0x30,0x5a,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x64,0x65,0x63,0x61,0x67,0x6f,0x6e,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x39,0x32,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x39,0x36,0x20,0x30,0x20,0x35,0x38,0x2e,0x37,0x37,0x39,0x20,0x31,0x39,0x2e,0x30,0x39,0x38,0x20,0x33,0x36,0x2e,0x33,0x32,0x37,0x20,0x35,0x30,0x76,0x36,0x31,0x2e,0x38,0x30,0x34,0x6c,0x2d,0x33,0x36,0x2e,0x33,0x32,0x37,0x20,0x35,0x30,0x4c,0x39,0x36,0x20,0x32,0x30,0x30,0x6c,0x2d,0x35,0x38,0x2e,0x37,0x37,0x39,0x2d,0x31,0x39,0x2e,0x30,0x39,0x38,0x2d,0x33,0x36,0x2e,0x33,0x32,0x37,0x2d,0x35,0x30,0x56,0x36,0x39,0x2e,0x30,0x39,0x38,0x6c,0x33,0x36,0x2e,0x33,0x32,0x37,0x2d,0x35,0x30,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x64,0x69,0x61,0x6d,0x6f,0x6e,0x64,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x31,0x30,0x30,0x20,0x30,0x20,0x31,0x30,0x30,0x20,0x31,0x30,0x30,0x2d,0x31,0x30,0x30,0x20,0x31,0x30,0x30,0x4c,0x30,0x20,0x31,0x30,0x30,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x65,0x61,0x72,0x74,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x38,0x35,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x27,0x4d,0x31,0x30,0x30,0x20,0x31,0x38,0x34,0x2e,0x36,0x30,0x36,0x61,0x31,0x35,0x2e,0x33,0x38,0x34,0x20,0x31,0x35,0x2e,0x33,0x38,0x34,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x38,0x2e,0x36,0x35,0x33,0x2d,0x32,0x2e,0x36,0x37,0x38,0x43,0x35,0x33,0x2e,0x35,0x36,0x35,0x20,0x31,0x35,0x36,0x2e,0x32,0x38,0x20,0x33,0x37,0x2e,0x32,0x30,0x35,0x20,0x31,0x33,0x38,0x2e,0x36,0x39,0x35,0x20,0x32,0x38,0x2e,0x31,0x38,0x32,0x20,0x31,0x32,0x37,0x2e,0x37,0x20,0x38,0x2e,0x39,0x35,0x32,0x20,0x31,0x30,0x34,0x2e,0x32,0x36,0x34,0x2d,0x2e,0x32,0x35,0x34,0x20,0x38,0x30,0x2e,0x32,0x30,0x32,0x2e,0x30,0x30,0x35,0x20,0x35,0x34,0x2e,0x31,0x34,0x36,0x2e,0x33,0x30,0x38,0x20,0x32,0x34,0x2e,0x32,0x38,0x37,0x20,0x32,0x34,0x2e,0x32,0x36,0x34,0x20,0x30,0x20,0x35,0x33,0x2e,0x34,0x30,0x36,0x20,0x30,0x63,0x32,0x31,0x2e,0x31,0x39,0x32,0x20,0x30,0x20,0x33,0x35,0x2e,0x38,0x36,0x39,0x20,0x31,0x31,0x2e,0x39,0x33,0x37,0x20,0x34,0x34,0x2e,0x34,0x31,0x36,0x20,0x32,0x31,0x2e,0x38,0x37,0x39,0x61,0x32,0x2e,0x38,0x38,0x34,0x20,0x32,0x2e,0x38,0x38,0x34,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x34,0x2e,0x33,0x35,0x36,0x20,0x30,0x43,0x31,0x31,0x30,0x2e,0x37,0x32,0x35,0x20,0x31,0x31,0x2e,0x39,0x32,0x37,0x20,0x31,0x32,0x35,0x2e,0x34,0x30,0x32,0x20,0x30,0x20,0x31,0x34,0x36,0x2e,0x35,0x39,0x34,0x20,0x30,0x63,0x32,0x39,0x2e,0x31,0x34,0x32,0x20,0x30,0x20,0x35,0x33,0x2e,0x30,0x39,0x38,0x20,0x32,0x34,0x2e,0x32,0x38,0x37,0x20,0x35,0x33,0x2e,0x34,0x20,0x35,0x34,0x2e,0x31,0x35,0x31,0x2e,0x32,0x36,0x20,0x32,0x36,0x2e,0x30,0x36,0x31,0x2d,0x38,0x2e,0x39,0x35,0x36,0x20,0x35,0x30,0x2e,0x31,0x32,0x32,0x2d,0x32,0x38,0x2e,0x31,0x37,0x36,0x20,0x37,0x33,0x2e,0x35,0x35,0x34,0x2d,0x39,0x2e,0x30,0x32,0x33,0x20,0x31,0x30,0x2e,0x39,0x39,0x34,0x2d,0x32,0x35,0x2e,0x33,0x38,0x33,0x20,0x32,0x38,0x2e,0x35,0x38,0x2d,0x36,0x33,0x2e,0x31,0x36,0x35,0x20,0x35,0x34,0x2e,0x32,0x32,0x38,0x61,0x31,0x35,0x2e,0x33,0x38,0x34,0x20,0x31,0x35,0x2e,0x33,0x38,0x34,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x38,0x2e,0x36,0x35,0x33,0x20,0x32,0x2e,0x36,0x37,0x33,0x5a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x6e,0x6f,0x6e,0x7a,0x65,0x72,0x6f,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x65,0x78,0x61,0x67,0x6f,0x6e,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x38,0x32,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x31,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x27,0x4d,0x2e,0x33,0x20,0x36,0x35,0x2e,0x34,0x38,0x36,0x63,0x30,0x2d,0x39,0x2e,0x31,0x39,0x36,0x20,0x36,0x2e,0x36,0x38,0x37,0x2d,0x32,0x30,0x2e,0x30,0x36,0x33,0x20,0x31,0x34,0x2e,0x32,0x31,0x31,0x2d,0x32,0x35,0x2e,0x30,0x37,0x38,0x6c,0x36,0x31,0x2e,0x38,0x36,0x2d,0x33,0x35,0x2e,0x39,0x34,0x36,0x63,0x38,0x2e,0x33,0x36,0x2d,0x35,0x2e,0x30,0x31,0x36,0x20,0x32,0x30,0x2e,0x38,0x39,0x39,0x2d,0x35,0x2e,0x30,0x31,0x36,0x20,0x32,0x39,0x2e,0x32,0x35,0x38,0x20,0x30,0x6c,0x36,0x31,0x2e,0x38,0x36,0x20,0x33,0x35,0x2e,0x39,0x34,0x36,0x63,0x38,0x2e,0x33,0x36,0x20,0x35,0x2e,0x30,0x31,0x35,0x20,0x31,0x34,0x2e,0x32,0x31,0x31,0x20,0x31,0x35,0x2e,0x38,0x38,0x32,0x20,0x31,0x34,0x2e,0x32,0x31,0x31,0x20,0x32,0x35,0x2e,0x30,0x37,0x38,0x76,0x37,0x31,0x2e,0x30,0x35,0x35,0x63,0x30,0x20,0x39,0x2e,0x31,0x39,0x36,0x2d,0x36,0x2e,0x36,0x38,0x37,0x20,0x32,0x30,0x2e,0x30,0x36,0x33,0x2d,0x31,0x34,0x2e,0x32,0x31,0x31,0x20,0x32,0x35,0x2e,0x30,0x37,0x39,0x6c,0x2d,0x36,0x31,0x2e,0x38,0x36,0x20,0x33,0x35,0x2e,0x39,0x34,0x35,0x63,0x2d,0x38,0x2e,0x33,0x36,0x20,0x34,0x2e,0x31,0x38,0x2d,0x32,0x30,0x2e,0x38,0x39,0x39,0x20,0x34,0x2e,0x31,0x38,0x2d,0x32,0x39,0x2e,0x32,0x35,0x38,0x20,0x30,0x4c,0x31,0x34,0x2e,0x35,0x31,0x20,0x31,0x36,0x31,0x2e,0x36,0x32,0x43,0x36,0x2e,0x31,0x35,0x31,0x20,0x31,0x35,0x37,0x2e,0x34,0x34,0x2e,0x33,0x20,0x31,0x34,0x35,0x2e,0x37,0x33,0x37,0x2e,0x33,0x20,0x31,0x33,0x36,0x2e,0x35,0x34,0x56,0x36,0x35,0x2e,0x34,0x38,0x36,0x5a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x6e,0x6f,0x6e,0x7a,0x65,0x72,0x6f,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x68,0x65,0x78,0x61,0x67,0x6f,0x6e,0x2d,0x32,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x38,0x32,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x27,0x4d,0x36,0x34,0x2e,0x37,0x38,0x36,0x20,0x31,0x38,0x31,0x2e,0x34,0x63,0x2d,0x39,0x2e,0x31,0x39,0x36,0x20,0x30,0x2d,0x32,0x30,0x2e,0x30,0x36,0x33,0x2d,0x36,0x2e,0x36,0x38,0x37,0x2d,0x32,0x35,0x2e,0x30,0x37,0x39,0x2d,0x31,0x34,0x2e,0x32,0x31,0x4c,0x33,0x2e,0x37,0x36,0x32,0x20,0x31,0x30,0x35,0x2e,0x33,0x33,0x63,0x2d,0x35,0x2e,0x30,0x31,0x36,0x2d,0x38,0x2e,0x33,0x36,0x2d,0x35,0x2e,0x30,0x31,0x36,0x2d,0x32,0x30,0x2e,0x39,0x20,0x30,0x2d,0x32,0x39,0x2e,0x32,0x35,0x39,0x6c,0x33,0x35,0x2e,0x39,0x34,0x35,0x2d,0x36,0x31,0x2e,0x38,0x36,0x43,0x34,0x34,0x2e,0x37,0x32,0x33,0x20,0x35,0x2e,0x38,0x35,0x31,0x20,0x35,0x35,0x2e,0x35,0x39,0x20,0x30,0x20,0x36,0x34,0x2e,0x37,0x38,0x36,0x20,0x30,0x68,0x37,0x31,0x2e,0x30,0x35,0x35,0x63,0x39,0x2e,0x31,0x39,0x36,0x20,0x30,0x20,0x32,0x30,0x2e,0x30,0x36,0x33,0x20,0x36,0x2e,0x36,0x38,0x38,0x20,0x32,0x35,0x2e,0x30,0x37,0x39,0x20,0x31,0x34,0x2e,0x32,0x31,0x31,0x6c,0x33,0x35,0x2e,0x39,0x34,0x35,0x20,0x36,0x31,0x2e,0x38,0x36,0x63,0x34,0x2e,0x31,0x38,0x20,0x38,0x2e,0x33,0x36,0x20,0x34,0x2e,0x31,0x38,0x20,0x32,0x30,0x2e,0x38,0x39,0x39,0x20,0x30,0x20,0x32,0x39,0x2e,0x32,0x35,0x38,0x6c,0x2d,0x33,0x35,0x2e,0x39,0x34,0x35,0x20,0x36,0x31,0x2e,0x38,0x36,0x63,0x2d,0x34,0x2e,0x31,0x38,0x20,0x38,0x2e,0x33,0x36,0x2d,0x31,0x35,0x2e,0x38,0x38,0x33,0x20,0x31,0x34,0x2e,0x32,0x31,0x31,0x2d,0x32,0x35,0x2e,0x30,0x37,0x39,0x20,0x31,0x34,0x2e,0x32,0x31,0x31,0x48,0x36,0x34,0x2e,0x37,0x38,0x36,0x5a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x6e,0x6f,0x6e,0x7a,0x65,0x72,0x6f,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x63,0x78,0x3d,0x27,0x31,0x30,0x30,0x27,0x20,0x63,0x79,0x3d,0x27,0x31,0x30,0x30,0x27,0x20,0x72,0x3d,0x27,0x31,0x30,0x30,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x6f,0x67,0x72,0x61,0x6d,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x35,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x4d,0x34,0x36,0x2e,0x31,0x35,0x34,0x20,0x30,0x48,0x32,0x30,0x30,0x6c,0x2d,0x34,0x36,0x2e,0x31,0x35,0x34,0x20,0x31,0x35,0x33,0x2e,0x38,0x34,0x36,0x48,0x30,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x6f,0x67,0x72,0x61,0x6d,0x2d,0x32,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x35,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x4d,0x31,0x35,0x33,0x2e,0x38,0x34,0x36,0x20,0x30,0x48,0x30,0x6c,0x34,0x36,0x2e,0x31,0x35,0x34,0x20,0x31,0x35,0x33,0x2e,0x38,0x34,0x36,0x48,0x32,0x30,0x30,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x6f,0x67,0x72,0x61,0x6d,0x2d,0x33,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x35,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x31,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x4d,0x2e,0x30,0x37,0x37,0x20,0x34,0x37,0x2e,0x30,0x37,0x37,0x76,0x31,0x35,0x33,0x2e,0x38,0x34,0x36,0x6c,0x31,0x35,0x33,0x2e,0x38,0x34,0x36,0x2d,0x34,0x36,0x2e,0x31,0x35,0x34,0x56,0x2e,0x39,0x32,0x33,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x6f,0x67,0x72,0x61,0x6d,0x2d,0x34,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x35,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x31,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x4d,0x31,0x35,0x33,0x2e,0x39,0x32,0x33,0x20,0x34,0x37,0x2e,0x30,0x37,0x37,0x76,0x31,0x35,0x33,0x2e,0x38,0x34,0x36,0x4c,0x2e,0x30,0x37,0x37,0x20,0x31,0x35,0x34,0x2e,0x37,0x37,0x56,0x2e,0x39,0x32,0x33,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x65,0x6e,0x74,0x61,0x67,0x6f,0x6e,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x39,0x32,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x38,0x31,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x39,0x36,0x20,0x30,0x20,0x39,0x35,0x2e,0x31,0x30,0x36,0x20,0x36,0x39,0x2e,0x30,0x39,0x38,0x2d,0x33,0x36,0x2e,0x33,0x32,0x37,0x20,0x31,0x31,0x31,0x2e,0x38,0x30,0x34,0x48,0x33,0x37,0x2e,0x32,0x32,0x4c,0x2e,0x38,0x39,0x34,0x20,0x36,0x39,0x2e,0x30,0x39,0x38,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x32,0x30,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x4d,0x30,0x20,0x30,0x68,0x32,0x30,0x30,0x76,0x32,0x30,0x30,0x48,0x30,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x74,0x61,0x72,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x39,0x32,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x38,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x39,0x36,0x20,0x31,0x33,0x37,0x2e,0x32,0x36,0x33,0x2d,0x35,0x38,0x2e,0x37,0x37,0x39,0x20,0x34,0x32,0x2e,0x30,0x32,0x34,0x20,0x32,0x32,0x2e,0x31,0x36,0x33,0x2d,0x36,0x38,0x2e,0x33,0x38,0x39,0x4c,0x2e,0x38,0x39,0x34,0x20,0x36,0x38,0x2e,0x34,0x38,0x31,0x6c,0x37,0x32,0x2e,0x34,0x37,0x36,0x2d,0x2e,0x32,0x34,0x33,0x4c,0x39,0x36,0x20,0x30,0x6c,0x32,0x32,0x2e,0x36,0x33,0x20,0x36,0x38,0x2e,0x32,0x33,0x38,0x20,0x37,0x32,0x2e,0x34,0x37,0x36,0x2e,0x32,0x34,0x33,0x2d,0x35,0x38,0x2e,0x34,0x39,0x20,0x34,0x32,0x2e,0x34,0x31,0x37,0x20,0x32,0x32,0x2e,0x31,0x36,0x33,0x20,0x36,0x38,0x2e,0x33,0x38,0x39,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x74,0x61,0x72,0x2d,0x32,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x39,0x32,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x38,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x39,0x36,0x20,0x31,0x35,0x33,0x2e,0x30,0x34,0x34,0x2d,0x35,0x38,0x2e,0x37,0x37,0x39,0x20,0x32,0x36,0x2e,0x32,0x34,0x33,0x20,0x37,0x2e,0x30,0x32,0x2d,0x36,0x33,0x2e,0x35,0x31,0x33,0x4c,0x2e,0x38,0x39,0x34,0x20,0x36,0x38,0x2e,0x34,0x38,0x31,0x6c,0x36,0x33,0x2e,0x31,0x31,0x37,0x2d,0x31,0x33,0x2e,0x30,0x31,0x4c,0x39,0x36,0x20,0x30,0x6c,0x33,0x31,0x2e,0x39,0x38,0x39,0x20,0x35,0x35,0x2e,0x34,0x37,0x32,0x20,0x36,0x33,0x2e,0x31,0x31,0x37,0x20,0x31,0x33,0x2e,0x30,0x31,0x2d,0x34,0x33,0x2e,0x33,0x34,0x37,0x20,0x34,0x37,0x2e,0x32,0x39,0x32,0x20,0x37,0x2e,0x30,0x32,0x20,0x36,0x33,0x2e,0x35,0x31,0x33,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x37,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x34,0x39,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x38,0x37,0x20,0x31,0x34,0x38,0x2e,0x34,0x37,0x36,0x2d,0x38,0x36,0x2e,0x36,0x30,0x33,0x2e,0x31,0x38,0x35,0x4c,0x34,0x33,0x2e,0x38,0x36,0x20,0x37,0x34,0x2e,0x34,0x32,0x33,0x20,0x38,0x37,0x20,0x30,0x6c,0x34,0x33,0x2e,0x31,0x34,0x20,0x37,0x34,0x2e,0x34,0x32,0x33,0x20,0x34,0x33,0x2e,0x34,0x36,0x33,0x20,0x37,0x34,0x2e,0x32,0x33,0x38,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x32,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x37,0x34,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x35,0x30,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x38,0x37,0x20,0x2e,0x37,0x33,0x38,0x20,0x38,0x36,0x2e,0x36,0x30,0x33,0x2d,0x2e,0x31,0x38,0x34,0x2d,0x34,0x33,0x2e,0x34,0x36,0x33,0x20,0x37,0x34,0x2e,0x32,0x33,0x38,0x4c,0x38,0x37,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x34,0x20,0x34,0x33,0x2e,0x38,0x36,0x20,0x37,0x34,0x2e,0x37,0x39,0x32,0x2e,0x33,0x39,0x37,0x2e,0x35,0x35,0x34,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x33,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x35,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x37,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x6d,0x31,0x34,0x39,0x2e,0x33,0x36,0x39,0x20,0x38,0x37,0x2e,0x31,0x30,0x37,0x2e,0x31,0x38,0x35,0x20,0x38,0x36,0x2e,0x36,0x30,0x33,0x2d,0x37,0x34,0x2e,0x32,0x33,0x39,0x2d,0x34,0x33,0x2e,0x34,0x36,0x33,0x4c,0x2e,0x38,0x39,0x33,0x20,0x38,0x37,0x2e,0x31,0x30,0x37,0x6c,0x37,0x34,0x2e,0x34,0x32,0x32,0x2d,0x34,0x33,0x2e,0x31,0x34,0x4c,0x31,0x34,0x39,0x2e,0x35,0x35,0x34,0x2e,0x35,0x30,0x35,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x61,0x73,0x6b,0x2d,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x34,0x7b,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x75,0x72,0x6c,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x2c,0x25,0x33,0x63,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x27,0x31,0x35,0x30,0x27,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x27,0x31,0x37,0x34,0x27,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x27,0x25,0x33,0x65,0x25,0x33,0x63,0x70,0x61,0x74,0x68,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x20,0x64,0x3d,0x27,0x4d,0x2e,0x36,0x33,0x31,0x20,0x38,0x37,0x2e,0x31,0x30,0x37,0x2e,0x34,0x34,0x36,0x2e,0x35,0x30,0x35,0x6c,0x37,0x34,0x2e,0x32,0x33,0x39,0x20,0x34,0x33,0x2e,0x34,0x36,0x32,0x20,0x37,0x34,0x2e,0x34,0x32,0x32,0x20,0x34,0x33,0x2e,0x31,0x34,0x2d,0x37,0x34,0x2e,0x34,0x32,0x32,0x20,0x34,0x33,0x2e,0x31,0x34,0x4c,0x2e,0x34,0x34,0x36,0x20,0x31,0x37,0x33,0x2e,0x37,0x31,0x7a,0x27,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x3d,0x27,0x65,0x76,0x65,0x6e,0x6f,0x64,0x64,0x27,0x2f,0x25,0x33,0x65,0x25,0x33,0x63,0x2f,0x73,0x76,0x67,0x25,0x33,0x65,0x22,0x29,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x65,0x6d,0x70,0x74,0x79,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x31,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x20,0x31,0x72,0x65,0x6d,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x70,0x78,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x75,0x6c,0x29,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x75,0x6c,0x29,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x30,0x3b,0x74,0x6f,0x70,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x31,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x29,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x73,0x74,0x61,0x72,0x74,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x65,0x78,0x74,0x2d,0x77,0x72,0x61,0x70,0x3a,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x69,0x73,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x2c,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x2e,0x66,0x6f,0x63,0x75,0x73,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x2c,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x69,0x73,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x2c,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x2e,0x66,0x6f,0x63,0x75,0x73,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x2c,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x6c,0x69,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x29,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x31,0x29,0x29,0x7d,0x7d,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x75,0x6c,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x2e,0x62,0x74,0x6e,0x29,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x6c,0x69,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x33,0x29,0x29,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x29,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2d,0x6d,0x61,0x72,0x6b,0x65,0x72,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3e,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x65,0x6e,0x64,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x2d,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x34,0x35,0x64,0x65,0x67,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x37,0x35,0x25,0x20,0x37,0x35,0x25,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x32,0x70,0x78,0x20,0x32,0x70,0x78,0x3b,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3e,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x73,0x68,0x6f,0x77,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x6d,0x65,0x6e,0x75,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x6c,0x69,0x3e,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x3e,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x29,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x32,0x32,0x35,0x64,0x65,0x67,0x29,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x30,0x7d,0x2e,0x6d,0x65,0x6e,0x75,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x34,0x29,0x29,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x7b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x38,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x6c,0x74,0x72,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x33,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x31,0x2e,0x34,0x65,0x6d,0x20,0x30,0x2c,0x32,0x2e,0x38,0x65,0x6d,0x20,0x30,0x2c,0x34,0x2e,0x32,0x65,0x6d,0x20,0x30,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x20,0x70,0x72,0x65,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x20,0x70,0x72,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x32,0x63,0x68,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x63,0x6f,0x64,0x65,0x20,0x70,0x72,0x65,0x5b,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x5d,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x64,0x61,0x74,0x61,0x2d,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x35,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x66,0x6c,0x65,0x78,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x61,0x73,0x70,0x65,0x63,0x74,0x2d,0x72,0x61,0x74,0x69,0x6f,0x3a,0x31,0x2f,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x30,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x33,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2a,0x29,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x77,0x69,0x6e,0x64,0x6f,0x77,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x31,0x2e,0x34,0x65,0x6d,0x20,0x30,0x2c,0x32,0x2e,0x38,0x65,0x6d,0x20,0x30,0x2c,0x34,0x2e,0x32,0x65,0x6d,0x20,0x30,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x70,0x68,0x6f,0x6e,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x34,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x34,0x34,0x34,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x30,0x70,0x78,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x70,0x68,0x6f,0x6e,0x65,0x20,0x2e,0x63,0x61,0x6d,0x65,0x72,0x61,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x23,0x30,0x30,0x30,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x35,0x70,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x35,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x31,0x37,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x31,0x37,0x70,0x78,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x31,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x70,0x68,0x6f,0x6e,0x65,0x20,0x2e,0x63,0x61,0x6d,0x65,0x72,0x61,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x33,0x35,0x25,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x35,0x30,0x25,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x35,0x30,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x34,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x70,0x78,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x63,0x30,0x62,0x30,0x65,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x2d,0x35,0x30,0x25,0x2c,0x2d,0x35,0x30,0x25,0x29,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x70,0x68,0x6f,0x6e,0x65,0x20,0x2e,0x63,0x61,0x6d,0x65,0x72,0x61,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x32,0x30,0x25,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x37,0x30,0x25,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x38,0x70,0x78,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x38,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x35,0x70,0x78,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x66,0x30,0x62,0x32,0x35,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x70,0x68,0x6f,0x6e,0x65,0x20,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x34,0x30,0x70,0x78,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x2d,0x32,0x35,0x70,0x78,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x62,0x61,0x72,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x34,0x65,0x6d,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x62,0x61,0x72,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2a,0x29,0x7b,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x6f,0x77,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x62,0x61,0x72,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x34,0x2e,0x38,0x72,0x65,0x6d,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x61,0x73,0x70,0x65,0x63,0x74,0x2d,0x72,0x61,0x74,0x69,0x6f,0x3a,0x31,0x2f,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x33,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x31,0x2e,0x34,0x65,0x6d,0x20,0x30,0x2c,0x32,0x2e,0x38,0x65,0x6d,0x20,0x30,0x2c,0x34,0x2e,0x32,0x65,0x6d,0x20,0x30,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x62,0x61,0x72,0x20,0x2e,0x69,0x6e,0x70,0x75,0x74,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x34,0x72,0x65,0x6d,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x74,0x65,0x78,0x74,0x2d,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x65,0x6c,0x6c,0x69,0x70,0x73,0x69,0x73,0x3b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x6c,0x74,0x72,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x62,0x61,0x72,0x20,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x30,0x25,0x3b,0x61,0x73,0x70,0x65,0x63,0x74,0x2d,0x72,0x61,0x74,0x69,0x6f,0x3a,0x31,0x2f,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x3a,0x2d,0x35,0x30,0x25,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x36,0x7d,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2e,0x6d,0x6f,0x63,0x6b,0x75,0x70,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2d,0x74,0x6f,0x6f,0x6c,0x62,0x61,0x72,0x20,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x6c,0x65,0x66,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x30,0x25,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x3a,0x32,0x35,0x25,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x2d,0x34,0x35,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x36,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x3a,0x3a,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x3a,0x6e,0x6f,0x74,0x28,0x64,0x69,0x61,0x6c,0x6f,0x67,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x70,0x65,0x6e,0x29,0x29,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x30,0x30,0x30,0x36,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x70,0x6f,0x70,0x20,0x2e,0x32,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x2d,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x7b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x39,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x3b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x33,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x3a,0x2e,0x39,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x3a,0x2e,0x39,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x32,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x72,0x67,0x62,0x61,0x28,0x30,0x2c,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x35,0x29,0x20,0x30,0x20,0x32,0x35,0x70,0x78,0x20,0x35,0x30,0x70,0x78,0x20,0x2d,0x31,0x32,0x70,0x78,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x70,0x65,0x6e,0x20,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2b,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x20,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x3a,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x2c,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x20,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x3a,0x30,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x3a,0x31,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x7d,0x2e,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x7e,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x3a,0x30,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x63,0x61,0x6c,0x63,0x28,0x2e,0x35,0x72,0x65,0x6d,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x63,0x61,0x6c,0x63,0x28,0x2e,0x35,0x72,0x65,0x6d,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x70,0x6f,0x70,0x7b,0x30,0x25,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x7d,0x2e,0x6e,0x61,0x76,0x62,0x61,0x72,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x61,0x76,0x62,0x61,0x72,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x34,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x39,0x30,0x64,0x65,0x67,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2d,0x31,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x31,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x31,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x39,0x30,0x25,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x30,0x30,0x25,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x3a,0x31,0x35,0x25,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x7d,0x2e,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x62,0x61,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x39,0x30,0x64,0x65,0x67,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2d,0x31,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x31,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x31,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x39,0x30,0x25,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x30,0x30,0x25,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x3a,0x31,0x35,0x25,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2d,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x7b,0x35,0x30,0x25,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x3a,0x2d,0x31,0x31,0x35,0x25,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x76,0x61,0x6c,0x75,0x65,0x3a,0x30,0x3b,0x2d,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x69,0x7a,0x65,0x29,0x20,0x2f,0x20,0x31,0x30,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x61,0x64,0x69,0x6f,0x6d,0x61,0x72,0x6b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x2e,0x32,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x34,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x34,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x69,0x6e,0x66,0x6f,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x63,0x68,0x6b,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x65,0x72,0x72,0x6f,0x72,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x32,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x72,0x61,0x64,0x69,0x6f,0x6d,0x61,0x72,0x6b,0x7b,0x30,0x25,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x35,0x30,0x25,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x33,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x33,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x31,0x30,0x30,0x25,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x34,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x34,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x7d,0x2e,0x72,0x61,0x64,0x69,0x6f,0x2d,0x6d,0x61,0x72,0x6b,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x73,0x6c,0x69,0x64,0x65,0x72,0x2d,0x74,0x68,0x75,0x6d,0x62,0x7b,0x2d,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x36,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x72,0x65,0x6d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x74,0x68,0x75,0x6d,0x62,0x7b,0x2d,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x36,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x72,0x65,0x6d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x73,0x6c,0x69,0x64,0x65,0x72,0x2d,0x72,0x75,0x6e,0x6e,0x61,0x62,0x6c,0x65,0x2d,0x74,0x72,0x61,0x63,0x6b,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x74,0x72,0x61,0x63,0x6b,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x73,0x6c,0x69,0x64,0x65,0x72,0x2d,0x74,0x68,0x75,0x6d,0x62,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x30,0x25,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x35,0x30,0x25,0x29,0x3b,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x30,0x30,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x30,0x2e,0x36,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x33,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x29,0x2c,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x73,0x69,0x7a,0x65,0x29,0x20,0x2a,0x20,0x2d,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x29,0x20,0x30,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x73,0x69,0x7a,0x65,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3a,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x74,0x68,0x75,0x6d,0x62,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x74,0x6f,0x70,0x3a,0x35,0x30,0x25,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x29,0x3b,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x30,0x30,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x33,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x29,0x2c,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x73,0x69,0x7a,0x65,0x29,0x20,0x2a,0x20,0x2d,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x29,0x20,0x30,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x69,0x6c,0x6c,0x65,0x72,0x2d,0x73,0x69,0x7a,0x65,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x6e,0x67,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2d,0x73,0x68,0x64,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x70,0x75,0x74,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x61,0x74,0x69,0x6e,0x67,0x2d,0x70,0x6f,0x70,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x2e,0x32,0x35,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x2d,0x68,0x69,0x64,0x64,0x65,0x6e,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x61,0x64,0x69,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x69,0x6e,0x70,0x75,0x74,0x2c,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7e,0x69,0x6e,0x70,0x75,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x2e,0x34,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x2e,0x31,0x32,0x35,0x65,0x6d,0x29,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x2e,0x31,0x32,0x35,0x65,0x6d,0x29,0x7d,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x2d,0x68,0x61,0x6c,0x66,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x72,0x61,0x74,0x69,0x6e,0x67,0x2d,0x68,0x69,0x64,0x64,0x65,0x6e,0x29,0x29,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x72,0x61,0x74,0x69,0x6e,0x67,0x2d,0x70,0x6f,0x70,0x7b,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x2e,0x31,0x32,0x35,0x65,0x6d,0x29,0x7d,0x34,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x2e,0x31,0x32,0x35,0x65,0x6d,0x29,0x7d,0x31,0x30,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x30,0x29,0x7d,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x32,0x2e,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x34,0x35,0x64,0x65,0x67,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x35,0x30,0x25,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x35,0x30,0x25,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x31,0x33,0x35,0x64,0x65,0x67,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x35,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x35,0x30,0x25,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2d,0x20,0x32,0x30,0x70,0x78,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x70,0x78,0x20,0x2b,0x20,0x35,0x30,0x25,0x29,0x2c,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2d,0x20,0x31,0x36,0x2e,0x31,0x70,0x78,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x70,0x78,0x20,0x2b,0x20,0x35,0x30,0x25,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x34,0x70,0x78,0x20,0x34,0x70,0x78,0x2c,0x34,0x70,0x78,0x20,0x34,0x70,0x78,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x30,0x35,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x34,0x29,0x29,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x2c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x5b,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x5d,0x2c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x5b,0x73,0x69,0x7a,0x65,0x5d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x73,0x69,0x7a,0x65,0x3d,0x22,0x31,0x22,0x5d,0x29,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x61,0x6c,0x63,0x28,0x30,0x25,0x20,0x2b,0x20,0x31,0x32,0x70,0x78,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x70,0x78,0x20,0x2b,0x20,0x35,0x30,0x25,0x29,0x2c,0x63,0x61,0x6c,0x63,0x28,0x30,0x25,0x20,0x2b,0x20,0x31,0x36,0x70,0x78,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x70,0x78,0x20,0x2b,0x20,0x35,0x30,0x25,0x29,0x7d,0x2e,0x73,0x6b,0x65,0x6c,0x65,0x74,0x6f,0x6e,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x77,0x69,0x6c,0x6c,0x2d,0x63,0x68,0x61,0x6e,0x67,0x65,0x3a,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x6b,0x65,0x6c,0x65,0x74,0x6f,0x6e,0x20,0x31,0x2e,0x38,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x31,0x30,0x35,0x64,0x65,0x67,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x30,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x34,0x30,0x25,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x20,0x35,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x36,0x30,0x25,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x31,0x30,0x30,0x25,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x30,0x30,0x25,0x20,0x61,0x75,0x74,0x6f,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x3a,0x2d,0x35,0x30,0x25,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x2d,0x6d,0x6f,0x74,0x69,0x6f,0x6e,0x29,0x7b,0x2e,0x73,0x6b,0x65,0x6c,0x65,0x74,0x6f,0x6e,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x31,0x35,0x73,0x7d,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x73,0x6b,0x65,0x6c,0x65,0x74,0x6f,0x6e,0x7b,0x66,0x72,0x6f,0x6d,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x31,0x35,0x30,0x25,0x7d,0x74,0x6f,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x2d,0x35,0x30,0x25,0x7d,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x7b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3e,0x2a,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x36,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3e,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x32,0x29,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x38,0x7d,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3e,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x31,0x29,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x73,0x74,0x61,0x74,0x73,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x74,0x61,0x74,0x73,0x29,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x7e,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x31,0x70,0x78,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x31,0x70,0x78,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x30,0x70,0x78,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x30,0x70,0x78,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x74,0x61,0x74,0x73,0x29,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x73,0x74,0x61,0x74,0x73,0x3e,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x7e,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x3a,0x31,0x7d,0x2e,0x73,0x74,0x61,0x74,0x7b,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x67,0x61,0x70,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x74,0x69,0x74,0x6c,0x65,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x36,0x29,0x29,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x76,0x61,0x6c,0x75,0x65,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x32,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x38,0x30,0x30,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x64,0x65,0x73,0x63,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x36,0x29,0x29,0x7d,0x2e,0x73,0x74,0x61,0x74,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x7b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x3a,0x34,0x30,0x70,0x78,0x20,0x31,0x66,0x72,0x3b,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x61,0x75,0x74,0x6f,0x3b,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x34,0x72,0x65,0x6d,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x74,0x6f,0x70,0x3a,0x30,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x2d,0x31,0x30,0x30,0x25,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x28,0x73,0x74,0x65,0x70,0x29,0x3b,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2d,0x69,0x6e,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x73,0x74,0x65,0x70,0x3b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x31,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x67,0x72,0x69,0x64,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x72,0x65,0x6d,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x3a,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x39,0x39,0x39,0x39,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x5b,0x64,0x61,0x74,0x61,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x5d,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x61,0x74,0x74,0x72,0x28,0x64,0x61,0x74,0x61,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x69,0x6e,0x66,0x6f,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x65,0x72,0x72,0x6f,0x72,0x2b,0x2e,0x73,0x74,0x65,0x70,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x74,0x65,0x70,0x73,0x20,0x2e,0x73,0x74,0x65,0x70,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x61,0x66,0x74,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x73,0x77,0x61,0x70,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x7d,0x2e,0x73,0x77,0x61,0x70,0x3e,0x2a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x2e,0x33,0x73,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x2e,0x32,0x2c,0x31,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x34,0x35,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x2d,0x34,0x35,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x30,0x64,0x65,0x67,0x3b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x20,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x20,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x20,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x2d,0x33,0x64,0x3b,0x70,0x65,0x72,0x73,0x70,0x65,0x63,0x74,0x69,0x76,0x65,0x3a,0x31,0x36,0x65,0x6d,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x59,0x28,0x31,0x38,0x30,0x64,0x65,0x67,0x29,0x3b,0x62,0x61,0x63,0x6b,0x66,0x61,0x63,0x65,0x2d,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x29,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x66,0x66,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x59,0x28,0x2d,0x31,0x38,0x30,0x64,0x65,0x67,0x29,0x3b,0x62,0x61,0x63,0x6b,0x66,0x61,0x63,0x65,0x2d,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x68,0x69,0x64,0x64,0x65,0x6e,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x73,0x77,0x61,0x70,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x29,0x20,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x6f,0x6e,0x2c,0x2e,0x73,0x77,0x61,0x70,0x2d,0x66,0x6c,0x69,0x70,0x20,0x69,0x6e,0x70,0x75,0x74,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7e,0x2e,0x73,0x77,0x61,0x70,0x2d,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x6f,0x74,0x61,0x74,0x65,0x59,0x28,0x30,0x29,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x74,0x61,0x62,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x35,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x74,0x61,0x62,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x7d,0x2e,0x74,0x61,0x62,0x7b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x31,0x29,0x29,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x31,0x72,0x65,0x6d,0x29,0x7d,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x2c,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x2e,0x74,0x61,0x62,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x7d,0x2e,0x74,0x61,0x62,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x35,0x70,0x78,0x7d,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x74,0x61,0x62,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x74,0x61,0x62,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x2c,0x2e,0x74,0x61,0x62,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x20,0x2b,0x20,0x31,0x70,0x78,0x29,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x20,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x31,0x72,0x65,0x6d,0x29,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x31,0x72,0x65,0x6d,0x29,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x31,0x70,0x78,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x30,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x3a,0x31,0x3b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x22,0x22,0x3b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x63,0x61,0x6c,0x63,0x28,0x31,0x30,0x30,0x25,0x20,0x2b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x20,0x2a,0x20,0x32,0x29,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x2c,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3a,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x3a,0x63,0x61,0x6c,0x63,0x28,0x36,0x39,0x25,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x20,0x31,0x70,0x78,0x29,0x29,0x3b,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x3a,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x61,0x74,0x20,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x20,0x2b,0x20,0x30,0x2e,0x32,0x35,0x70,0x78,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x20,0x2b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x20,0x31,0x70,0x78,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x20,0x2b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x20,0x31,0x70,0x78,0x29,0x20,0x2b,0x20,0x30,0x2e,0x32,0x35,0x70,0x78,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x65,0x6e,0x64,0x3a,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x20,0x61,0x74,0x20,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x20,0x2b,0x20,0x30,0x2e,0x32,0x35,0x70,0x78,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x20,0x2b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x20,0x31,0x70,0x78,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x67,0x29,0x20,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x67,0x72,0x61,0x64,0x29,0x20,0x2b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x20,0x31,0x70,0x78,0x29,0x20,0x2b,0x20,0x30,0x2e,0x32,0x35,0x70,0x78,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x65,0x6e,0x64,0x29,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x65,0x6e,0x64,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x65,0x6e,0x64,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x2b,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x20,0x2e,0x74,0x61,0x62,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x3e,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x2b,0x2e,0x74,0x61,0x62,0x73,0x2d,0x6c,0x69,0x66,0x74,0x65,0x64,0x20,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x65,0x6e,0x64,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x78,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x78,0x65,0x64,0x20,0x2e,0x74,0x61,0x62,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x7d,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x78,0x65,0x64,0x20,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x78,0x65,0x64,0x20,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x78,0x65,0x64,0x20,0x3a,0x69,0x73,0x28,0x2e,0x74,0x61,0x62,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x5b,0x61,0x72,0x69,0x61,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x2e,0x74,0x61,0x62,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x74,0x61,0x62,0x73,0x2d,0x62,0x6f,0x78,0x65,0x64,0x20,0x3a,0x69,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x6c,0x65,0x66,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x2a,0x29,0x7b,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x72,0x69,0x67,0x68,0x74,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x74,0x68,0x2c,0x74,0x64,0x29,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x6d,0x69,0x64,0x64,0x6c,0x65,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x72,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x72,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x2c,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x62,0x6f,0x64,0x79,0x20,0x74,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x72,0x2e,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x72,0x2e,0x68,0x6f,0x76,0x65,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x72,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x72,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x2c,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x62,0x6f,0x64,0x79,0x20,0x74,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x29,0x7b,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x72,0x2e,0x68,0x6f,0x76,0x65,0x72,0x3a,0x68,0x6f,0x76,0x65,0x72,0x2c,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x7a,0x65,0x62,0x72,0x61,0x20,0x74,0x72,0x2e,0x68,0x6f,0x76,0x65,0x72,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x74,0x68,0x65,0x61,0x64,0x74,0x72,0x2c,0x74,0x62,0x6f,0x64,0x79,0x74,0x72,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x2c,0x74,0x62,0x6f,0x64,0x79,0x74,0x72,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x74,0x68,0x65,0x61,0x64,0x2c,0x74,0x66,0x6f,0x6f,0x74,0x29,0x7b,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x3a,0x6e,0x6f,0x77,0x72,0x61,0x70,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x2e,0x37,0x35,0x72,0x65,0x6d,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x37,0x30,0x30,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x36,0x29,0x29,0x7d,0x2e,0x74,0x61,0x62,0x6c,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x74,0x66,0x6f,0x6f,0x74,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x2c,0x2e,0x35,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x67,0x68,0x6f,0x73,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x30,0x35,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x67,0x68,0x6f,0x73,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x66,0x6f,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x65,0x72,0x72,0x6f,0x72,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x34,0x29,0x29,0x7d,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x2e,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x5b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x5d,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x32,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x20,0x68,0x72,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x2e,0x32,0x35,0x72,0x65,0x6d,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x68,0x72,0x29,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3a,0x68,0x61,0x73,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x29,0x68,0x72,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3a,0x68,0x61,0x73,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x29,0x68,0x72,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x68,0x61,0x73,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x29,0x29,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x68,0x72,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x68,0x61,0x73,0x28,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x29,0x29,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x68,0x72,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x2e,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6f,0x78,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x2c,0x31,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x35,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x3a,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x7d,0x2e,0x74,0x6f,0x61,0x73,0x74,0x7b,0x67,0x61,0x70,0x3a,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x72,0x65,0x6d,0x7d,0x2e,0x74,0x6f,0x61,0x73,0x74,0x3e,0x2a,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x6f,0x61,0x73,0x74,0x2d,0x70,0x6f,0x70,0x20,0x2e,0x32,0x35,0x73,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x7d,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x61,0x73,0x74,0x2d,0x70,0x6f,0x70,0x7b,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x2e,0x39,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x7d,0x31,0x30,0x30,0x25,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x63,0x61,0x6c,0x65,0x28,0x31,0x29,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x7d,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7b,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x6f,0x72,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2a,0x20,0x2d,0x31,0x29,0x3b,0x2d,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x68,0x61,0x6e,0x64,0x6c,0x65,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x30,0x20,0x30,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x77,0x69,0x64,0x74,0x68,0x3a,0x33,0x72,0x65,0x6d,0x3b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x2c,0x31,0x2e,0x39,0x72,0x65,0x6d,0x29,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x35,0x29,0x29,0x3b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2c,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2c,0x2e,0x32,0x73,0x29,0x20,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x6f,0x72,0x29,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x68,0x61,0x6e,0x64,0x6c,0x65,0x62,0x6f,0x72,0x64,0x65,0x72,0x29,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x7b,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x6f,0x72,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2a,0x20,0x31,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x32,0x70,0x78,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x68,0x6f,0x76,0x65,0x72,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x6f,0x72,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2a,0x20,0x2d,0x31,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x2f,0x20,0x32,0x29,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x2f,0x20,0x2d,0x32,0x29,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x5b,0x64,0x69,0x72,0x3d,0x72,0x74,0x6c,0x5d,0x20,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x2f,0x20,0x32,0x29,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x63,0x61,0x6c,0x63,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x2f,0x20,0x2d,0x32,0x29,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x67,0x6c,0x62,0x67,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x70,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x70,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x73,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x61,0x63,0x63,0x65,0x6e,0x74,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x73,0x75,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x73,0x75,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x77,0x61,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x77,0x61,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x69,0x6e,0x66,0x6f,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x69,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x69,0x6e,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x31,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x65,0x72,0x72,0x6f,0x72,0x5b,0x61,0x72,0x69,0x61,0x2d,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x74,0x72,0x75,0x65,0x5d,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x31,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x65,0x72,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x65,0x72,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x29,0x29,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x2e,0x33,0x3b,0x2d,0x2d,0x74,0x6f,0x67,0x67,0x6c,0x65,0x68,0x61,0x6e,0x64,0x6c,0x65,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x30,0x20,0x30,0x20,0x30,0x20,0x33,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x2c,0x76,0x61,0x72,0x28,0x2d,0x2d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x6f,0x66,0x66,0x73,0x65,0x74,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x6f,0x72,0x29,0x20,0x30,0x20,0x30,0x20,0x33,0x70,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x20,0x69,0x6e,0x73,0x65,0x74,0x7d,0x2e,0x74,0x6f,0x67,0x67,0x6c,0x65,0x2d,0x6d,0x61,0x72,0x6b,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x20,0x2e,0x70,0x72,0x6f,0x73,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x62,0x6f,0x64,0x79,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x38,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x6c,0x65,0x61,0x64,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x6c,0x69,0x6e,0x6b,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x62,0x6f,0x6c,0x64,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x62,0x75,0x6c,0x6c,0x65,0x74,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x35,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x68,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x32,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x71,0x75,0x6f,0x74,0x65,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x32,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x35,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x63,0x6f,0x64,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x70,0x72,0x65,0x2d,0x63,0x6f,0x64,0x65,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x63,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x70,0x72,0x65,0x2d,0x62,0x67,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x6e,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x6e,0x29,0x2f,0x31,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x74,0x68,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x35,0x29,0x29,0x3b,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x72,0x6f,0x73,0x65,0x2d,0x74,0x64,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x30,0x2e,0x32,0x29,0x29,0x7d,0x2e,0x70,0x72,0x6f,0x73,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2a,0x2c,0x70,0x72,0x65,0x2a,0x29,0x29,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x31,0x70,0x78,0x20,0x38,0x70,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x31,0x29,0x29,0x7d,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x30,0x25,0x20,0x30,0x20,0x30,0x29,0x29,0x7b,0x2e,0x70,0x72,0x6f,0x73,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2a,0x2c,0x70,0x72,0x65,0x2a,0x29,0x29,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x31,0x29,0x29,0x7d,0x7d,0x2e,0x70,0x72,0x6f,0x73,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2c,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2a,0x29,0x29,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x2e,0x70,0x72,0x6f,0x73,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2c,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2a,0x29,0x29,0x3a,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x2e,0x70,0x72,0x6f,0x73,0x65,0x20,0x70,0x72,0x65,0x20,0x63,0x6f,0x64,0x65,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x2e,0x70,0x72,0x6f,0x73,0x65,0x20,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x74,0x62,0x6f,0x64,0x79,0x74,0x72,0x2c,0x74,0x68,0x65,0x61,0x64,0x29,0x3a,0x6e,0x6f,0x74,0x28,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x63,0x6c,0x61,0x73,0x73,0x7e,0x3d,0x6e,0x6f,0x74,0x2d,0x70,0x72,0x6f,0x73,0x65,0x5d,0x2a,0x29,0x29,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x2e,0x32,0x29,0x29,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x39,0x2e,0x38,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x36,0x31,0x39,0x32,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x33,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x39,0x2e,0x31,0x32,0x25,0x20,0x30,0x2e,0x33,0x30,0x39,0x36,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x33,0x32,0x39,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x39,0x38,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x36,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x36,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x31,0x38,0x34,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x32,0x2e,0x31,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x37,0x36,0x20,0x32,0x35,0x35,0x2e,0x37,0x30,0x31,0x36,0x32,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x34,0x39,0x39,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x35,0x38,0x35,0x20,0x32,0x35,0x32,0x2e,0x30,0x39,0x36,0x31,0x37,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x36,0x2e,0x31,0x31,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x32,0x2e,0x34,0x31,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x38,0x20,0x31,0x39,0x37,0x2e,0x31,0x33,0x37,0x35,0x35,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x7d,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x29,0x7b,0x3a,0x72,0x6f,0x6f,0x74,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x33,0x2e,0x31,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x32,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x34,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x35,0x2e,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x39,0x36,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x32,0x36,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x36,0x37,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x31,0x2e,0x33,0x38,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x31,0x30,0x38,0x20,0x32,0x35,0x34,0x2e,0x31,0x33,0x39,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x37,0x34,0x2e,0x36,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x36,0x20,0x32,0x36,0x34,0x2e,0x34,0x33,0x35,0x39,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x35,0x2e,0x33,0x32,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x38,0x39,0x36,0x20,0x32,0x35,0x32,0x2e,0x34,0x31,0x37,0x35,0x36,0x38,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x33,0x2e,0x32,0x36,0x30,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x38,0x30,0x37,0x20,0x32,0x35,0x33,0x2e,0x31,0x30,0x30,0x36,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x31,0x2e,0x31,0x34,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x36,0x35,0x20,0x32,0x35,0x34,0x2e,0x30,0x38,0x37,0x39,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x34,0x2e,0x36,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x36,0x20,0x32,0x36,0x34,0x2e,0x34,0x33,0x35,0x39,0x36,0x34,0x7d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x6c,0x69,0x67,0x68,0x74,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x39,0x2e,0x38,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x36,0x31,0x39,0x32,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x33,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x39,0x2e,0x31,0x32,0x25,0x20,0x30,0x2e,0x33,0x30,0x39,0x36,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x33,0x32,0x39,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x39,0x38,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x36,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x36,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x31,0x38,0x34,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x32,0x2e,0x31,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x37,0x36,0x20,0x32,0x35,0x35,0x2e,0x37,0x30,0x31,0x36,0x32,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x34,0x39,0x39,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x35,0x38,0x35,0x20,0x32,0x35,0x32,0x2e,0x30,0x39,0x36,0x31,0x37,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x36,0x2e,0x31,0x31,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x32,0x2e,0x34,0x31,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x38,0x20,0x31,0x39,0x37,0x2e,0x31,0x33,0x37,0x35,0x35,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x69,0x67,0x68,0x74,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x39,0x2e,0x38,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x36,0x31,0x39,0x32,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x33,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x39,0x2e,0x31,0x32,0x25,0x20,0x30,0x2e,0x33,0x30,0x39,0x36,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x33,0x32,0x39,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x39,0x38,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x36,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x36,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x31,0x38,0x34,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x32,0x2e,0x31,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x37,0x36,0x20,0x32,0x35,0x35,0x2e,0x37,0x30,0x31,0x36,0x32,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x34,0x39,0x39,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x35,0x38,0x35,0x20,0x32,0x35,0x32,0x2e,0x30,0x39,0x36,0x31,0x37,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x36,0x2e,0x31,0x31,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x32,0x2e,0x34,0x31,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x38,0x20,0x31,0x39,0x37,0x2e,0x31,0x33,0x37,0x35,0x35,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x64,0x61,0x72,0x6b,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x33,0x2e,0x31,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x32,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x34,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x35,0x2e,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x39,0x36,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x32,0x36,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x36,0x37,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x31,0x2e,0x33,0x38,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x31,0x30,0x38,0x20,0x32,0x35,0x34,0x2e,0x31,0x33,0x39,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x37,0x34,0x2e,0x36,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x36,0x20,0x32,0x36,0x34,0x2e,0x34,0x33,0x35,0x39,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x35,0x2e,0x33,0x32,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x38,0x39,0x36,0x20,0x32,0x35,0x32,0x2e,0x34,0x31,0x37,0x35,0x36,0x38,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x33,0x2e,0x32,0x36,0x30,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x38,0x30,0x37,0x20,0x32,0x35,0x33,0x2e,0x31,0x30,0x30,0x36,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x31,0x2e,0x31,0x34,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x36,0x35,0x20,0x32,0x35,0x34,0x2e,0x30,0x38,0x37,0x39,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x34,0x2e,0x36,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x36,0x20,0x32,0x36,0x34,0x2e,0x34,0x33,0x35,0x39,0x36,0x34,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x64,0x61,0x72,0x6b,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x33,0x2e,0x31,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x32,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x34,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x35,0x2e,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x39,0x36,0x20,0x32,0x37,0x35,0x2e,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x32,0x36,0x20,0x33,0x34,0x32,0x2e,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x36,0x37,0x20,0x31,0x38,0x33,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x31,0x2e,0x33,0x38,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x31,0x30,0x38,0x20,0x32,0x35,0x34,0x2e,0x31,0x33,0x39,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x37,0x34,0x2e,0x36,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x36,0x20,0x32,0x36,0x34,0x2e,0x34,0x33,0x35,0x39,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x35,0x2e,0x33,0x32,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x38,0x39,0x36,0x20,0x32,0x35,0x32,0x2e,0x34,0x31,0x37,0x35,0x36,0x38,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x33,0x2e,0x32,0x36,0x30,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x38,0x30,0x37,0x20,0x32,0x35,0x33,0x2e,0x31,0x30,0x30,0x36,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x31,0x2e,0x31,0x34,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x36,0x35,0x20,0x32,0x35,0x34,0x2e,0x30,0x38,0x37,0x39,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x34,0x2e,0x36,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x36,0x20,0x32,0x36,0x34,0x2e,0x34,0x33,0x35,0x39,0x36,0x34,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x63,0x75,0x70,0x63,0x61,0x6b,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x32,0x33,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x38,0x39,0x32,0x20,0x32,0x30,0x30,0x2e,0x30,0x32,0x36,0x35,0x35,0x36,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x37,0x38,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x32,0x34,0x39,0x20,0x33,0x35,0x36,0x2e,0x32,0x39,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x38,0x37,0x36,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x32,0x30,0x36,0x20,0x37,0x38,0x2e,0x36,0x31,0x38,0x37,0x39,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x37,0x31,0x34,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x32,0x34,0x37,0x20,0x33,0x31,0x33,0x2e,0x31,0x38,0x39,0x35,0x39,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x36,0x2e,0x31,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x38,0x39,0x34,0x35,0x39,0x20,0x32,0x30,0x30,0x2e,0x30,0x32,0x36,0x35,0x35,0x36,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x38,0x2e,0x39,0x33,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x30,0x31,0x32,0x34,0x36,0x20,0x33,0x35,0x36,0x2e,0x32,0x39,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x39,0x2e,0x33,0x38,0x31,0x31,0x25,0x20,0x30,0x2e,0x31,0x34,0x36,0x30,0x33,0x32,0x20,0x37,0x38,0x2e,0x36,0x31,0x38,0x37,0x39,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x33,0x2e,0x35,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x36,0x32,0x33,0x35,0x20,0x33,0x31,0x33,0x2e,0x31,0x38,0x39,0x35,0x39,0x38,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x37,0x2e,0x37,0x38,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x31,0x38,0x20,0x35,0x36,0x2e,0x33,0x37,0x35,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x2e,0x39,0x38,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x36,0x33,0x38,0x20,0x36,0x31,0x2e,0x34,0x34,0x39,0x32,0x39,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x31,0x2e,0x35,0x38,0x36,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x38,0x31,0x31,0x20,0x35,0x33,0x2e,0x34,0x34,0x30,0x35,0x30,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x33,0x2e,0x35,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x36,0x32,0x33,0x35,0x20,0x33,0x31,0x33,0x2e,0x31,0x38,0x39,0x35,0x39,0x38,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x32,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x75,0x70,0x63,0x61,0x6b,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x32,0x33,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x38,0x39,0x32,0x20,0x32,0x30,0x30,0x2e,0x30,0x32,0x36,0x35,0x35,0x36,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x37,0x38,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x32,0x34,0x39,0x20,0x33,0x35,0x36,0x2e,0x32,0x39,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x38,0x37,0x36,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x32,0x30,0x36,0x20,0x37,0x38,0x2e,0x36,0x31,0x38,0x37,0x39,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x37,0x31,0x34,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x32,0x34,0x37,0x20,0x33,0x31,0x33,0x2e,0x31,0x38,0x39,0x35,0x39,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x36,0x2e,0x31,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x38,0x39,0x34,0x35,0x39,0x20,0x32,0x30,0x30,0x2e,0x30,0x32,0x36,0x35,0x35,0x36,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x38,0x2e,0x39,0x33,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x30,0x31,0x32,0x34,0x36,0x20,0x33,0x35,0x36,0x2e,0x32,0x39,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x39,0x2e,0x33,0x38,0x31,0x31,0x25,0x20,0x30,0x2e,0x31,0x34,0x36,0x30,0x33,0x32,0x20,0x37,0x38,0x2e,0x36,0x31,0x38,0x37,0x39,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x33,0x2e,0x35,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x36,0x32,0x33,0x35,0x20,0x33,0x31,0x33,0x2e,0x31,0x38,0x39,0x35,0x39,0x38,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x37,0x2e,0x37,0x38,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x31,0x38,0x20,0x35,0x36,0x2e,0x33,0x37,0x35,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x2e,0x39,0x38,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x36,0x33,0x38,0x20,0x36,0x31,0x2e,0x34,0x34,0x39,0x32,0x39,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x31,0x2e,0x35,0x38,0x36,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x38,0x31,0x31,0x20,0x35,0x33,0x2e,0x34,0x34,0x30,0x35,0x30,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x33,0x2e,0x35,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x36,0x32,0x33,0x35,0x20,0x33,0x31,0x33,0x2e,0x31,0x38,0x39,0x35,0x39,0x38,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x32,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x62,0x75,0x6d,0x62,0x6c,0x65,0x62,0x65,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x36,0x2e,0x32,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x20,0x35,0x36,0x2e,0x35,0x32,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x32,0x2e,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x20,0x32,0x38,0x31,0x2e,0x39,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x39,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x32,0x31,0x33,0x32,0x20,0x39,0x36,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x33,0x38,0x2e,0x39,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x36,0x20,0x39,0x36,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x30,0x2e,0x33,0x39,0x25,0x20,0x30,0x2e,0x31,0x39,0x34,0x20,0x37,0x30,0x2e,0x37,0x36,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x33,0x39,0x2e,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x36,0x38,0x20,0x37,0x30,0x2e,0x37,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x31,0x2e,0x32,0x37,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x20,0x35,0x36,0x2e,0x35,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x31,0x32,0x2e,0x37,0x35,0x25,0x20,0x30,0x2e,0x30,0x37,0x35,0x20,0x32,0x38,0x31,0x2e,0x39,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x62,0x75,0x6d,0x62,0x6c,0x65,0x62,0x65,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x36,0x2e,0x32,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x20,0x35,0x36,0x2e,0x35,0x32,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x32,0x2e,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x20,0x32,0x38,0x31,0x2e,0x39,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x39,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x32,0x31,0x33,0x32,0x20,0x39,0x36,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x33,0x38,0x2e,0x39,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x36,0x20,0x39,0x36,0x2e,0x36,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x30,0x2e,0x33,0x39,0x25,0x20,0x30,0x2e,0x31,0x39,0x34,0x20,0x37,0x30,0x2e,0x37,0x36,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x33,0x39,0x2e,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x36,0x38,0x20,0x37,0x30,0x2e,0x37,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x31,0x2e,0x32,0x37,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x20,0x35,0x36,0x2e,0x35,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x31,0x32,0x2e,0x37,0x35,0x25,0x20,0x30,0x2e,0x30,0x37,0x35,0x20,0x32,0x38,0x31,0x2e,0x39,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x65,0x6d,0x65,0x72,0x61,0x6c,0x64,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x36,0x2e,0x36,0x36,0x32,0x36,0x25,0x20,0x30,0x2e,0x31,0x33,0x35,0x34,0x33,0x33,0x20,0x31,0x35,0x33,0x2e,0x34,0x35,0x30,0x30,0x32,0x34,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x33,0x33,0x2e,0x33,0x38,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x36,0x31,0x38,0x20,0x31,0x36,0x32,0x2e,0x32,0x34,0x30,0x31,0x32,0x39,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x31,0x2e,0x33,0x30,0x32,0x38,0x25,0x20,0x30,0x2e,0x32,0x30,0x32,0x33,0x36,0x38,0x20,0x32,0x36,0x31,0x2e,0x32,0x39,0x34,0x32,0x33,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x32,0x2e,0x37,0x37,0x32,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x39,0x37,0x38,0x33,0x20,0x33,0x33,0x2e,0x32,0x30,0x30,0x33,0x36,0x33,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x35,0x2e,0x35,0x31,0x39,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x30,0x37,0x31,0x20,0x32,0x36,0x32,0x2e,0x39,0x38,0x38,0x35,0x38,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x38,0x2e,0x34,0x36,0x32,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x37,0x30,0x36,0x20,0x32,0x34,0x37,0x2e,0x38,0x33,0x38,0x39,0x32,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x33,0x35,0x2e,0x35,0x31,0x39,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x30,0x37,0x31,0x20,0x32,0x36,0x32,0x2e,0x39,0x38,0x38,0x35,0x38,0x34,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x6d,0x65,0x72,0x61,0x6c,0x64,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x36,0x2e,0x36,0x36,0x32,0x36,0x25,0x20,0x30,0x2e,0x31,0x33,0x35,0x34,0x33,0x33,0x20,0x31,0x35,0x33,0x2e,0x34,0x35,0x30,0x30,0x32,0x34,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x33,0x33,0x2e,0x33,0x38,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x36,0x31,0x38,0x20,0x31,0x36,0x32,0x2e,0x32,0x34,0x30,0x31,0x32,0x39,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x31,0x2e,0x33,0x30,0x32,0x38,0x25,0x20,0x30,0x2e,0x32,0x30,0x32,0x33,0x36,0x38,0x20,0x32,0x36,0x31,0x2e,0x32,0x39,0x34,0x32,0x33,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x32,0x2e,0x37,0x37,0x32,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x39,0x37,0x38,0x33,0x20,0x33,0x33,0x2e,0x32,0x30,0x30,0x33,0x36,0x33,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x35,0x2e,0x35,0x31,0x39,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x30,0x37,0x31,0x20,0x32,0x36,0x32,0x2e,0x39,0x38,0x38,0x35,0x38,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x38,0x2e,0x34,0x36,0x32,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x37,0x30,0x36,0x20,0x32,0x34,0x37,0x2e,0x38,0x33,0x38,0x39,0x32,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x33,0x35,0x2e,0x35,0x31,0x39,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x30,0x37,0x31,0x20,0x32,0x36,0x32,0x2e,0x39,0x38,0x38,0x35,0x38,0x34,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x63,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x32,0x2e,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x34,0x35,0x36,0x20,0x32,0x36,0x39,0x2e,0x31,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x30,0x37,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x39,0x35,0x31,0x20,0x32,0x35,0x36,0x2e,0x36,0x38,0x38,0x30,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x33,0x39,0x33,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x37,0x39,0x39,0x20,0x31,0x36,0x33,0x2e,0x35,0x37,0x38,0x38,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x30,0x2e,0x33,0x39,0x25,0x20,0x30,0x2e,0x32,0x32,0x38,0x20,0x32,0x36,0x39,0x2e,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x35,0x2e,0x33,0x36,0x39,0x34,0x25,0x20,0x30,0x2e,0x30,0x35,0x34,0x37,0x35,0x36,0x20,0x32,0x35,0x36,0x2e,0x36,0x38,0x38,0x30,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x36,0x2e,0x39,0x36,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x31,0x33,0x39,0x39,0x34,0x20,0x31,0x36,0x33,0x2e,0x35,0x37,0x38,0x38,0x38,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x32,0x2e,0x33,0x38,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x30,0x35,0x20,0x32,0x37,0x38,0x2e,0x30,0x37,0x32,0x32,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x35,0x2e,0x38,0x37,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x35,0x38,0x38,0x20,0x32,0x34,0x37,0x2e,0x39,0x31,0x35,0x31,0x33,0x35,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x32,0x2e,0x33,0x38,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x30,0x35,0x20,0x32,0x37,0x38,0x2e,0x30,0x37,0x32,0x32,0x39,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x32,0x2e,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x34,0x35,0x36,0x20,0x32,0x36,0x39,0x2e,0x31,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x30,0x37,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x39,0x35,0x31,0x20,0x32,0x35,0x36,0x2e,0x36,0x38,0x38,0x30,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x33,0x39,0x33,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x37,0x39,0x39,0x20,0x31,0x36,0x33,0x2e,0x35,0x37,0x38,0x38,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x30,0x2e,0x33,0x39,0x25,0x20,0x30,0x2e,0x32,0x32,0x38,0x20,0x32,0x36,0x39,0x2e,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x35,0x2e,0x33,0x36,0x39,0x34,0x25,0x20,0x30,0x2e,0x30,0x35,0x34,0x37,0x35,0x36,0x20,0x32,0x35,0x36,0x2e,0x36,0x38,0x38,0x30,0x35,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x36,0x2e,0x39,0x36,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x31,0x33,0x39,0x39,0x34,0x20,0x31,0x36,0x33,0x2e,0x35,0x37,0x38,0x38,0x38,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x32,0x2e,0x33,0x38,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x30,0x35,0x20,0x32,0x37,0x38,0x2e,0x30,0x37,0x32,0x32,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x35,0x2e,0x38,0x37,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x35,0x38,0x38,0x20,0x32,0x34,0x37,0x2e,0x39,0x31,0x35,0x31,0x33,0x35,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x32,0x2e,0x33,0x38,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x30,0x35,0x20,0x32,0x37,0x38,0x2e,0x30,0x37,0x32,0x32,0x39,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x73,0x79,0x6e,0x74,0x68,0x77,0x61,0x76,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x2e,0x32,0x39,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x37,0x36,0x32,0x31,0x31,0x20,0x32,0x38,0x37,0x2e,0x38,0x33,0x35,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x38,0x2e,0x37,0x36,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x37,0x30,0x34,0x37,0x35,0x20,0x32,0x38,0x37,0x2e,0x38,0x33,0x35,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x34,0x34,0x32,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x39,0x30,0x33,0x20,0x33,0x34,0x32,0x2e,0x30,0x30,0x39,0x33,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x36,0x32,0x20,0x32,0x32,0x37,0x2e,0x33,0x38,0x32,0x34,0x30,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x37,0x2e,0x36,0x30,0x38,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x32,0x20,0x39,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x32,0x2e,0x32,0x31,0x30,0x35,0x25,0x20,0x30,0x2e,0x31,0x35,0x39,0x35,0x31,0x34,0x20,0x33,0x34,0x32,0x2e,0x30,0x30,0x39,0x33,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x38,0x2e,0x32,0x37,0x31,0x34,0x25,0x20,0x30,0x2e,0x31,0x31,0x38,0x31,0x30,0x31,0x20,0x32,0x32,0x37,0x2e,0x33,0x38,0x32,0x34,0x30,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x38,0x2e,0x30,0x34,0x25,0x20,0x30,0x2e,0x32,0x30,0x36,0x20,0x39,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x35,0x2e,0x35,0x35,0x35,0x34,0x25,0x20,0x30,0x2e,0x31,0x30,0x33,0x35,0x33,0x37,0x20,0x32,0x38,0x36,0x2e,0x35,0x30,0x37,0x39,0x36,0x37,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x37,0x2e,0x39,0x33,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x31,0x39,0x20,0x33,0x30,0x31,0x2e,0x33,0x35,0x38,0x33,0x34,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x31,0x2e,0x38,0x32,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x38,0x31,0x39,0x34,0x38,0x20,0x32,0x38,0x37,0x2e,0x38,0x33,0x35,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x39,0x37,0x2e,0x39,0x33,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x31,0x39,0x20,0x33,0x30,0x31,0x2e,0x33,0x35,0x38,0x33,0x34,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x36,0x2e,0x35,0x31,0x39,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x32,0x37,0x33,0x20,0x32,0x33,0x31,0x2e,0x38,0x33,0x31,0x36,0x30,0x33,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x36,0x2e,0x30,0x35,0x37,0x32,0x25,0x20,0x30,0x2e,0x31,0x31,0x35,0x30,0x33,0x38,0x20,0x31,0x37,0x38,0x2e,0x36,0x32,0x34,0x36,0x37,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x35,0x2e,0x35,0x33,0x31,0x25,0x20,0x30,0x2e,0x31,0x32,0x32,0x31,0x31,0x37,0x20,0x39,0x33,0x2e,0x37,0x32,0x32,0x32,0x32,0x37,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x37,0x30,0x30,0x35,0x25,0x20,0x30,0x2e,0x31,0x32,0x31,0x33,0x33,0x39,0x20,0x33,0x32,0x2e,0x36,0x33,0x39,0x32,0x35,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x73,0x79,0x6e,0x74,0x68,0x77,0x61,0x76,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x2e,0x32,0x39,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x37,0x36,0x32,0x31,0x31,0x20,0x32,0x38,0x37,0x2e,0x38,0x33,0x35,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x38,0x2e,0x37,0x36,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x37,0x30,0x34,0x37,0x35,0x20,0x32,0x38,0x37,0x2e,0x38,0x33,0x35,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x34,0x34,0x32,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x39,0x30,0x33,0x20,0x33,0x34,0x32,0x2e,0x30,0x30,0x39,0x33,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x36,0x32,0x20,0x32,0x32,0x37,0x2e,0x33,0x38,0x32,0x34,0x30,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x37,0x2e,0x36,0x30,0x38,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x32,0x20,0x39,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x32,0x2e,0x32,0x31,0x30,0x35,0x25,0x20,0x30,0x2e,0x31,0x35,0x39,0x35,0x31,0x34,0x20,0x33,0x34,0x32,0x2e,0x30,0x30,0x39,0x33,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x38,0x2e,0x32,0x37,0x31,0x34,0x25,0x20,0x30,0x2e,0x31,0x31,0x38,0x31,0x30,0x31,0x20,0x32,0x32,0x37,0x2e,0x33,0x38,0x32,0x34,0x30,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x38,0x2e,0x30,0x34,0x25,0x20,0x30,0x2e,0x32,0x30,0x36,0x20,0x39,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x35,0x2e,0x35,0x35,0x35,0x34,0x25,0x20,0x30,0x2e,0x31,0x30,0x33,0x35,0x33,0x37,0x20,0x32,0x38,0x36,0x2e,0x35,0x30,0x37,0x39,0x36,0x37,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x37,0x2e,0x39,0x33,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x31,0x39,0x20,0x33,0x30,0x31,0x2e,0x33,0x35,0x38,0x33,0x34,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x31,0x2e,0x38,0x32,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x38,0x31,0x39,0x34,0x38,0x20,0x32,0x38,0x37,0x2e,0x38,0x33,0x35,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x39,0x37,0x2e,0x39,0x33,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x31,0x39,0x20,0x33,0x30,0x31,0x2e,0x33,0x35,0x38,0x33,0x34,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x36,0x2e,0x35,0x31,0x39,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x32,0x37,0x33,0x20,0x32,0x33,0x31,0x2e,0x38,0x33,0x31,0x36,0x30,0x33,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x36,0x2e,0x30,0x35,0x37,0x32,0x25,0x20,0x30,0x2e,0x31,0x31,0x35,0x30,0x33,0x38,0x20,0x31,0x37,0x38,0x2e,0x36,0x32,0x34,0x36,0x37,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x35,0x2e,0x35,0x33,0x31,0x25,0x20,0x30,0x2e,0x31,0x32,0x32,0x31,0x31,0x37,0x20,0x39,0x33,0x2e,0x37,0x32,0x32,0x32,0x32,0x37,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x37,0x30,0x30,0x35,0x25,0x20,0x30,0x2e,0x31,0x32,0x31,0x33,0x33,0x39,0x20,0x33,0x32,0x2e,0x36,0x33,0x39,0x32,0x35,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x32,0x33,0x2e,0x35,0x30,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x36,0x34,0x31,0x38,0x20,0x32,0x39,0x30,0x2e,0x33,0x32,0x39,0x38,0x34,0x34,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x72,0x65,0x74,0x72,0x6f,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x33,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x36,0x2e,0x38,0x36,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x30,0x34,0x30,0x39,0x32,0x20,0x32,0x32,0x2e,0x36,0x36,0x34,0x36,0x35,0x35,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x30,0x2e,0x37,0x34,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x35,0x33,0x34,0x20,0x31,0x35,0x39,0x2e,0x30,0x39,0x34,0x36,0x30,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x30,0x2e,0x33,0x39,0x31,0x39,0x25,0x20,0x30,0x2e,0x31,0x32,0x35,0x34,0x35,0x35,0x20,0x35,0x32,0x2e,0x39,0x35,0x33,0x34,0x32,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x38,0x2e,0x34,0x31,0x38,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x35,0x31,0x39,0x20,0x33,0x35,0x35,0x2e,0x35,0x33,0x34,0x30,0x31,0x37,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x32,0x2e,0x35,0x36,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x31,0x31,0x33,0x20,0x38,0x39,0x2e,0x32,0x31,0x37,0x33,0x31,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x31,0x2e,0x36,0x33,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x35,0x35,0x34,0x20,0x39,0x30,0x2e,0x35,0x31,0x35,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x38,0x2e,0x32,0x37,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x34,0x31,0x38,0x20,0x39,0x31,0x2e,0x37,0x37,0x34,0x33,0x34,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x34,0x2e,0x31,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x35,0x39,0x35,0x32,0x20,0x39,0x30,0x2e,0x38,0x35,0x36,0x36,0x36,0x35,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x35,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x72,0x65,0x74,0x72,0x6f,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x33,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x36,0x2e,0x38,0x36,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x30,0x34,0x30,0x39,0x32,0x20,0x32,0x32,0x2e,0x36,0x36,0x34,0x36,0x35,0x35,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x30,0x2e,0x37,0x34,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x35,0x33,0x34,0x20,0x31,0x35,0x39,0x2e,0x30,0x39,0x34,0x36,0x30,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x30,0x2e,0x33,0x39,0x31,0x39,0x25,0x20,0x30,0x2e,0x31,0x32,0x35,0x34,0x35,0x35,0x20,0x35,0x32,0x2e,0x39,0x35,0x33,0x34,0x32,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x38,0x2e,0x34,0x31,0x38,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x35,0x31,0x39,0x20,0x33,0x35,0x35,0x2e,0x35,0x33,0x34,0x30,0x31,0x37,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x32,0x2e,0x35,0x36,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x31,0x31,0x33,0x20,0x38,0x39,0x2e,0x32,0x31,0x37,0x33,0x31,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x31,0x2e,0x36,0x33,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x35,0x35,0x34,0x20,0x39,0x30,0x2e,0x35,0x31,0x35,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x38,0x2e,0x32,0x37,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x34,0x31,0x38,0x20,0x39,0x31,0x2e,0x37,0x37,0x34,0x33,0x34,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x34,0x2e,0x31,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x35,0x39,0x35,0x32,0x20,0x39,0x30,0x2e,0x38,0x35,0x36,0x36,0x36,0x35,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x36,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x32,0x34,0x33,0x20,0x30,0x2e,0x35,0x32,0x32,0x38,0x36,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x35,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x63,0x79,0x62,0x65,0x72,0x70,0x75,0x6e,0x6b,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x37,0x2e,0x38,0x39,0x34,0x33,0x25,0x20,0x30,0x2e,0x31,0x36,0x36,0x34,0x37,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x31,0x2e,0x32,0x37,0x38,0x36,0x25,0x20,0x30,0x2e,0x31,0x35,0x33,0x39,0x34,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x38,0x2e,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x38,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x38,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x38,0x20,0x36,0x2e,0x33,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x36,0x2e,0x36,0x36,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x20,0x32,0x30,0x34,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x33,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x35,0x32,0x20,0x33,0x31,0x30,0x2e,0x34,0x33,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x75,0x69,0x2d,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x2c,0x53,0x46,0x4d,0x6f,0x6e,0x6f,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x2c,0x4d,0x65,0x6e,0x6c,0x6f,0x2c,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x61,0x73,0x2c,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x2c,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x34,0x2e,0x32,0x32,0x25,0x20,0x30,0x2e,0x32,0x30,0x39,0x20,0x36,0x2e,0x33,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x33,0x2e,0x33,0x33,0x25,0x20,0x30,0x2e,0x31,0x38,0x34,0x20,0x32,0x30,0x34,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x31,0x2e,0x38,0x36,0x25,0x20,0x30,0x2e,0x32,0x31,0x37,0x36,0x20,0x33,0x31,0x30,0x2e,0x34,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x33,0x2e,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x36,0x35,0x20,0x32,0x36,0x39,0x2e,0x33,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x37,0x39,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x37,0x39,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x79,0x62,0x65,0x72,0x70,0x75,0x6e,0x6b,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x37,0x2e,0x38,0x39,0x34,0x33,0x25,0x20,0x30,0x2e,0x31,0x36,0x36,0x34,0x37,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x31,0x2e,0x32,0x37,0x38,0x36,0x25,0x20,0x30,0x2e,0x31,0x35,0x33,0x39,0x34,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x38,0x2e,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x38,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x38,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x38,0x20,0x36,0x2e,0x33,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x36,0x2e,0x36,0x36,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x20,0x32,0x30,0x34,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x33,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x35,0x32,0x20,0x33,0x31,0x30,0x2e,0x34,0x33,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x75,0x69,0x2d,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x2c,0x53,0x46,0x4d,0x6f,0x6e,0x6f,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x2c,0x4d,0x65,0x6e,0x6c,0x6f,0x2c,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x61,0x73,0x2c,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x2c,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x2c,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x34,0x2e,0x32,0x32,0x25,0x20,0x30,0x2e,0x32,0x30,0x39,0x20,0x36,0x2e,0x33,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x33,0x2e,0x33,0x33,0x25,0x20,0x30,0x2e,0x31,0x38,0x34,0x20,0x32,0x30,0x34,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x31,0x2e,0x38,0x36,0x25,0x20,0x30,0x2e,0x32,0x31,0x37,0x36,0x20,0x33,0x31,0x30,0x2e,0x34,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x33,0x2e,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x36,0x35,0x20,0x32,0x36,0x39,0x2e,0x33,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x37,0x39,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x34,0x2e,0x35,0x31,0x25,0x20,0x30,0x2e,0x31,0x37,0x39,0x20,0x31,0x30,0x34,0x2e,0x33,0x32,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x76,0x61,0x6c,0x65,0x6e,0x74,0x69,0x6e,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x38,0x2e,0x30,0x35,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x38,0x33,0x34,0x20,0x33,0x33,0x37,0x2e,0x30,0x36,0x32,0x38,0x39,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x31,0x2e,0x34,0x32,0x38,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x39,0x36,0x34,0x20,0x33,0x33,0x37,0x2e,0x30,0x36,0x32,0x38,0x39,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x33,0x2e,0x37,0x32,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x30,0x37,0x35,0x35,0x20,0x31,0x35,0x2e,0x30,0x36,0x36,0x35,0x32,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x33,0x39,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x32,0x35,0x38,0x20,0x32,0x39,0x33,0x2e,0x31,0x38,0x39,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x32,0x35,0x33,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x39,0x36,0x31,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x38,0x38,0x35,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x36,0x31,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x34,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x38,0x2e,0x36,0x31,0x39,0x37,0x25,0x20,0x30,0x2e,0x31,0x35,0x33,0x37,0x37,0x34,0x20,0x31,0x35,0x2e,0x30,0x36,0x36,0x35,0x32,0x37,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x31,0x2e,0x39,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x34,0x36,0x32,0x39,0x20,0x32,0x39,0x33,0x2e,0x31,0x38,0x39,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x31,0x2e,0x32,0x36,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x37,0x34,0x38,0x30,0x34,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x38,0x38,0x35,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x30,0x35,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x33,0x33,0x34,0x32,0x20,0x33,0x35,0x38,0x2e,0x30,0x30,0x34,0x38,0x33,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x32,0x37,0x30,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x32,0x30,0x32,0x20,0x33,0x33,0x36,0x2e,0x39,0x35,0x35,0x31,0x39,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x34,0x2e,0x36,0x38,0x34,0x36,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x37,0x30,0x33,0x20,0x33,0x33,0x37,0x2e,0x30,0x36,0x32,0x38,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x33,0x37,0x2e,0x33,0x30,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x38,0x31,0x31,0x33,0x31,0x20,0x34,0x2e,0x36,0x30,0x36,0x34,0x32,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x30,0x37,0x25,0x20,0x30,0x2e,0x32,0x30,0x37,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x76,0x61,0x6c,0x65,0x6e,0x74,0x69,0x6e,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x38,0x2e,0x30,0x35,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x38,0x33,0x34,0x20,0x33,0x33,0x37,0x2e,0x30,0x36,0x32,0x38,0x39,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x31,0x2e,0x34,0x32,0x38,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x39,0x36,0x34,0x20,0x33,0x33,0x37,0x2e,0x30,0x36,0x32,0x38,0x39,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x33,0x2e,0x37,0x32,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x30,0x37,0x35,0x35,0x20,0x31,0x35,0x2e,0x30,0x36,0x36,0x35,0x32,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x33,0x39,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x32,0x35,0x38,0x20,0x32,0x39,0x33,0x2e,0x31,0x38,0x39,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x32,0x35,0x33,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x39,0x36,0x31,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x38,0x38,0x35,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x36,0x31,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x34,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x38,0x2e,0x36,0x31,0x39,0x37,0x25,0x20,0x30,0x2e,0x31,0x35,0x33,0x37,0x37,0x34,0x20,0x31,0x35,0x2e,0x30,0x36,0x36,0x35,0x32,0x37,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x31,0x2e,0x39,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x34,0x36,0x32,0x39,0x20,0x32,0x39,0x33,0x2e,0x31,0x38,0x39,0x36,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x31,0x2e,0x32,0x36,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x37,0x34,0x38,0x30,0x34,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x38,0x38,0x35,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x30,0x35,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x33,0x33,0x34,0x32,0x20,0x33,0x35,0x38,0x2e,0x30,0x30,0x34,0x38,0x33,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x32,0x37,0x30,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x32,0x30,0x32,0x20,0x33,0x33,0x36,0x2e,0x39,0x35,0x35,0x31,0x39,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x34,0x2e,0x36,0x38,0x34,0x36,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x37,0x30,0x33,0x20,0x33,0x33,0x37,0x2e,0x30,0x36,0x32,0x38,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x33,0x37,0x2e,0x33,0x30,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x38,0x31,0x31,0x33,0x31,0x20,0x34,0x2e,0x36,0x30,0x36,0x34,0x32,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x30,0x37,0x25,0x20,0x30,0x2e,0x32,0x30,0x37,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x65,0x6e,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x33,0x2e,0x30,0x34,0x31,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x31,0x2e,0x33,0x30,0x37,0x32,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x34,0x2e,0x39,0x35,0x35,0x32,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x39,0x2e,0x31,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x36,0x20,0x33,0x30,0x35,0x2e,0x30,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x38,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x33,0x32,0x32,0x20,0x36,0x35,0x2e,0x36,0x38,0x31,0x34,0x38,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x33,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x37,0x2e,0x34,0x38,0x25,0x20,0x30,0x2e,0x32,0x30,0x34,0x20,0x36,0x30,0x2e,0x36,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x39,0x2e,0x36,0x39,0x33,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x36,0x37,0x31,0x20,0x31,0x39,0x36,0x2e,0x37,0x37,0x39,0x34,0x31,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x34,0x35,0x2e,0x39,0x38,0x25,0x20,0x30,0x2e,0x32,0x34,0x38,0x20,0x33,0x30,0x35,0x2e,0x30,0x33,0x3b,0x2d,0x2d,0x61,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x32,0x32,0x33,0x20,0x31,0x33,0x36,0x2e,0x30,0x37,0x33,0x34,0x37,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x33,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x34,0x36,0x36,0x30,0x38,0x20,0x36,0x35,0x2e,0x36,0x38,0x31,0x34,0x38,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x34,0x2e,0x37,0x37,0x35,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x35,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x32,0x37,0x2e,0x33,0x33,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x65,0x6e,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x33,0x2e,0x30,0x34,0x31,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x31,0x2e,0x33,0x30,0x37,0x32,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x34,0x2e,0x39,0x35,0x35,0x32,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x39,0x2e,0x31,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x36,0x20,0x33,0x30,0x35,0x2e,0x30,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x38,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x33,0x32,0x32,0x20,0x36,0x35,0x2e,0x36,0x38,0x31,0x34,0x38,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x33,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x37,0x2e,0x34,0x38,0x25,0x20,0x30,0x2e,0x32,0x30,0x34,0x20,0x36,0x30,0x2e,0x36,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x39,0x2e,0x36,0x39,0x33,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x36,0x37,0x31,0x20,0x31,0x39,0x36,0x2e,0x37,0x37,0x39,0x34,0x31,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x34,0x35,0x2e,0x39,0x38,0x25,0x20,0x30,0x2e,0x32,0x34,0x38,0x20,0x33,0x30,0x35,0x2e,0x30,0x33,0x3b,0x2d,0x2d,0x61,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x32,0x32,0x33,0x20,0x31,0x33,0x36,0x2e,0x30,0x37,0x33,0x34,0x37,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x33,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x34,0x36,0x36,0x30,0x38,0x20,0x36,0x35,0x2e,0x36,0x38,0x31,0x34,0x38,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x34,0x2e,0x37,0x37,0x35,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x35,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x32,0x37,0x2e,0x33,0x33,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x67,0x61,0x72,0x64,0x65,0x6e,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x36,0x2e,0x34,0x34,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x31,0x31,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x37,0x39,0x2e,0x39,0x33,0x38,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x38,0x36,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x39,0x2e,0x36,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x31,0x39,0x37,0x20,0x33,0x35,0x35,0x2e,0x30,0x39,0x35,0x39,0x38,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x31,0x2e,0x32,0x35,0x34,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x38,0x35,0x39,0x20,0x31,0x35,0x34,0x2e,0x33,0x39,0x30,0x31,0x38,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x32,0x2e,0x34,0x35,0x25,0x20,0x30,0x2e,0x32,0x37,0x38,0x20,0x33,0x2e,0x38,0x33,0x36,0x33,0x36,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x34,0x38,0x2e,0x34,0x39,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x31,0x30,0x39,0x38,0x35,0x20,0x33,0x35,0x35,0x2e,0x30,0x39,0x35,0x39,0x38,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x35,0x36,0x2e,0x32,0x37,0x33,0x35,0x25,0x20,0x30,0x2e,0x30,0x35,0x34,0x32,0x39,0x37,0x20,0x31,0x35,0x34,0x2e,0x33,0x39,0x30,0x31,0x38,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x31,0x35,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x33,0x36,0x32,0x20,0x38,0x39,0x2e,0x30,0x37,0x30,0x35,0x39,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x32,0x2e,0x39,0x35,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x31,0x36,0x33,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x32,0x2e,0x39,0x35,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x31,0x36,0x33,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x36,0x2e,0x39,0x36,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x36,0x36,0x34,0x20,0x31,0x37,0x2e,0x33,0x32,0x30,0x36,0x38,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x67,0x61,0x72,0x64,0x65,0x6e,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x36,0x2e,0x34,0x34,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x30,0x31,0x31,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x37,0x39,0x2e,0x39,0x33,0x38,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x38,0x36,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x39,0x2e,0x36,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x31,0x39,0x37,0x20,0x33,0x35,0x35,0x2e,0x30,0x39,0x35,0x39,0x38,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x31,0x2e,0x32,0x35,0x34,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x38,0x35,0x39,0x20,0x31,0x35,0x34,0x2e,0x33,0x39,0x30,0x31,0x38,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x32,0x2e,0x34,0x35,0x25,0x20,0x30,0x2e,0x32,0x37,0x38,0x20,0x33,0x2e,0x38,0x33,0x36,0x33,0x36,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x34,0x38,0x2e,0x34,0x39,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x31,0x30,0x39,0x38,0x35,0x20,0x33,0x35,0x35,0x2e,0x30,0x39,0x35,0x39,0x38,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x35,0x36,0x2e,0x32,0x37,0x33,0x35,0x25,0x20,0x30,0x2e,0x30,0x35,0x34,0x32,0x39,0x37,0x20,0x31,0x35,0x34,0x2e,0x33,0x39,0x30,0x31,0x38,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x31,0x35,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x33,0x36,0x32,0x20,0x38,0x39,0x2e,0x30,0x37,0x30,0x35,0x39,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x32,0x2e,0x39,0x35,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x31,0x36,0x33,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x32,0x2e,0x39,0x35,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x31,0x36,0x33,0x20,0x31,0x37,0x2e,0x31,0x39,0x37,0x34,0x31,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x36,0x2e,0x39,0x36,0x31,0x37,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x36,0x36,0x34,0x20,0x31,0x37,0x2e,0x33,0x32,0x30,0x36,0x38,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x66,0x6f,0x72,0x65,0x73,0x74,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x31,0x37,0x2e,0x35,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x37,0x30,0x39,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x36,0x2e,0x32,0x30,0x33,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x31,0x32,0x39,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x33,0x2e,0x37,0x36,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x36,0x35,0x38,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x39,0x35,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x30,0x37,0x37,0x20,0x31,0x36,0x38,0x2e,0x33,0x32,0x37,0x31,0x32,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x31,0x32,0x35,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x38,0x39,0x20,0x31,0x38,0x35,0x2e,0x37,0x31,0x33,0x31,0x39,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x36,0x2e,0x31,0x33,0x39,0x37,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x30,0x36,0x20,0x31,0x37,0x31,0x2e,0x33,0x36,0x34,0x36,0x34,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x38,0x2e,0x36,0x32,0x38,0x33,0x25,0x20,0x30,0x2e,0x31,0x38,0x35,0x35,0x36,0x37,0x20,0x31,0x34,0x38,0x2e,0x39,0x35,0x38,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x37,0x37,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x33,0x35,0x33,0x38,0x35,0x20,0x31,0x36,0x38,0x2e,0x33,0x32,0x37,0x31,0x32,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x30,0x2e,0x36,0x32,0x38,0x35,0x25,0x20,0x30,0x2e,0x31,0x31,0x39,0x34,0x35,0x31,0x20,0x31,0x38,0x35,0x2e,0x37,0x31,0x33,0x31,0x39,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x30,0x2e,0x36,0x39,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x30,0x33,0x32,0x20,0x31,0x37,0x31,0x2e,0x33,0x36,0x34,0x36,0x34,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x38,0x2e,0x38,0x34,0x30,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x32,0x39,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x66,0x6f,0x72,0x65,0x73,0x74,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x31,0x37,0x2e,0x35,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x37,0x30,0x39,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x36,0x2e,0x32,0x30,0x33,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x31,0x32,0x39,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x33,0x2e,0x37,0x36,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x36,0x35,0x38,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x39,0x35,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x30,0x37,0x37,0x20,0x31,0x36,0x38,0x2e,0x33,0x32,0x37,0x31,0x32,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x31,0x32,0x35,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x38,0x39,0x20,0x31,0x38,0x35,0x2e,0x37,0x31,0x33,0x31,0x39,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x36,0x2e,0x31,0x33,0x39,0x37,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x30,0x36,0x20,0x31,0x37,0x31,0x2e,0x33,0x36,0x34,0x36,0x34,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x36,0x38,0x2e,0x36,0x32,0x38,0x33,0x25,0x20,0x30,0x2e,0x31,0x38,0x35,0x35,0x36,0x37,0x20,0x31,0x34,0x38,0x2e,0x39,0x35,0x38,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x37,0x37,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x33,0x35,0x33,0x38,0x35,0x20,0x31,0x36,0x38,0x2e,0x33,0x32,0x37,0x31,0x32,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x30,0x2e,0x36,0x32,0x38,0x35,0x25,0x20,0x30,0x2e,0x31,0x31,0x39,0x34,0x35,0x31,0x20,0x31,0x38,0x35,0x2e,0x37,0x31,0x33,0x31,0x39,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x30,0x2e,0x36,0x39,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x30,0x33,0x32,0x20,0x31,0x37,0x31,0x2e,0x33,0x36,0x34,0x36,0x34,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x38,0x2e,0x38,0x34,0x30,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x38,0x32,0x39,0x20,0x31,0x37,0x2e,0x39,0x31,0x31,0x35,0x37,0x38,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x61,0x71,0x75,0x61,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x34,0x35,0x2e,0x33,0x34,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x31,0x38,0x36,0x31,0x31,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x34,0x31,0x2e,0x39,0x33,0x33,0x33,0x25,0x20,0x30,0x2e,0x31,0x30,0x39,0x36,0x38,0x33,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x39,0x2e,0x37,0x35,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x35,0x30,0x38,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x31,0x33,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x37,0x35,0x20,0x33,0x30,0x39,0x2e,0x37,0x38,0x32,0x39,0x34,0x36,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x38,0x2e,0x36,0x38,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x34,0x34,0x35,0x20,0x39,0x34,0x2e,0x35,0x35,0x35,0x34,0x33,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x32,0x2e,0x32,0x31,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x34,0x30,0x32,0x20,0x32,0x34,0x33,0x2e,0x37,0x36,0x30,0x36,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x37,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x38,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x35,0x2e,0x36,0x36,0x31,0x37,0x25,0x20,0x30,0x2e,0x31,0x34,0x34,0x39,0x38,0x20,0x31,0x39,0x38,0x2e,0x36,0x34,0x35,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x34,0x30,0x2e,0x31,0x32,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x36,0x38,0x32,0x36,0x36,0x20,0x31,0x39,0x37,0x2e,0x36,0x30,0x33,0x38,0x37,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x30,0x2e,0x36,0x38,0x32,0x37,0x25,0x20,0x30,0x2e,0x31,0x30,0x38,0x37,0x35,0x32,0x20,0x33,0x30,0x39,0x2e,0x37,0x38,0x32,0x39,0x34,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x39,0x33,0x2e,0x34,0x32,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x30,0x32,0x32,0x32,0x35,0x20,0x39,0x34,0x2e,0x35,0x35,0x35,0x34,0x33,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x36,0x31,0x2e,0x30,0x36,0x32,0x32,0x25,0x20,0x30,0x2e,0x31,0x31,0x37,0x30,0x30,0x39,0x20,0x32,0x34,0x33,0x2e,0x37,0x36,0x30,0x36,0x36,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x34,0x38,0x2e,0x37,0x35,0x39,0x36,0x25,0x20,0x30,0x2e,0x31,0x32,0x37,0x35,0x33,0x39,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x39,0x35,0x25,0x20,0x30,0x2e,0x31,0x39,0x20,0x32,0x37,0x2e,0x33,0x33,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x61,0x71,0x75,0x61,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x34,0x35,0x2e,0x33,0x34,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x31,0x38,0x36,0x31,0x31,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x34,0x31,0x2e,0x39,0x33,0x33,0x33,0x25,0x20,0x30,0x2e,0x31,0x30,0x39,0x36,0x38,0x33,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x39,0x2e,0x37,0x35,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x35,0x30,0x38,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x31,0x33,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x37,0x35,0x20,0x33,0x30,0x39,0x2e,0x37,0x38,0x32,0x39,0x34,0x36,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x38,0x2e,0x36,0x38,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x34,0x34,0x35,0x20,0x39,0x34,0x2e,0x35,0x35,0x35,0x34,0x33,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x32,0x2e,0x32,0x31,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x34,0x30,0x32,0x20,0x32,0x34,0x33,0x2e,0x37,0x36,0x30,0x36,0x36,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x39,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x30,0x34,0x32,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x35,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x39,0x38,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x33,0x2e,0x33,0x31,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x34,0x38,0x34,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x37,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x38,0x20,0x32,0x37,0x2e,0x33,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x35,0x2e,0x36,0x36,0x31,0x37,0x25,0x20,0x30,0x2e,0x31,0x34,0x34,0x39,0x38,0x20,0x31,0x39,0x38,0x2e,0x36,0x34,0x35,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x34,0x30,0x2e,0x31,0x32,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x36,0x38,0x32,0x36,0x36,0x20,0x31,0x39,0x37,0x2e,0x36,0x30,0x33,0x38,0x37,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x30,0x2e,0x36,0x38,0x32,0x37,0x25,0x20,0x30,0x2e,0x31,0x30,0x38,0x37,0x35,0x32,0x20,0x33,0x30,0x39,0x2e,0x37,0x38,0x32,0x39,0x34,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x39,0x33,0x2e,0x34,0x32,0x36,0x39,0x25,0x20,0x30,0x2e,0x31,0x30,0x32,0x32,0x32,0x35,0x20,0x39,0x34,0x2e,0x35,0x35,0x35,0x34,0x33,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x36,0x31,0x2e,0x30,0x36,0x32,0x32,0x25,0x20,0x30,0x2e,0x31,0x31,0x37,0x30,0x30,0x39,0x20,0x32,0x34,0x33,0x2e,0x37,0x36,0x30,0x36,0x36,0x31,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x34,0x38,0x2e,0x37,0x35,0x39,0x36,0x25,0x20,0x30,0x2e,0x31,0x32,0x37,0x35,0x33,0x39,0x20,0x32,0x36,0x31,0x2e,0x31,0x38,0x31,0x36,0x37,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x35,0x34,0x2e,0x36,0x31,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x35,0x32,0x30,0x38,0x20,0x32,0x36,0x32,0x2e,0x38,0x38,0x30,0x39,0x31,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x32,0x2e,0x37,0x30,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x39,0x31,0x32,0x20,0x31,0x34,0x39,0x2e,0x32,0x31,0x33,0x37,0x38,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x36,0x36,0x2e,0x35,0x38,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x37,0x34,0x32,0x32,0x20,0x35,0x38,0x2e,0x33,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x39,0x35,0x25,0x20,0x30,0x2e,0x31,0x39,0x20,0x32,0x37,0x2e,0x33,0x33,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x6c,0x6f,0x66,0x69,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x35,0x2e,0x39,0x30,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x36,0x20,0x32,0x30,0x35,0x2e,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x38,0x2e,0x30,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x30,0x36,0x20,0x31,0x36,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x36,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x20,0x37,0x39,0x2e,0x39,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x35,0x2e,0x37,0x33,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x20,0x32,0x38,0x2e,0x34,0x37,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x31,0x35,0x2e,0x39,0x30,0x36,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x32,0x31,0x2e,0x34,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x35,0x36,0x36,0x20,0x31,0x37,0x2e,0x32,0x37,0x38,0x39,0x35,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x32,0x36,0x2e,0x38,0x36,0x31,0x38,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x36,0x2e,0x31,0x31,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x32,0x2e,0x32,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x38,0x32,0x20,0x31,0x37,0x2e,0x31,0x37,0x39,0x33,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x39,0x2e,0x35,0x34,0x25,0x20,0x30,0x2e,0x31,0x30,0x33,0x20,0x32,0x30,0x35,0x2e,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x39,0x30,0x2e,0x31,0x33,0x25,0x20,0x30,0x2e,0x31,0x35,0x33,0x20,0x31,0x36,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x38,0x2e,0x33,0x37,0x25,0x20,0x30,0x2e,0x31,0x33,0x35,0x20,0x37,0x39,0x2e,0x39,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x38,0x2e,0x36,0x36,0x25,0x20,0x30,0x2e,0x31,0x35,0x20,0x32,0x38,0x2e,0x34,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x6f,0x66,0x69,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x35,0x2e,0x39,0x30,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x36,0x20,0x32,0x30,0x35,0x2e,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x38,0x2e,0x30,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x30,0x36,0x20,0x31,0x36,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x36,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x20,0x37,0x39,0x2e,0x39,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x35,0x2e,0x37,0x33,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x20,0x32,0x38,0x2e,0x34,0x37,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x31,0x35,0x2e,0x39,0x30,0x36,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x32,0x31,0x2e,0x34,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x35,0x36,0x36,0x20,0x31,0x37,0x2e,0x32,0x37,0x38,0x39,0x35,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x32,0x36,0x2e,0x38,0x36,0x31,0x38,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x36,0x2e,0x31,0x31,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x32,0x2e,0x32,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x38,0x32,0x20,0x31,0x37,0x2e,0x31,0x37,0x39,0x33,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x39,0x2e,0x35,0x34,0x25,0x20,0x30,0x2e,0x31,0x30,0x33,0x20,0x32,0x30,0x35,0x2e,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x39,0x30,0x2e,0x31,0x33,0x25,0x20,0x30,0x2e,0x31,0x35,0x33,0x20,0x31,0x36,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x38,0x2e,0x33,0x37,0x25,0x20,0x30,0x2e,0x31,0x33,0x35,0x20,0x37,0x39,0x2e,0x39,0x34,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x38,0x2e,0x36,0x36,0x25,0x20,0x30,0x2e,0x31,0x35,0x20,0x32,0x38,0x2e,0x34,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x70,0x61,0x73,0x74,0x65,0x6c,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x36,0x2e,0x36,0x31,0x36,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x39,0x37,0x39,0x20,0x33,0x31,0x36,0x2e,0x38,0x37,0x33,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x37,0x2e,0x36,0x31,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x33,0x39,0x20,0x38,0x2e,0x36,0x38,0x38,0x33,0x36,0x34,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x37,0x2e,0x38,0x34,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x30,0x35,0x36,0x20,0x31,0x37,0x30,0x2e,0x39,0x32,0x33,0x32,0x36,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x34,0x2e,0x32,0x36,0x38,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x37,0x30,0x32,0x20,0x32,0x32,0x38,0x2e,0x31,0x38,0x33,0x39,0x30,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x33,0x2e,0x30,0x38,0x32,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x38,0x39,0x36,0x20,0x33,0x31,0x36,0x2e,0x38,0x37,0x33,0x37,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x38,0x2e,0x30,0x37,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x31,0x39,0x37,0x20,0x38,0x2e,0x36,0x38,0x38,0x33,0x36,0x34,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x39,0x2e,0x32,0x30,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x36,0x30,0x32,0x38,0x20,0x31,0x37,0x30,0x2e,0x39,0x32,0x33,0x32,0x36,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x37,0x31,0x2e,0x33,0x34,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x37,0x33,0x35,0x31,0x20,0x32,0x32,0x38,0x2e,0x31,0x38,0x33,0x39,0x30,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x38,0x2e,0x34,0x36,0x32,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x37,0x30,0x36,0x20,0x32,0x34,0x37,0x2e,0x38,0x33,0x38,0x39,0x32,0x31,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x37,0x2e,0x31,0x36,0x38,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x33,0x33,0x39,0x20,0x32,0x35,0x38,0x2e,0x33,0x33,0x38,0x32,0x32,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x70,0x61,0x73,0x74,0x65,0x6c,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x36,0x2e,0x36,0x31,0x36,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x39,0x37,0x39,0x20,0x33,0x31,0x36,0x2e,0x38,0x37,0x33,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x37,0x2e,0x36,0x31,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x38,0x33,0x39,0x20,0x38,0x2e,0x36,0x38,0x38,0x33,0x36,0x34,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x37,0x2e,0x38,0x34,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x30,0x35,0x36,0x20,0x31,0x37,0x30,0x2e,0x39,0x32,0x33,0x32,0x36,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x34,0x2e,0x32,0x36,0x38,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x37,0x30,0x32,0x20,0x32,0x32,0x38,0x2e,0x31,0x38,0x33,0x39,0x30,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x33,0x2e,0x30,0x38,0x32,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x38,0x39,0x36,0x20,0x33,0x31,0x36,0x2e,0x38,0x37,0x33,0x37,0x3b,0x2d,0x2d,0x73,0x3a,0x38,0x38,0x2e,0x30,0x37,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x39,0x31,0x39,0x37,0x20,0x38,0x2e,0x36,0x38,0x38,0x33,0x36,0x34,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x39,0x2e,0x32,0x30,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x36,0x30,0x32,0x38,0x20,0x31,0x37,0x30,0x2e,0x39,0x32,0x33,0x32,0x36,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x37,0x31,0x2e,0x33,0x34,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x37,0x33,0x35,0x31,0x20,0x32,0x32,0x38,0x2e,0x31,0x38,0x33,0x39,0x30,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x38,0x2e,0x34,0x36,0x32,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x31,0x37,0x30,0x36,0x20,0x32,0x34,0x37,0x2e,0x38,0x33,0x38,0x39,0x32,0x31,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x37,0x2e,0x31,0x36,0x38,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x33,0x33,0x39,0x20,0x32,0x35,0x38,0x2e,0x33,0x33,0x38,0x32,0x32,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x66,0x61,0x6e,0x74,0x61,0x73,0x79,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x37,0x2e,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x38,0x20,0x33,0x32,0x35,0x2e,0x30,0x32,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x39,0x30,0x2e,0x37,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x34,0x20,0x32,0x34,0x31,0x2e,0x33,0x36,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x31,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x38,0x20,0x35,0x36,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x35,0x2e,0x35,0x36,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x35,0x39,0x31,0x39,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x33,0x37,0x2e,0x34,0x35,0x25,0x20,0x30,0x2e,0x31,0x38,0x39,0x20,0x33,0x32,0x35,0x2e,0x30,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x35,0x33,0x2e,0x39,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x32,0x20,0x32,0x34,0x31,0x2e,0x33,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x35,0x2e,0x39,0x38,0x25,0x20,0x30,0x2e,0x32,0x30,0x34,0x20,0x35,0x36,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x66,0x61,0x6e,0x74,0x61,0x73,0x79,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x32,0x2e,0x30,0x36,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x20,0x32,0x33,0x31,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x34,0x2e,0x38,0x25,0x20,0x30,0x2e,0x31,0x35,0x30,0x20,0x31,0x36,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x34,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x38,0x33,0x2e,0x38,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x36,0x25,0x20,0x30,0x2e,0x32,0x32,0x31,0x20,0x32,0x32,0x2e,0x31,0x38,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x37,0x2e,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x38,0x20,0x33,0x32,0x35,0x2e,0x30,0x32,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x39,0x30,0x2e,0x37,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x34,0x20,0x32,0x34,0x31,0x2e,0x33,0x36,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x31,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x38,0x20,0x35,0x36,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x35,0x2e,0x35,0x36,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x35,0x39,0x31,0x39,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x33,0x37,0x2e,0x34,0x35,0x25,0x20,0x30,0x2e,0x31,0x38,0x39,0x20,0x33,0x32,0x35,0x2e,0x30,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x35,0x33,0x2e,0x39,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x32,0x20,0x32,0x34,0x31,0x2e,0x33,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x35,0x2e,0x39,0x38,0x25,0x20,0x30,0x2e,0x32,0x30,0x34,0x20,0x35,0x36,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x37,0x2e,0x38,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x35,0x39,0x36,0x20,0x32,0x35,0x36,0x2e,0x38,0x34,0x37,0x39,0x35,0x32,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x77,0x69,0x72,0x65,0x66,0x72,0x61,0x6d,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x38,0x2e,0x38,0x30,0x31,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x30,0x34,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x36,0x34,0x33,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x39,0x30,0x2e,0x33,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x33,0x37,0x32,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x34,0x2e,0x31,0x36,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x34,0x20,0x31,0x30,0x38,0x2e,0x37,0x30,0x32,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x35,0x35,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x35,0x33,0x37,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x43,0x68,0x61,0x6c,0x6b,0x62,0x6f,0x61,0x72,0x64,0x2c,0x63,0x6f,0x6d,0x69,0x63,0x20,0x73,0x61,0x6e,0x73,0x20,0x6d,0x73,0x2c,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x38,0x2e,0x32,0x36,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x38,0x2e,0x32,0x36,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x38,0x2e,0x32,0x36,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x39,0x34,0x2e,0x30,0x30,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x34,0x2e,0x39,0x31,0x31,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x39,0x2e,0x37,0x35,0x34,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x34,0x35,0x2e,0x32,0x30,0x31,0x34,0x25,0x20,0x30,0x2e,0x33,0x31,0x33,0x32,0x31,0x34,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x35,0x31,0x2e,0x39,0x37,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x38,0x35,0x38,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x30,0x2e,0x38,0x31,0x33,0x31,0x25,0x20,0x30,0x2e,0x30,0x39,0x39,0x39,0x36,0x39,0x20,0x31,0x30,0x38,0x2e,0x37,0x30,0x32,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x32,0x2e,0x37,0x39,0x35,0x35,0x25,0x20,0x30,0x2e,0x32,0x35,0x37,0x36,0x38,0x33,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x77,0x69,0x72,0x65,0x66,0x72,0x61,0x6d,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x36,0x35,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x31,0x38,0x2e,0x38,0x30,0x31,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x30,0x34,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x36,0x34,0x33,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x39,0x30,0x2e,0x33,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x33,0x37,0x32,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x34,0x2e,0x31,0x36,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x34,0x20,0x31,0x30,0x38,0x2e,0x37,0x30,0x32,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x35,0x35,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x35,0x33,0x37,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x43,0x68,0x61,0x6c,0x6b,0x62,0x6f,0x61,0x72,0x64,0x2c,0x63,0x6f,0x6d,0x69,0x63,0x20,0x73,0x61,0x6e,0x73,0x20,0x6d,0x73,0x2c,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x38,0x2e,0x32,0x36,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x38,0x2e,0x32,0x36,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x38,0x2e,0x32,0x36,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x39,0x34,0x2e,0x30,0x30,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x34,0x2e,0x39,0x31,0x31,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x39,0x2e,0x37,0x35,0x34,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x34,0x35,0x2e,0x32,0x30,0x31,0x34,0x25,0x20,0x30,0x2e,0x33,0x31,0x33,0x32,0x31,0x34,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x35,0x31,0x2e,0x39,0x37,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x38,0x35,0x38,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x30,0x2e,0x38,0x31,0x33,0x31,0x25,0x20,0x30,0x2e,0x30,0x39,0x39,0x39,0x36,0x39,0x20,0x31,0x30,0x38,0x2e,0x37,0x30,0x32,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x32,0x2e,0x37,0x39,0x35,0x35,0x25,0x20,0x30,0x2e,0x32,0x35,0x37,0x36,0x38,0x33,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x62,0x6c,0x61,0x63,0x6b,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x30,0x34,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x36,0x34,0x33,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x39,0x30,0x2e,0x33,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x33,0x37,0x32,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x39,0x2e,0x33,0x35,0x39,0x37,0x25,0x20,0x30,0x2e,0x30,0x34,0x32,0x32,0x30,0x31,0x20,0x31,0x30,0x39,0x2e,0x37,0x36,0x39,0x32,0x33,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x35,0x35,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x35,0x33,0x37,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x31,0x39,0x2e,0x31,0x32,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x36,0x2e,0x38,0x36,0x31,0x38,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x37,0x2e,0x36,0x30,0x39,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x34,0x35,0x2e,0x32,0x30,0x31,0x34,0x25,0x20,0x30,0x2e,0x33,0x31,0x33,0x32,0x31,0x34,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x35,0x31,0x2e,0x39,0x37,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x38,0x35,0x38,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x39,0x36,0x2e,0x37,0x39,0x38,0x33,0x25,0x20,0x30,0x2e,0x32,0x31,0x31,0x30,0x30,0x36,0x20,0x31,0x30,0x39,0x2e,0x37,0x36,0x39,0x32,0x33,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x32,0x2e,0x37,0x39,0x35,0x35,0x25,0x20,0x30,0x2e,0x32,0x35,0x37,0x36,0x38,0x33,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x62,0x6c,0x61,0x63,0x6b,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x36,0x2e,0x37,0x33,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x30,0x34,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x36,0x34,0x33,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x39,0x30,0x2e,0x33,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x33,0x37,0x32,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x39,0x2e,0x33,0x35,0x39,0x37,0x25,0x20,0x30,0x2e,0x30,0x34,0x32,0x32,0x30,0x31,0x20,0x31,0x30,0x39,0x2e,0x37,0x36,0x39,0x32,0x33,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x35,0x35,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x35,0x33,0x37,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x61,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x31,0x39,0x2e,0x31,0x32,0x35,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x36,0x2e,0x38,0x36,0x31,0x38,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x37,0x2e,0x36,0x30,0x39,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x33,0x2e,0x36,0x37,0x39,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x34,0x35,0x2e,0x32,0x30,0x31,0x34,0x25,0x20,0x30,0x2e,0x33,0x31,0x33,0x32,0x31,0x34,0x20,0x32,0x36,0x34,0x2e,0x30,0x35,0x32,0x30,0x32,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x35,0x31,0x2e,0x39,0x37,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x38,0x35,0x38,0x20,0x31,0x34,0x32,0x2e,0x34,0x39,0x35,0x33,0x33,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x39,0x36,0x2e,0x37,0x39,0x38,0x33,0x25,0x20,0x30,0x2e,0x32,0x31,0x31,0x30,0x30,0x36,0x20,0x31,0x30,0x39,0x2e,0x37,0x36,0x39,0x32,0x33,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x32,0x2e,0x37,0x39,0x35,0x35,0x25,0x20,0x30,0x2e,0x32,0x35,0x37,0x36,0x38,0x33,0x20,0x32,0x39,0x2e,0x32,0x33,0x33,0x38,0x38,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x30,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x31,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x6c,0x75,0x78,0x75,0x72,0x79,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x35,0x2e,0x35,0x31,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x38,0x32,0x31,0x20,0x32,0x36,0x31,0x2e,0x30,0x36,0x39,0x31,0x34,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x38,0x37,0x2e,0x33,0x33,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x33,0x34,0x38,0x20,0x33,0x33,0x38,0x2e,0x38,0x32,0x35,0x39,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x35,0x2e,0x38,0x31,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x33,0x35,0x36,0x20,0x32,0x33,0x37,0x2e,0x31,0x33,0x33,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x35,0x2e,0x36,0x32,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x38,0x35,0x37,0x39,0x20,0x31,0x33,0x32,0x2e,0x31,0x35,0x34,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x32,0x32,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x33,0x30,0x35,0x20,0x31,0x30,0x32,0x2e,0x38,0x39,0x31,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x33,0x35,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x32,0x37,0x31,0x20,0x32,0x32,0x2e,0x35,0x36,0x38,0x39,0x31,0x36,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x32,0x37,0x2e,0x35,0x38,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x36,0x34,0x31,0x30,0x36,0x20,0x32,0x36,0x31,0x2e,0x30,0x36,0x39,0x31,0x34,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x33,0x36,0x2e,0x36,0x37,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x37,0x34,0x31,0x20,0x33,0x33,0x38,0x2e,0x38,0x32,0x35,0x39,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x35,0x37,0x30,0x31,0x35,0x20,0x35,0x39,0x2e,0x38,0x32,0x35,0x30,0x31,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x33,0x2e,0x32,0x30,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x38,0x39,0x36,0x33,0x31,0x20,0x39,0x30,0x2e,0x38,0x36,0x31,0x36,0x38,0x33,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x34,0x2e,0x30,0x37,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x33,0x38,0x36,0x20,0x32,0x38,0x35,0x2e,0x38,0x32,0x32,0x38,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x2e,0x32,0x31,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x32,0x31,0x31,0x20,0x33,0x30,0x38,0x2e,0x32,0x32,0x39,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x39,0x2e,0x38,0x39,0x36,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x33,0x38,0x31,0x38,0x20,0x33,0x30,0x38,0x2e,0x33,0x31,0x38,0x36,0x31,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x35,0x2e,0x36,0x38,0x37,0x39,0x25,0x20,0x30,0x2e,0x31,0x32,0x33,0x36,0x36,0x36,0x20,0x37,0x36,0x2e,0x38,0x39,0x30,0x34,0x38,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x39,0x2e,0x30,0x36,0x31,0x32,0x25,0x20,0x30,0x2e,0x31,0x32,0x31,0x37,0x37,0x38,0x20,0x32,0x33,0x37,0x2e,0x31,0x33,0x33,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x38,0x2e,0x31,0x31,0x39,0x37,0x25,0x20,0x30,0x2e,0x31,0x39,0x32,0x38,0x39,0x34,0x20,0x31,0x33,0x32,0x2e,0x31,0x35,0x34,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x36,0x2e,0x31,0x32,0x37,0x34,0x25,0x20,0x30,0x2e,0x31,0x33,0x36,0x35,0x32,0x34,0x20,0x31,0x30,0x32,0x2e,0x38,0x39,0x31,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x35,0x33,0x31,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x33,0x35,0x37,0x20,0x32,0x32,0x2e,0x35,0x36,0x38,0x39,0x31,0x36,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x75,0x78,0x75,0x72,0x79,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x35,0x2e,0x35,0x31,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x38,0x32,0x31,0x20,0x32,0x36,0x31,0x2e,0x30,0x36,0x39,0x31,0x34,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x38,0x37,0x2e,0x33,0x33,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x33,0x34,0x38,0x20,0x33,0x33,0x38,0x2e,0x38,0x32,0x35,0x39,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x35,0x2e,0x38,0x31,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x33,0x35,0x36,0x20,0x32,0x33,0x37,0x2e,0x31,0x33,0x33,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x35,0x2e,0x36,0x32,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x38,0x35,0x37,0x39,0x20,0x31,0x33,0x32,0x2e,0x31,0x35,0x34,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x32,0x32,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x33,0x30,0x35,0x20,0x31,0x30,0x32,0x2e,0x38,0x39,0x31,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x33,0x35,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x32,0x37,0x31,0x20,0x32,0x32,0x2e,0x35,0x36,0x38,0x39,0x31,0x36,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x3a,0x32,0x37,0x2e,0x35,0x38,0x31,0x35,0x25,0x20,0x30,0x2e,0x30,0x36,0x34,0x31,0x30,0x36,0x20,0x32,0x36,0x31,0x2e,0x30,0x36,0x39,0x31,0x34,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x33,0x36,0x2e,0x36,0x37,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x37,0x34,0x31,0x20,0x33,0x33,0x38,0x2e,0x38,0x32,0x35,0x39,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x35,0x37,0x30,0x31,0x35,0x20,0x35,0x39,0x2e,0x38,0x32,0x35,0x30,0x31,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x33,0x2e,0x32,0x30,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x38,0x39,0x36,0x33,0x31,0x20,0x39,0x30,0x2e,0x38,0x36,0x31,0x36,0x38,0x33,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x34,0x2e,0x30,0x37,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x33,0x38,0x36,0x20,0x32,0x38,0x35,0x2e,0x38,0x32,0x32,0x38,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x2e,0x32,0x31,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x32,0x31,0x31,0x20,0x33,0x30,0x38,0x2e,0x32,0x32,0x39,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x39,0x2e,0x38,0x39,0x36,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x33,0x38,0x31,0x38,0x20,0x33,0x30,0x38,0x2e,0x33,0x31,0x38,0x36,0x31,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x35,0x2e,0x36,0x38,0x37,0x39,0x25,0x20,0x30,0x2e,0x31,0x32,0x33,0x36,0x36,0x36,0x20,0x37,0x36,0x2e,0x38,0x39,0x30,0x34,0x38,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x39,0x2e,0x30,0x36,0x31,0x32,0x25,0x20,0x30,0x2e,0x31,0x32,0x31,0x37,0x37,0x38,0x20,0x32,0x33,0x37,0x2e,0x31,0x33,0x33,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x38,0x2e,0x31,0x31,0x39,0x37,0x25,0x20,0x30,0x2e,0x31,0x39,0x32,0x38,0x39,0x34,0x20,0x31,0x33,0x32,0x2e,0x31,0x35,0x34,0x33,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x36,0x2e,0x31,0x32,0x37,0x34,0x25,0x20,0x30,0x2e,0x31,0x33,0x36,0x35,0x32,0x34,0x20,0x31,0x30,0x32,0x2e,0x38,0x39,0x31,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x35,0x33,0x31,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x33,0x35,0x37,0x20,0x32,0x32,0x2e,0x35,0x36,0x38,0x39,0x31,0x36,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x64,0x72,0x61,0x63,0x75,0x6c,0x61,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x36,0x2e,0x38,0x30,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x35,0x35,0x36,0x20,0x32,0x37,0x37,0x2e,0x35,0x30,0x38,0x36,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x34,0x2e,0x37,0x38,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x30,0x30,0x39,0x20,0x32,0x37,0x37,0x2e,0x35,0x30,0x38,0x36,0x36,0x34,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x30,0x39,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x36,0x31,0x34,0x20,0x33,0x34,0x36,0x2e,0x38,0x31,0x32,0x34,0x33,0x32,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x38,0x34,0x30,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x37,0x30,0x39,0x20,0x33,0x30,0x31,0x2e,0x38,0x38,0x33,0x30,0x39,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x36,0x2e,0x36,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x38,0x32,0x36,0x20,0x36,0x36,0x2e,0x35,0x35,0x38,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x37,0x2e,0x38,0x38,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x35,0x31,0x35,0x20,0x32,0x37,0x35,0x2e,0x35,0x32,0x34,0x30,0x37,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x36,0x35,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x36,0x37,0x36,0x20,0x32,0x31,0x32,0x2e,0x38,0x34,0x36,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x34,0x31,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x39,0x30,0x33,0x20,0x31,0x34,0x38,0x2e,0x30,0x32,0x34,0x38,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x39,0x2e,0x31,0x30,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x38,0x34,0x39,0x20,0x31,0x31,0x32,0x2e,0x37,0x35,0x37,0x31,0x30,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x33,0x2e,0x36,0x34,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x32,0x36,0x36,0x20,0x32,0x34,0x2e,0x34,0x33,0x30,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x35,0x2e,0x34,0x36,0x31,0x31,0x25,0x20,0x30,0x2e,0x31,0x38,0x33,0x30,0x37,0x20,0x33,0x34,0x36,0x2e,0x38,0x31,0x32,0x34,0x33,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x34,0x2e,0x32,0x30,0x32,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x38,0x35,0x34,0x36,0x20,0x33,0x30,0x31,0x2e,0x38,0x38,0x33,0x30,0x39,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x33,0x2e,0x33,0x39,0x32,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x34,0x31,0x33,0x32,0x20,0x36,0x36,0x2e,0x35,0x35,0x38,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x39,0x2e,0x34,0x34,0x35,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x35,0x37,0x36,0x20,0x32,0x37,0x35,0x2e,0x35,0x32,0x34,0x30,0x37,0x38,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x38,0x2e,0x38,0x32,0x32,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x31,0x30,0x33,0x20,0x32,0x37,0x37,0x2e,0x35,0x30,0x38,0x36,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x39,0x37,0x2e,0x37,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x39,0x31,0x33,0x20,0x31,0x30,0x36,0x2e,0x35,0x34,0x35,0x30,0x31,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x38,0x2e,0x32,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x39,0x33,0x33,0x38,0x20,0x32,0x31,0x32,0x2e,0x38,0x34,0x36,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x37,0x2e,0x30,0x39,0x39,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x39,0x35,0x31,0x36,0x20,0x31,0x34,0x38,0x2e,0x30,0x32,0x34,0x38,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x39,0x35,0x2e,0x35,0x33,0x33,0x38,0x25,0x20,0x30,0x2e,0x31,0x33,0x34,0x32,0x34,0x36,0x20,0x31,0x31,0x32,0x2e,0x37,0x35,0x37,0x31,0x30,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x38,0x2e,0x32,0x32,0x30,0x34,0x25,0x20,0x30,0x2e,0x32,0x30,0x36,0x33,0x32,0x38,0x20,0x32,0x34,0x2e,0x34,0x33,0x30,0x39,0x36,0x35,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x64,0x72,0x61,0x63,0x75,0x6c,0x61,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x36,0x2e,0x38,0x30,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x35,0x35,0x36,0x20,0x32,0x37,0x37,0x2e,0x35,0x30,0x38,0x36,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x34,0x2e,0x37,0x38,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x30,0x30,0x39,0x20,0x32,0x37,0x37,0x2e,0x35,0x30,0x38,0x36,0x36,0x34,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x30,0x39,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x36,0x31,0x34,0x20,0x33,0x34,0x36,0x2e,0x38,0x31,0x32,0x34,0x33,0x32,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x38,0x34,0x30,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x37,0x30,0x39,0x20,0x33,0x30,0x31,0x2e,0x38,0x38,0x33,0x30,0x39,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x36,0x2e,0x36,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x38,0x32,0x36,0x20,0x36,0x36,0x2e,0x35,0x35,0x38,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x37,0x2e,0x38,0x38,0x39,0x31,0x25,0x20,0x30,0x2e,0x30,0x30,0x36,0x35,0x31,0x35,0x20,0x32,0x37,0x35,0x2e,0x35,0x32,0x34,0x30,0x37,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x36,0x35,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x36,0x37,0x36,0x20,0x32,0x31,0x32,0x2e,0x38,0x34,0x36,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x34,0x31,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x39,0x30,0x33,0x20,0x31,0x34,0x38,0x2e,0x30,0x32,0x34,0x38,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x39,0x2e,0x31,0x30,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x38,0x34,0x39,0x20,0x31,0x31,0x32,0x2e,0x37,0x35,0x37,0x31,0x30,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x33,0x2e,0x36,0x34,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x32,0x36,0x36,0x20,0x32,0x34,0x2e,0x34,0x33,0x30,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x35,0x2e,0x34,0x36,0x31,0x31,0x25,0x20,0x30,0x2e,0x31,0x38,0x33,0x30,0x37,0x20,0x33,0x34,0x36,0x2e,0x38,0x31,0x32,0x34,0x33,0x32,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x34,0x2e,0x32,0x30,0x32,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x38,0x35,0x34,0x36,0x20,0x33,0x30,0x31,0x2e,0x38,0x38,0x33,0x30,0x39,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x33,0x2e,0x33,0x39,0x32,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x34,0x31,0x33,0x32,0x20,0x36,0x36,0x2e,0x35,0x35,0x38,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x39,0x2e,0x34,0x34,0x35,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x35,0x37,0x36,0x20,0x32,0x37,0x35,0x2e,0x35,0x32,0x34,0x30,0x37,0x38,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x38,0x2e,0x38,0x32,0x32,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x31,0x30,0x33,0x20,0x32,0x37,0x37,0x2e,0x35,0x30,0x38,0x36,0x36,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x39,0x37,0x2e,0x37,0x34,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x39,0x31,0x33,0x20,0x31,0x30,0x36,0x2e,0x35,0x34,0x35,0x30,0x31,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x38,0x2e,0x32,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x39,0x33,0x33,0x38,0x20,0x32,0x31,0x32,0x2e,0x38,0x34,0x36,0x34,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x37,0x2e,0x30,0x39,0x39,0x35,0x25,0x20,0x30,0x2e,0x32,0x31,0x39,0x35,0x31,0x36,0x20,0x31,0x34,0x38,0x2e,0x30,0x32,0x34,0x38,0x38,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x39,0x35,0x2e,0x35,0x33,0x33,0x38,0x25,0x20,0x30,0x2e,0x31,0x33,0x34,0x32,0x34,0x36,0x20,0x31,0x31,0x32,0x2e,0x37,0x35,0x37,0x31,0x30,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x38,0x2e,0x32,0x32,0x30,0x34,0x25,0x20,0x30,0x2e,0x32,0x30,0x36,0x33,0x32,0x38,0x20,0x32,0x34,0x2e,0x34,0x33,0x30,0x39,0x36,0x35,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x63,0x6d,0x79,0x6b,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x33,0x35,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x36,0x36,0x20,0x32,0x33,0x39,0x2e,0x34,0x34,0x33,0x33,0x32,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x38,0x39,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x35,0x35,0x32,0x20,0x33,0x35,0x39,0x2e,0x33,0x33,0x39,0x32,0x38,0x33,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x38,0x2e,0x38,0x34,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x39,0x34,0x38,0x20,0x31,0x30,0x35,0x2e,0x33,0x30,0x36,0x39,0x36,0x38,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x33,0x35,0x35,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x33,0x2e,0x36,0x39,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x39,0x20,0x32,0x31,0x37,0x2e,0x32,0x38,0x34,0x31,0x30,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x38,0x39,0x2e,0x33,0x38,0x39,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x35,0x30,0x35,0x20,0x33,0x32,0x31,0x2e,0x34,0x30,0x36,0x32,0x37,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x34,0x2e,0x32,0x34,0x37,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x39,0x36,0x39,0x20,0x35,0x32,0x2e,0x30,0x32,0x33,0x34,0x31,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x34,0x30,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x37,0x37,0x20,0x32,0x38,0x2e,0x37,0x31,0x37,0x35,0x34,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x31,0x2e,0x37,0x37,0x32,0x32,0x25,0x20,0x30,0x2e,0x31,0x33,0x33,0x32,0x39,0x38,0x20,0x32,0x33,0x39,0x2e,0x34,0x34,0x33,0x33,0x32,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x34,0x2e,0x34,0x37,0x36,0x36,0x25,0x20,0x30,0x2e,0x32,0x30,0x32,0x37,0x35,0x38,0x20,0x33,0x35,0x39,0x2e,0x33,0x33,0x39,0x32,0x38,0x33,0x3b,0x2d,0x2d,0x61,0x3a,0x39,0x34,0x2e,0x32,0x32,0x38,0x39,0x25,0x20,0x30,0x2e,0x31,0x38,0x39,0x37,0x34,0x31,0x20,0x31,0x30,0x35,0x2e,0x33,0x30,0x36,0x39,0x36,0x38,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x31,0x2e,0x37,0x37,0x38,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x38,0x2e,0x34,0x37,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x39,0x34,0x34,0x39,0x39,0x20,0x32,0x31,0x37,0x2e,0x32,0x38,0x34,0x31,0x30,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x34,0x36,0x2e,0x39,0x34,0x39,0x25,0x20,0x30,0x2e,0x31,0x36,0x32,0x35,0x32,0x34,0x20,0x33,0x32,0x31,0x2e,0x34,0x30,0x36,0x32,0x37,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x31,0x2e,0x32,0x33,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x39,0x38,0x34,0x33,0x20,0x35,0x32,0x2e,0x30,0x32,0x33,0x34,0x31,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x32,0x2e,0x30,0x31,0x33,0x33,0x25,0x20,0x30,0x2e,0x32,0x30,0x38,0x33,0x38,0x35,0x20,0x32,0x38,0x2e,0x37,0x31,0x37,0x35,0x34,0x33,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x6d,0x79,0x6b,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x32,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x33,0x35,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x36,0x36,0x20,0x32,0x33,0x39,0x2e,0x34,0x34,0x33,0x33,0x32,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x38,0x39,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x35,0x35,0x32,0x20,0x33,0x35,0x39,0x2e,0x33,0x33,0x39,0x32,0x38,0x33,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x38,0x2e,0x38,0x34,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x39,0x34,0x38,0x20,0x31,0x30,0x35,0x2e,0x33,0x30,0x36,0x39,0x36,0x38,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x33,0x35,0x35,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x33,0x2e,0x36,0x39,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x39,0x20,0x32,0x31,0x37,0x2e,0x32,0x38,0x34,0x31,0x30,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x38,0x39,0x2e,0x33,0x38,0x39,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x35,0x30,0x35,0x20,0x33,0x32,0x31,0x2e,0x34,0x30,0x36,0x32,0x37,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x34,0x2e,0x32,0x34,0x37,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x39,0x36,0x39,0x20,0x35,0x32,0x2e,0x30,0x32,0x33,0x34,0x31,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x34,0x30,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x34,0x31,0x36,0x37,0x37,0x20,0x32,0x38,0x2e,0x37,0x31,0x37,0x35,0x34,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x31,0x2e,0x37,0x37,0x32,0x32,0x25,0x20,0x30,0x2e,0x31,0x33,0x33,0x32,0x39,0x38,0x20,0x32,0x33,0x39,0x2e,0x34,0x34,0x33,0x33,0x32,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x34,0x2e,0x34,0x37,0x36,0x36,0x25,0x20,0x30,0x2e,0x32,0x30,0x32,0x37,0x35,0x38,0x20,0x33,0x35,0x39,0x2e,0x33,0x33,0x39,0x32,0x38,0x33,0x3b,0x2d,0x2d,0x61,0x3a,0x39,0x34,0x2e,0x32,0x32,0x38,0x39,0x25,0x20,0x30,0x2e,0x31,0x38,0x39,0x37,0x34,0x31,0x20,0x31,0x30,0x35,0x2e,0x33,0x30,0x36,0x39,0x36,0x38,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x31,0x2e,0x37,0x37,0x38,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x38,0x2e,0x34,0x37,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x39,0x34,0x34,0x39,0x39,0x20,0x32,0x31,0x37,0x2e,0x32,0x38,0x34,0x31,0x30,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x34,0x36,0x2e,0x39,0x34,0x39,0x25,0x20,0x30,0x2e,0x31,0x36,0x32,0x35,0x32,0x34,0x20,0x33,0x32,0x31,0x2e,0x34,0x30,0x36,0x32,0x37,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x31,0x2e,0x32,0x33,0x36,0x34,0x25,0x20,0x30,0x2e,0x31,0x35,0x39,0x38,0x34,0x33,0x20,0x35,0x32,0x2e,0x30,0x32,0x33,0x34,0x31,0x32,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x32,0x2e,0x30,0x31,0x33,0x33,0x25,0x20,0x30,0x2e,0x32,0x30,0x38,0x33,0x38,0x35,0x20,0x32,0x38,0x2e,0x37,0x31,0x37,0x35,0x34,0x33,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x61,0x75,0x74,0x75,0x6d,0x6e,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x39,0x2e,0x31,0x30,0x37,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x32,0x2e,0x34,0x30,0x30,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x39,0x2e,0x31,0x36,0x32,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x38,0x2e,0x31,0x34,0x34,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x32,0x33,0x32,0x20,0x31,0x37,0x2e,0x35,0x33,0x30,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x33,0x33,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x38,0x32,0x31,0x20,0x32,0x33,0x2e,0x38,0x36,0x35,0x38,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x36,0x38,0x35,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x39,0x39,0x39,0x20,0x36,0x30,0x2e,0x37,0x32,0x39,0x36,0x31,0x36,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x38,0x37,0x33,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x34,0x37,0x35,0x20,0x35,0x31,0x2e,0x39,0x30,0x32,0x38,0x31,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x33,0x2e,0x38,0x34,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x35,0x39,0x36,0x20,0x32,0x30,0x37,0x2e,0x32,0x38,0x34,0x31,0x39,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x31,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x30,0x33,0x32,0x20,0x31,0x37,0x34,0x2e,0x36,0x31,0x36,0x32,0x31,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x34,0x2e,0x30,0x31,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x39,0x38,0x32,0x20,0x35,0x36,0x2e,0x38,0x34,0x34,0x33,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x39,0x30,0x2e,0x36,0x31,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x38,0x32,0x20,0x32,0x34,0x2e,0x31,0x36,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x30,0x2e,0x37,0x32,0x33,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x31,0x31,0x36,0x20,0x31,0x37,0x2e,0x35,0x33,0x30,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x31,0x2e,0x36,0x37,0x36,0x33,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x31,0x30,0x35,0x20,0x32,0x33,0x2e,0x38,0x36,0x35,0x38,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x33,0x2e,0x34,0x32,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x39,0x34,0x39,0x39,0x34,0x20,0x36,0x30,0x2e,0x37,0x32,0x39,0x36,0x31,0x36,0x3b,0x2d,0x2d,0x6e,0x3a,0x35,0x34,0x2e,0x33,0x36,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x33,0x37,0x34,0x20,0x35,0x31,0x2e,0x39,0x30,0x32,0x38,0x31,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x35,0x2e,0x38,0x31,0x34,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x39,0x2e,0x32,0x32,0x34,0x35,0x25,0x20,0x30,0x2e,0x30,0x39,0x37,0x39,0x37,0x39,0x20,0x32,0x30,0x37,0x2e,0x32,0x38,0x34,0x31,0x39,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x30,0x2e,0x39,0x39,0x35,0x31,0x25,0x20,0x30,0x2e,0x30,0x38,0x30,0x31,0x35,0x39,0x20,0x31,0x37,0x34,0x2e,0x36,0x31,0x36,0x32,0x31,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x30,0x2e,0x30,0x38,0x31,0x37,0x25,0x20,0x30,0x2e,0x31,0x36,0x34,0x39,0x30,0x39,0x20,0x35,0x36,0x2e,0x38,0x34,0x34,0x33,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x35,0x33,0x2e,0x30,0x37,0x25,0x20,0x30,0x2e,0x32,0x34,0x31,0x20,0x32,0x34,0x2e,0x31,0x36,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x61,0x75,0x74,0x75,0x6d,0x6e,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x38,0x39,0x2e,0x31,0x30,0x37,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x32,0x2e,0x34,0x30,0x30,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x39,0x2e,0x31,0x36,0x32,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x38,0x2e,0x31,0x34,0x34,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x32,0x33,0x32,0x20,0x31,0x37,0x2e,0x35,0x33,0x30,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x33,0x33,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x38,0x32,0x31,0x20,0x32,0x33,0x2e,0x38,0x36,0x35,0x38,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x36,0x38,0x35,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x39,0x39,0x39,0x20,0x36,0x30,0x2e,0x37,0x32,0x39,0x36,0x31,0x36,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x39,0x30,0x2e,0x38,0x37,0x33,0x34,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x34,0x37,0x35,0x20,0x35,0x31,0x2e,0x39,0x30,0x32,0x38,0x31,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x33,0x2e,0x38,0x34,0x34,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x35,0x39,0x36,0x20,0x32,0x30,0x37,0x2e,0x32,0x38,0x34,0x31,0x39,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x32,0x2e,0x31,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x30,0x33,0x32,0x20,0x31,0x37,0x34,0x2e,0x36,0x31,0x36,0x32,0x31,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x34,0x2e,0x30,0x31,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x39,0x38,0x32,0x20,0x35,0x36,0x2e,0x38,0x34,0x34,0x33,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x39,0x30,0x2e,0x36,0x31,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x38,0x32,0x20,0x32,0x34,0x2e,0x31,0x36,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x30,0x2e,0x37,0x32,0x33,0x32,0x25,0x20,0x30,0x2e,0x31,0x36,0x31,0x31,0x36,0x20,0x31,0x37,0x2e,0x35,0x33,0x30,0x31,0x37,0x35,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x31,0x2e,0x36,0x37,0x36,0x33,0x25,0x20,0x30,0x2e,0x31,0x36,0x39,0x31,0x30,0x35,0x20,0x32,0x33,0x2e,0x38,0x36,0x35,0x38,0x36,0x35,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x33,0x2e,0x34,0x32,0x35,0x33,0x25,0x20,0x30,0x2e,0x30,0x39,0x34,0x39,0x39,0x34,0x20,0x36,0x30,0x2e,0x37,0x32,0x39,0x36,0x31,0x36,0x3b,0x2d,0x2d,0x6e,0x3a,0x35,0x34,0x2e,0x33,0x36,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x33,0x37,0x34,0x20,0x35,0x31,0x2e,0x39,0x30,0x32,0x38,0x31,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x35,0x2e,0x38,0x31,0x34,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x39,0x2e,0x32,0x32,0x34,0x35,0x25,0x20,0x30,0x2e,0x30,0x39,0x37,0x39,0x37,0x39,0x20,0x32,0x30,0x37,0x2e,0x32,0x38,0x34,0x31,0x39,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x36,0x30,0x2e,0x39,0x39,0x35,0x31,0x25,0x20,0x30,0x2e,0x30,0x38,0x30,0x31,0x35,0x39,0x20,0x31,0x37,0x34,0x2e,0x36,0x31,0x36,0x32,0x31,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x30,0x2e,0x30,0x38,0x31,0x37,0x25,0x20,0x30,0x2e,0x31,0x36,0x34,0x39,0x30,0x39,0x20,0x35,0x36,0x2e,0x38,0x34,0x34,0x33,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x35,0x33,0x2e,0x30,0x37,0x25,0x20,0x30,0x2e,0x32,0x34,0x31,0x20,0x32,0x34,0x2e,0x31,0x36,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x62,0x75,0x73,0x69,0x6e,0x65,0x73,0x73,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x32,0x2e,0x36,0x34,0x38,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x30,0x2e,0x39,0x34,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x34,0x2e,0x38,0x37,0x30,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x38,0x2e,0x33,0x34,0x30,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x38,0x31,0x31,0x20,0x32,0x35,0x31,0x2e,0x34,0x37,0x33,0x39,0x33,0x31,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x38,0x31,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x35,0x34,0x38,0x31,0x20,0x32,0x32,0x39,0x2e,0x33,0x38,0x39,0x34,0x31,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x33,0x2e,0x34,0x35,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x35,0x34,0x35,0x20,0x33,0x35,0x2e,0x37,0x39,0x31,0x35,0x32,0x35,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x35,0x2e,0x34,0x38,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x36,0x35,0x20,0x32,0x35,0x33,0x2e,0x30,0x34,0x31,0x32,0x34,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x32,0x2e,0x35,0x32,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x37,0x30,0x32,0x20,0x32,0x34,0x30,0x2e,0x30,0x33,0x33,0x36,0x39,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x34,0x2e,0x30,0x34,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x39,0x31,0x39,0x20,0x31,0x35,0x36,0x2e,0x35,0x39,0x36,0x31,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x35,0x2e,0x34,0x39,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x31,0x34,0x31,0x20,0x38,0x31,0x2e,0x35,0x31,0x39,0x31,0x37,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x39,0x30,0x2e,0x33,0x32,0x32,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x33,0x35,0x36,0x20,0x32,0x39,0x2e,0x36,0x37,0x34,0x35,0x30,0x37,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x31,0x2e,0x37,0x30,0x33,0x36,0x25,0x20,0x30,0x2e,0x30,0x39,0x39,0x30,0x35,0x37,0x20,0x32,0x35,0x31,0x2e,0x34,0x37,0x33,0x39,0x33,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x34,0x2e,0x30,0x39,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x34,0x30,0x35,0x20,0x32,0x32,0x39,0x2e,0x33,0x38,0x39,0x34,0x31,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x36,0x37,0x2e,0x32,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x36,0x37,0x37,0x32,0x36,0x20,0x33,0x35,0x2e,0x37,0x39,0x31,0x35,0x32,0x35,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x37,0x2e,0x34,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x32,0x35,0x20,0x32,0x35,0x33,0x2e,0x30,0x34,0x31,0x32,0x34,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x34,0x2e,0x33,0x35,0x33,0x35,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x32,0x2e,0x36,0x31,0x36,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x33,0x35,0x31,0x31,0x20,0x32,0x34,0x30,0x2e,0x30,0x33,0x33,0x36,0x39,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x30,0x2e,0x32,0x32,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x39,0x34,0x35,0x39,0x34,0x20,0x31,0x35,0x36,0x2e,0x35,0x39,0x36,0x31,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x37,0x2e,0x34,0x38,0x32,0x34,0x25,0x20,0x30,0x2e,0x31,0x31,0x35,0x37,0x30,0x34,0x20,0x38,0x31,0x2e,0x35,0x31,0x39,0x31,0x37,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x35,0x31,0x2e,0x36,0x31,0x30,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x36,0x37,0x38,0x20,0x32,0x39,0x2e,0x36,0x37,0x34,0x35,0x30,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x62,0x75,0x73,0x69,0x6e,0x65,0x73,0x73,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x32,0x2e,0x36,0x34,0x38,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x30,0x2e,0x39,0x34,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x34,0x2e,0x38,0x37,0x30,0x37,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x38,0x38,0x2e,0x33,0x34,0x30,0x37,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x38,0x31,0x31,0x20,0x32,0x35,0x31,0x2e,0x34,0x37,0x33,0x39,0x33,0x31,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x32,0x2e,0x38,0x31,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x35,0x34,0x38,0x31,0x20,0x32,0x32,0x39,0x2e,0x33,0x38,0x39,0x34,0x31,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x33,0x2e,0x34,0x35,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x35,0x34,0x35,0x20,0x33,0x35,0x2e,0x37,0x39,0x31,0x35,0x32,0x35,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x35,0x2e,0x34,0x38,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x32,0x36,0x35,0x20,0x32,0x35,0x33,0x2e,0x30,0x34,0x31,0x32,0x34,0x39,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x32,0x2e,0x35,0x32,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x37,0x30,0x32,0x20,0x32,0x34,0x30,0x2e,0x30,0x33,0x33,0x36,0x39,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x34,0x2e,0x30,0x34,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x39,0x31,0x39,0x20,0x31,0x35,0x36,0x2e,0x35,0x39,0x36,0x31,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x35,0x2e,0x34,0x39,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x31,0x34,0x31,0x20,0x38,0x31,0x2e,0x35,0x31,0x39,0x31,0x37,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x39,0x30,0x2e,0x33,0x32,0x32,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x33,0x35,0x36,0x20,0x32,0x39,0x2e,0x36,0x37,0x34,0x35,0x30,0x37,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x34,0x31,0x2e,0x37,0x30,0x33,0x36,0x25,0x20,0x30,0x2e,0x30,0x39,0x39,0x30,0x35,0x37,0x20,0x32,0x35,0x31,0x2e,0x34,0x37,0x33,0x39,0x33,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x34,0x2e,0x30,0x39,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x34,0x30,0x35,0x20,0x32,0x32,0x39,0x2e,0x33,0x38,0x39,0x34,0x31,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x36,0x37,0x2e,0x32,0x37,0x31,0x25,0x20,0x30,0x2e,0x31,0x36,0x37,0x37,0x32,0x36,0x20,0x33,0x35,0x2e,0x37,0x39,0x31,0x35,0x32,0x35,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x37,0x2e,0x34,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x31,0x33,0x32,0x35,0x20,0x32,0x35,0x33,0x2e,0x30,0x34,0x31,0x32,0x34,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x34,0x2e,0x33,0x35,0x33,0x35,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x32,0x2e,0x36,0x31,0x36,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x33,0x35,0x31,0x31,0x20,0x32,0x34,0x30,0x2e,0x30,0x33,0x33,0x36,0x39,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x30,0x2e,0x32,0x32,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x39,0x34,0x35,0x39,0x34,0x20,0x31,0x35,0x36,0x2e,0x35,0x39,0x36,0x31,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x37,0x37,0x2e,0x34,0x38,0x32,0x34,0x25,0x20,0x30,0x2e,0x31,0x31,0x35,0x37,0x30,0x34,0x20,0x38,0x31,0x2e,0x35,0x31,0x39,0x31,0x37,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x35,0x31,0x2e,0x36,0x31,0x30,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x36,0x37,0x38,0x20,0x32,0x39,0x2e,0x36,0x37,0x34,0x35,0x30,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x61,0x63,0x69,0x64,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x31,0x2e,0x36,0x31,0x34,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x34,0x2e,0x37,0x31,0x38,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x39,0x2e,0x37,0x30,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x37,0x31,0x34,0x20,0x33,0x33,0x30,0x2e,0x37,0x35,0x39,0x35,0x37,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x36,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x34,0x38,0x20,0x34,0x38,0x2e,0x32,0x35,0x30,0x38,0x37,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x38,0x2e,0x35,0x35,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x38,0x20,0x31,0x32,0x32,0x2e,0x39,0x36,0x32,0x39,0x35,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x32,0x36,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x36,0x20,0x32,0x37,0x38,0x2e,0x36,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x32,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x35,0x34,0x20,0x32,0x35,0x32,0x2e,0x30,0x35,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x35,0x33,0x32,0x20,0x31,0x35,0x38,0x2e,0x35,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x38,0x2e,0x32,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x32,0x34,0x20,0x31,0x30,0x30,0x2e,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x39,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x35,0x38,0x36,0x20,0x32,0x39,0x2e,0x33,0x34,0x39,0x31,0x38,0x38,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x31,0x2e,0x39,0x25,0x20,0x30,0x2e,0x33,0x35,0x37,0x20,0x33,0x33,0x30,0x2e,0x37,0x35,0x39,0x35,0x37,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x33,0x2e,0x33,0x37,0x25,0x20,0x30,0x2e,0x32,0x32,0x34,0x20,0x34,0x38,0x2e,0x32,0x35,0x30,0x38,0x37,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x39,0x32,0x2e,0x37,0x38,0x25,0x20,0x30,0x2e,0x32,0x36,0x34,0x20,0x31,0x32,0x32,0x2e,0x39,0x36,0x32,0x39,0x35,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x31,0x2e,0x33,0x31,0x25,0x20,0x30,0x2e,0x31,0x32,0x38,0x20,0x32,0x37,0x38,0x2e,0x36,0x38,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x38,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x30,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x32,0x32,0x37,0x20,0x32,0x35,0x32,0x2e,0x30,0x35,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x35,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x32,0x36,0x36,0x20,0x31,0x35,0x38,0x2e,0x35,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x39,0x31,0x2e,0x30,0x31,0x25,0x20,0x30,0x2e,0x32,0x31,0x32,0x20,0x31,0x30,0x30,0x2e,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x34,0x2e,0x38,0x34,0x25,0x20,0x30,0x2e,0x32,0x39,0x33,0x20,0x32,0x39,0x2e,0x33,0x34,0x39,0x31,0x38,0x38,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x61,0x63,0x69,0x64,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x31,0x2e,0x36,0x31,0x34,0x36,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x34,0x2e,0x37,0x31,0x38,0x39,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x39,0x2e,0x37,0x30,0x32,0x31,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x37,0x31,0x34,0x20,0x33,0x33,0x30,0x2e,0x37,0x35,0x39,0x35,0x37,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x36,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x34,0x38,0x20,0x34,0x38,0x2e,0x32,0x35,0x30,0x38,0x37,0x38,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x38,0x2e,0x35,0x35,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x32,0x38,0x20,0x31,0x32,0x32,0x2e,0x39,0x36,0x32,0x39,0x35,0x31,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x34,0x2e,0x32,0x36,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x36,0x20,0x32,0x37,0x38,0x2e,0x36,0x38,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x32,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x34,0x35,0x34,0x20,0x32,0x35,0x32,0x2e,0x30,0x35,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x35,0x33,0x32,0x20,0x31,0x35,0x38,0x2e,0x35,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x38,0x2e,0x32,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x34,0x32,0x34,0x20,0x31,0x30,0x30,0x2e,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x39,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x35,0x38,0x36,0x20,0x32,0x39,0x2e,0x33,0x34,0x39,0x31,0x38,0x38,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x31,0x2e,0x39,0x25,0x20,0x30,0x2e,0x33,0x35,0x37,0x20,0x33,0x33,0x30,0x2e,0x37,0x35,0x39,0x35,0x37,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x33,0x2e,0x33,0x37,0x25,0x20,0x30,0x2e,0x32,0x32,0x34,0x20,0x34,0x38,0x2e,0x32,0x35,0x30,0x38,0x37,0x38,0x3b,0x2d,0x2d,0x61,0x3a,0x39,0x32,0x2e,0x37,0x38,0x25,0x20,0x30,0x2e,0x32,0x36,0x34,0x20,0x31,0x32,0x32,0x2e,0x39,0x36,0x32,0x39,0x35,0x31,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x31,0x2e,0x33,0x31,0x25,0x20,0x30,0x2e,0x31,0x32,0x38,0x20,0x32,0x37,0x38,0x2e,0x36,0x38,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x38,0x2e,0x35,0x31,0x30,0x34,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x30,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x32,0x32,0x37,0x20,0x32,0x35,0x32,0x2e,0x30,0x35,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x35,0x2e,0x37,0x32,0x25,0x20,0x30,0x2e,0x32,0x36,0x36,0x20,0x31,0x35,0x38,0x2e,0x35,0x33,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x39,0x31,0x2e,0x30,0x31,0x25,0x20,0x30,0x2e,0x32,0x31,0x32,0x20,0x31,0x30,0x30,0x2e,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x34,0x2e,0x38,0x34,0x25,0x20,0x30,0x2e,0x32,0x39,0x33,0x20,0x32,0x39,0x2e,0x33,0x34,0x39,0x31,0x38,0x38,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x6c,0x65,0x6d,0x6f,0x6e,0x61,0x64,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x31,0x2e,0x38,0x30,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x36,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x34,0x2e,0x38,0x39,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x32,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x39,0x2e,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x31,0x2e,0x37,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x20,0x31,0x33,0x34,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x32,0x20,0x31,0x31,0x31,0x2e,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x37,0x2e,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x32,0x20,0x31,0x30,0x30,0x2e,0x37,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x36,0x2e,0x31,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x20,0x31,0x30,0x38,0x2e,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x32,0x32,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x31,0x35,0x37,0x2e,0x38,0x35,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x31,0x30,0x32,0x2e,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x32,0x35,0x2e,0x38,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x35,0x38,0x2e,0x39,0x32,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x31,0x33,0x34,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x37,0x2e,0x37,0x35,0x25,0x20,0x30,0x2e,0x31,0x39,0x36,0x20,0x31,0x31,0x31,0x2e,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x35,0x2e,0x33,0x39,0x25,0x20,0x30,0x2e,0x32,0x30,0x31,0x20,0x31,0x30,0x30,0x2e,0x37,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x30,0x2e,0x39,0x38,0x25,0x20,0x30,0x2e,0x30,0x37,0x35,0x20,0x31,0x30,0x38,0x2e,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x38,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x32,0x32,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x31,0x35,0x37,0x2e,0x38,0x35,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x31,0x30,0x32,0x2e,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x32,0x35,0x2e,0x38,0x35,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x65,0x6d,0x6f,0x6e,0x61,0x64,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x31,0x2e,0x38,0x30,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x36,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x34,0x2e,0x38,0x39,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x32,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x31,0x39,0x2e,0x37,0x34,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x34,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x31,0x2e,0x37,0x38,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x20,0x31,0x33,0x34,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x35,0x2e,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x32,0x20,0x31,0x31,0x31,0x2e,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x37,0x2e,0x30,0x37,0x38,0x25,0x20,0x30,0x2e,0x30,0x34,0x30,0x32,0x20,0x31,0x30,0x30,0x2e,0x37,0x33,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x36,0x2e,0x31,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x20,0x31,0x30,0x38,0x2e,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x32,0x32,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x31,0x35,0x37,0x2e,0x38,0x35,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x31,0x30,0x32,0x2e,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x34,0x20,0x32,0x35,0x2e,0x38,0x35,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x35,0x38,0x2e,0x39,0x32,0x25,0x20,0x30,0x2e,0x31,0x39,0x39,0x20,0x31,0x33,0x34,0x2e,0x36,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x37,0x2e,0x37,0x35,0x25,0x20,0x30,0x2e,0x31,0x39,0x36,0x20,0x31,0x31,0x31,0x2e,0x30,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x38,0x35,0x2e,0x33,0x39,0x25,0x20,0x30,0x2e,0x32,0x30,0x31,0x20,0x31,0x30,0x30,0x2e,0x37,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x33,0x30,0x2e,0x39,0x38,0x25,0x20,0x30,0x2e,0x30,0x37,0x35,0x20,0x31,0x30,0x38,0x2e,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x38,0x2e,0x37,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x20,0x31,0x32,0x33,0x2e,0x37,0x32,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x32,0x32,0x34,0x2e,0x31,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x31,0x35,0x37,0x2e,0x38,0x35,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x31,0x30,0x32,0x2e,0x31,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x38,0x36,0x2e,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x34,0x37,0x20,0x32,0x35,0x2e,0x38,0x35,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x6e,0x69,0x67,0x68,0x74,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x31,0x39,0x2e,0x33,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x30,0x33,0x37,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x37,0x2e,0x38,0x36,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x32,0x34,0x39,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x34,0x2e,0x31,0x35,0x33,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x39,0x36,0x35,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x30,0x37,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x37,0x39,0x38,0x20,0x32,0x33,0x32,0x2e,0x36,0x36,0x31,0x34,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x36,0x30,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x36,0x36,0x31,0x20,0x32,0x37,0x36,0x2e,0x39,0x33,0x34,0x39,0x30,0x32,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x34,0x37,0x32,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x32,0x34,0x34,0x20,0x33,0x35,0x30,0x2e,0x30,0x34,0x38,0x37,0x33,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x35,0x2e,0x35,0x38,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x33,0x37,0x20,0x32,0x36,0x30,0x2e,0x30,0x33,0x30,0x39,0x38,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x35,0x2e,0x36,0x39,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x35,0x30,0x36,0x20,0x31,0x38,0x31,0x2e,0x39,0x31,0x31,0x39,0x37,0x37,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x36,0x2e,0x36,0x34,0x38,0x36,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x39,0x31,0x32,0x20,0x38,0x32,0x2e,0x39,0x35,0x30,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x33,0x35,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x30,0x35,0x31,0x20,0x31,0x33,0x2e,0x31,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x35,0x2e,0x33,0x35,0x31,0x33,0x25,0x20,0x30,0x2e,0x31,0x33,0x38,0x39,0x38,0x39,0x20,0x32,0x33,0x32,0x2e,0x36,0x36,0x31,0x34,0x38,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x38,0x2e,0x30,0x31,0x31,0x33,0x25,0x20,0x30,0x2e,0x31,0x35,0x38,0x33,0x30,0x33,0x20,0x32,0x37,0x36,0x2e,0x39,0x33,0x34,0x39,0x30,0x32,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x32,0x2e,0x33,0x36,0x30,0x33,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x32,0x31,0x38,0x20,0x33,0x35,0x30,0x2e,0x30,0x34,0x38,0x37,0x33,0x39,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x37,0x2e,0x39,0x34,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x34,0x38,0x20,0x32,0x36,0x30,0x2e,0x30,0x33,0x30,0x39,0x38,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x30,0x2e,0x37,0x36,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x32,0x34,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x38,0x2e,0x34,0x35,0x35,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x38,0x30,0x36,0x32,0x20,0x32,0x33,0x37,0x2e,0x32,0x35,0x31,0x33,0x35,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x38,0x2e,0x34,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x33,0x32,0x35,0x32,0x39,0x20,0x31,0x38,0x31,0x2e,0x39,0x31,0x31,0x39,0x37,0x37,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x33,0x2e,0x32,0x34,0x32,0x38,0x25,0x20,0x30,0x2e,0x31,0x33,0x39,0x35,0x35,0x38,0x20,0x38,0x32,0x2e,0x39,0x35,0x30,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x38,0x35,0x38,0x25,0x20,0x30,0x2e,0x31,0x37,0x30,0x32,0x35,0x35,0x20,0x31,0x33,0x2e,0x31,0x31,0x38,0x33,0x34,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x69,0x67,0x68,0x74,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x31,0x39,0x2e,0x33,0x31,0x34,0x34,0x25,0x20,0x30,0x2e,0x30,0x33,0x37,0x30,0x33,0x37,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x37,0x2e,0x38,0x36,0x30,0x36,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x32,0x34,0x39,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x34,0x2e,0x31,0x35,0x33,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x39,0x36,0x35,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x35,0x2e,0x30,0x37,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x37,0x39,0x38,0x20,0x32,0x33,0x32,0x2e,0x36,0x36,0x31,0x34,0x38,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x36,0x30,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x36,0x36,0x31,0x20,0x32,0x37,0x36,0x2e,0x39,0x33,0x34,0x39,0x30,0x32,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x34,0x37,0x32,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x32,0x34,0x34,0x20,0x33,0x35,0x30,0x2e,0x30,0x34,0x38,0x37,0x33,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x35,0x2e,0x35,0x38,0x39,0x39,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x33,0x37,0x20,0x32,0x36,0x30,0x2e,0x30,0x33,0x30,0x39,0x38,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x35,0x2e,0x36,0x39,0x30,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x35,0x30,0x36,0x20,0x31,0x38,0x31,0x2e,0x39,0x31,0x31,0x39,0x37,0x37,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x36,0x2e,0x36,0x34,0x38,0x36,0x25,0x20,0x30,0x2e,0x30,0x32,0x37,0x39,0x31,0x32,0x20,0x38,0x32,0x2e,0x39,0x35,0x30,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x33,0x35,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x34,0x30,0x35,0x31,0x20,0x31,0x33,0x2e,0x31,0x31,0x38,0x33,0x34,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x35,0x2e,0x33,0x35,0x31,0x33,0x25,0x20,0x30,0x2e,0x31,0x33,0x38,0x39,0x38,0x39,0x20,0x32,0x33,0x32,0x2e,0x36,0x36,0x31,0x34,0x38,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x38,0x2e,0x30,0x31,0x31,0x33,0x25,0x20,0x30,0x2e,0x31,0x35,0x38,0x33,0x30,0x33,0x20,0x32,0x37,0x36,0x2e,0x39,0x33,0x34,0x39,0x30,0x32,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x32,0x2e,0x33,0x36,0x30,0x33,0x25,0x20,0x30,0x2e,0x31,0x37,0x36,0x32,0x31,0x38,0x20,0x33,0x35,0x30,0x2e,0x30,0x34,0x38,0x37,0x33,0x39,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x37,0x2e,0x39,0x34,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x36,0x38,0x34,0x38,0x20,0x32,0x36,0x30,0x2e,0x30,0x33,0x30,0x39,0x38,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x30,0x2e,0x37,0x36,0x38,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x39,0x38,0x32,0x34,0x20,0x32,0x36,0x35,0x2e,0x37,0x35,0x34,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x38,0x2e,0x34,0x35,0x35,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x38,0x30,0x36,0x32,0x20,0x32,0x33,0x37,0x2e,0x32,0x35,0x31,0x33,0x35,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x38,0x2e,0x34,0x35,0x32,0x25,0x20,0x30,0x2e,0x31,0x33,0x32,0x35,0x32,0x39,0x20,0x31,0x38,0x31,0x2e,0x39,0x31,0x31,0x39,0x37,0x37,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x33,0x2e,0x32,0x34,0x32,0x38,0x25,0x20,0x30,0x2e,0x31,0x33,0x39,0x35,0x35,0x38,0x20,0x38,0x32,0x2e,0x39,0x35,0x30,0x30,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x31,0x2e,0x37,0x38,0x35,0x38,0x25,0x20,0x30,0x2e,0x31,0x37,0x30,0x32,0x35,0x35,0x20,0x31,0x33,0x2e,0x31,0x31,0x38,0x33,0x34,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x63,0x6f,0x66,0x66,0x65,0x65,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x2e,0x31,0x35,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x34,0x35,0x37,0x20,0x33,0x32,0x39,0x2e,0x37,0x30,0x38,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x38,0x2e,0x36,0x34,0x31,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x38,0x34,0x32,0x20,0x33,0x32,0x39,0x2e,0x37,0x30,0x38,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x33,0x39,0x39,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x37,0x36,0x35,0x20,0x36,0x32,0x2e,0x37,0x35,0x36,0x33,0x39,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x36,0x2e,0x38,0x39,0x33,0x25,0x20,0x30,0x2e,0x30,0x30,0x35,0x39,0x37,0x20,0x31,0x39,0x39,0x2e,0x31,0x39,0x34,0x34,0x34,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x38,0x38,0x2e,0x35,0x32,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x38,0x38,0x31,0x20,0x32,0x32,0x34,0x2e,0x33,0x38,0x39,0x31,0x38,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x33,0x2e,0x33,0x30,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x33,0x31,0x34,0x39,0x20,0x33,0x32,0x36,0x2e,0x32,0x36,0x31,0x34,0x34,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x35,0x2e,0x38,0x39,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x37,0x37,0x34,0x20,0x31,0x38,0x34,0x2e,0x35,0x35,0x38,0x33,0x36,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x34,0x2e,0x39,0x34,0x34,0x35,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x34,0x39,0x31,0x20,0x31,0x33,0x31,0x2e,0x31,0x31,0x36,0x32,0x37,0x36,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x36,0x33,0x30,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x31,0x36,0x32,0x20,0x38,0x37,0x2e,0x37,0x32,0x32,0x34,0x31,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x35,0x2e,0x34,0x36,0x33,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x36,0x34,0x34,0x20,0x33,0x31,0x2e,0x38,0x37,0x31,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x31,0x2e,0x39,0x39,0x36,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x33,0x38,0x32,0x35,0x20,0x36,0x32,0x2e,0x37,0x35,0x36,0x33,0x39,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x33,0x34,0x2e,0x34,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x38,0x34,0x39,0x20,0x31,0x39,0x39,0x2e,0x31,0x39,0x34,0x34,0x34,0x3b,0x2d,0x2d,0x61,0x3a,0x34,0x32,0x2e,0x36,0x32,0x31,0x33,0x25,0x20,0x30,0x2e,0x30,0x37,0x34,0x34,0x30,0x35,0x20,0x32,0x32,0x34,0x2e,0x33,0x38,0x39,0x31,0x38,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x31,0x36,0x2e,0x35,0x31,0x30,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x37,0x34,0x33,0x20,0x33,0x32,0x36,0x2e,0x32,0x36,0x31,0x34,0x34,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x31,0x2e,0x36,0x37,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x30,0x37,0x32,0x20,0x33,0x32,0x39,0x2e,0x37,0x30,0x38,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x32,0x2e,0x33,0x35,0x34,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x32,0x37,0x39,0x34,0x20,0x37,0x39,0x2e,0x31,0x32,0x39,0x33,0x38,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x39,0x2e,0x34,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x33,0x38,0x36,0x39,0x20,0x31,0x38,0x34,0x2e,0x35,0x35,0x38,0x33,0x36,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x34,0x2e,0x37,0x32,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x37,0x32,0x34,0x35,0x36,0x20,0x31,0x33,0x31,0x2e,0x31,0x31,0x36,0x32,0x37,0x36,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x38,0x2e,0x31,0x35,0x30,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x30,0x38,0x31,0x32,0x20,0x38,0x37,0x2e,0x37,0x32,0x32,0x34,0x31,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x37,0x2e,0x33,0x31,0x38,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x38,0x32,0x32,0x20,0x33,0x31,0x2e,0x38,0x37,0x31,0x39,0x32,0x32,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x6f,0x66,0x66,0x65,0x65,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x2e,0x31,0x35,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x31,0x34,0x35,0x37,0x20,0x33,0x32,0x39,0x2e,0x37,0x30,0x38,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x38,0x2e,0x36,0x34,0x31,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x38,0x34,0x32,0x20,0x33,0x32,0x39,0x2e,0x37,0x30,0x38,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x33,0x39,0x39,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x37,0x36,0x35,0x20,0x36,0x32,0x2e,0x37,0x35,0x36,0x33,0x39,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x36,0x2e,0x38,0x39,0x33,0x25,0x20,0x30,0x2e,0x30,0x30,0x35,0x39,0x37,0x20,0x31,0x39,0x39,0x2e,0x31,0x39,0x34,0x34,0x34,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x38,0x38,0x2e,0x35,0x32,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x38,0x38,0x31,0x20,0x32,0x32,0x34,0x2e,0x33,0x38,0x39,0x31,0x38,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x33,0x2e,0x33,0x30,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x30,0x33,0x31,0x34,0x39,0x20,0x33,0x32,0x36,0x2e,0x32,0x36,0x31,0x34,0x34,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x35,0x2e,0x38,0x39,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x37,0x37,0x34,0x20,0x31,0x38,0x34,0x2e,0x35,0x35,0x38,0x33,0x36,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x34,0x2e,0x39,0x34,0x34,0x35,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x34,0x39,0x31,0x20,0x31,0x33,0x31,0x2e,0x31,0x31,0x36,0x32,0x37,0x36,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x36,0x33,0x30,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x31,0x36,0x32,0x20,0x38,0x37,0x2e,0x37,0x32,0x32,0x34,0x31,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x35,0x2e,0x34,0x36,0x33,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x35,0x36,0x34,0x34,0x20,0x33,0x31,0x2e,0x38,0x37,0x31,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x31,0x2e,0x39,0x39,0x36,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x33,0x38,0x32,0x35,0x20,0x36,0x32,0x2e,0x37,0x35,0x36,0x33,0x39,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x33,0x34,0x2e,0x34,0x36,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x39,0x38,0x34,0x39,0x20,0x31,0x39,0x39,0x2e,0x31,0x39,0x34,0x34,0x34,0x3b,0x2d,0x2d,0x61,0x3a,0x34,0x32,0x2e,0x36,0x32,0x31,0x33,0x25,0x20,0x30,0x2e,0x30,0x37,0x34,0x34,0x30,0x35,0x20,0x32,0x32,0x34,0x2e,0x33,0x38,0x39,0x31,0x38,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x31,0x36,0x2e,0x35,0x31,0x30,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x37,0x34,0x33,0x20,0x33,0x32,0x36,0x2e,0x32,0x36,0x31,0x34,0x34,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x31,0x2e,0x36,0x37,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x30,0x37,0x32,0x20,0x33,0x32,0x39,0x2e,0x37,0x30,0x38,0x36,0x33,0x37,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x32,0x2e,0x33,0x35,0x34,0x37,0x25,0x20,0x30,0x2e,0x30,0x39,0x32,0x37,0x39,0x34,0x20,0x37,0x39,0x2e,0x31,0x32,0x39,0x33,0x38,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x37,0x39,0x2e,0x34,0x39,0x30,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x33,0x38,0x36,0x39,0x20,0x31,0x38,0x34,0x2e,0x35,0x35,0x38,0x33,0x36,0x37,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x34,0x2e,0x37,0x32,0x32,0x34,0x25,0x20,0x30,0x2e,0x30,0x37,0x32,0x34,0x35,0x36,0x20,0x31,0x33,0x31,0x2e,0x31,0x31,0x36,0x32,0x37,0x36,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x38,0x2e,0x31,0x35,0x30,0x33,0x25,0x20,0x30,0x2e,0x31,0x34,0x30,0x38,0x31,0x32,0x20,0x38,0x37,0x2e,0x37,0x32,0x32,0x34,0x31,0x33,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x37,0x2e,0x33,0x31,0x38,0x37,0x25,0x20,0x30,0x2e,0x31,0x32,0x38,0x32,0x32,0x20,0x33,0x31,0x2e,0x38,0x37,0x31,0x39,0x32,0x32,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x77,0x69,0x6e,0x74,0x65,0x72,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x39,0x31,0x2e,0x33,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x20,0x32,0x35,0x37,0x2e,0x35,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x38,0x2e,0x35,0x31,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x32,0x32,0x20,0x32,0x38,0x32,0x2e,0x33,0x33,0x39,0x34,0x33,0x33,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x31,0x2e,0x39,0x38,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x38,0x33,0x30,0x33,0x20,0x33,0x33,0x35,0x2e,0x31,0x37,0x31,0x34,0x33,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x33,0x2e,0x39,0x32,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x37,0x30,0x34,0x20,0x32,0x35,0x37,0x2e,0x36,0x35,0x31,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x36,0x32,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x31,0x37,0x38,0x20,0x32,0x31,0x34,0x2e,0x35,0x31,0x35,0x32,0x36,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x36,0x2e,0x30,0x39,0x38,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x34,0x30,0x34,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x33,0x37,0x31,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x38,0x33,0x34,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x31,0x36,0x37,0x20,0x37,0x31,0x2e,0x34,0x37,0x30,0x33,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x36,0x31,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x30,0x33,0x37,0x20,0x32,0x30,0x2e,0x30,0x37,0x36,0x32,0x39,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x35,0x36,0x2e,0x38,0x36,0x25,0x20,0x30,0x2e,0x32,0x35,0x35,0x20,0x32,0x35,0x37,0x2e,0x35,0x37,0x3b,0x2d,0x2d,0x73,0x3a,0x34,0x32,0x2e,0x35,0x35,0x31,0x36,0x25,0x20,0x30,0x2e,0x31,0x36,0x31,0x30,0x39,0x38,0x20,0x32,0x38,0x32,0x2e,0x33,0x33,0x39,0x34,0x33,0x33,0x3b,0x2d,0x2d,0x61,0x3a,0x35,0x39,0x2e,0x39,0x33,0x39,0x38,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x35,0x31,0x35,0x20,0x33,0x33,0x35,0x2e,0x31,0x37,0x31,0x34,0x33,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x31,0x39,0x2e,0x36,0x31,0x36,0x36,0x25,0x20,0x30,0x2e,0x30,0x36,0x33,0x35,0x31,0x38,0x20,0x32,0x35,0x37,0x2e,0x36,0x35,0x31,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x37,0x2e,0x34,0x36,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x39,0x34,0x37,0x20,0x32,0x35,0x39,0x2e,0x38,0x32,0x32,0x35,0x36,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x33,0x2e,0x32,0x36,0x38,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x32,0x32,0x33,0x20,0x32,0x36,0x32,0x2e,0x37,0x35,0x31,0x33,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x34,0x31,0x2e,0x38,0x38,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x35,0x33,0x38,0x38,0x35,0x20,0x32,0x35,0x35,0x2e,0x38,0x32,0x34,0x39,0x31,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x38,0x2e,0x31,0x32,0x37,0x35,0x25,0x20,0x30,0x2e,0x30,0x38,0x35,0x38,0x38,0x38,0x20,0x32,0x31,0x34,0x2e,0x35,0x31,0x35,0x32,0x36,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x30,0x2e,0x34,0x39,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x37,0x37,0x30,0x31,0x39,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x33,0x37,0x31,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x39,0x2e,0x31,0x37,0x32,0x35,0x25,0x20,0x30,0x2e,0x30,0x34,0x35,0x38,0x33,0x33,0x20,0x37,0x31,0x2e,0x34,0x37,0x30,0x33,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x30,0x39,0x32,0x36,0x25,0x20,0x30,0x2e,0x31,0x31,0x30,0x31,0x38,0x35,0x20,0x32,0x30,0x2e,0x30,0x37,0x36,0x32,0x39,0x33,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x77,0x69,0x6e,0x74,0x65,0x72,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x39,0x31,0x2e,0x33,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x35,0x31,0x20,0x32,0x35,0x37,0x2e,0x35,0x37,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x38,0x38,0x2e,0x35,0x31,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x33,0x32,0x32,0x32,0x20,0x32,0x38,0x32,0x2e,0x33,0x33,0x39,0x34,0x33,0x33,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x31,0x2e,0x39,0x38,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x38,0x33,0x30,0x33,0x20,0x33,0x33,0x35,0x2e,0x31,0x37,0x31,0x34,0x33,0x34,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x33,0x2e,0x39,0x32,0x33,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x37,0x30,0x34,0x20,0x32,0x35,0x37,0x2e,0x36,0x35,0x31,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x36,0x32,0x35,0x35,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x31,0x37,0x38,0x20,0x32,0x31,0x34,0x2e,0x35,0x31,0x35,0x32,0x36,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x36,0x2e,0x30,0x39,0x38,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x34,0x30,0x34,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x33,0x37,0x31,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x38,0x33,0x34,0x35,0x25,0x20,0x30,0x2e,0x30,0x30,0x39,0x31,0x36,0x37,0x20,0x37,0x31,0x2e,0x34,0x37,0x30,0x33,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x34,0x2e,0x36,0x31,0x38,0x35,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x30,0x33,0x37,0x20,0x32,0x30,0x2e,0x30,0x37,0x36,0x32,0x39,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x35,0x36,0x2e,0x38,0x36,0x25,0x20,0x30,0x2e,0x32,0x35,0x35,0x20,0x32,0x35,0x37,0x2e,0x35,0x37,0x3b,0x2d,0x2d,0x73,0x3a,0x34,0x32,0x2e,0x35,0x35,0x31,0x36,0x25,0x20,0x30,0x2e,0x31,0x36,0x31,0x30,0x39,0x38,0x20,0x32,0x38,0x32,0x2e,0x33,0x33,0x39,0x34,0x33,0x33,0x3b,0x2d,0x2d,0x61,0x3a,0x35,0x39,0x2e,0x39,0x33,0x39,0x38,0x25,0x20,0x30,0x2e,0x31,0x39,0x31,0x35,0x31,0x35,0x20,0x33,0x33,0x35,0x2e,0x31,0x37,0x31,0x34,0x33,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x31,0x39,0x2e,0x36,0x31,0x36,0x36,0x25,0x20,0x30,0x2e,0x30,0x36,0x33,0x35,0x31,0x38,0x20,0x32,0x35,0x37,0x2e,0x36,0x35,0x31,0x39,0x36,0x35,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x31,0x30,0x30,0x25,0x20,0x30,0x20,0x30,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x37,0x2e,0x34,0x36,0x36,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x39,0x34,0x37,0x20,0x32,0x35,0x39,0x2e,0x38,0x32,0x32,0x35,0x36,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x39,0x33,0x2e,0x32,0x36,0x38,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x32,0x32,0x33,0x20,0x32,0x36,0x32,0x2e,0x37,0x35,0x31,0x33,0x37,0x35,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x34,0x31,0x2e,0x38,0x38,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x35,0x33,0x38,0x38,0x35,0x20,0x32,0x35,0x35,0x2e,0x38,0x32,0x34,0x39,0x31,0x31,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x38,0x2e,0x31,0x32,0x37,0x35,0x25,0x20,0x30,0x2e,0x30,0x38,0x35,0x38,0x38,0x38,0x20,0x32,0x31,0x34,0x2e,0x35,0x31,0x35,0x32,0x36,0x34,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x30,0x2e,0x34,0x39,0x34,0x31,0x25,0x20,0x30,0x2e,0x30,0x37,0x37,0x30,0x31,0x39,0x20,0x31,0x39,0x37,0x2e,0x38,0x32,0x33,0x37,0x31,0x39,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x39,0x2e,0x31,0x37,0x32,0x35,0x25,0x20,0x30,0x2e,0x30,0x34,0x35,0x38,0x33,0x33,0x20,0x37,0x31,0x2e,0x34,0x37,0x30,0x33,0x31,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x37,0x33,0x2e,0x30,0x39,0x32,0x36,0x25,0x20,0x30,0x2e,0x31,0x31,0x30,0x31,0x38,0x35,0x20,0x32,0x30,0x2e,0x30,0x37,0x36,0x32,0x39,0x33,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x64,0x69,0x6d,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x37,0x2e,0x32,0x32,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x33,0x33,0x31,0x20,0x31,0x33,0x39,0x2e,0x35,0x34,0x39,0x39,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x36,0x37,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x31,0x38,0x31,0x20,0x33,0x35,0x2e,0x33,0x35,0x33,0x30,0x35,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x38,0x34,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x37,0x32,0x38,0x20,0x33,0x31,0x31,0x2e,0x33,0x37,0x39,0x32,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x32,0x31,0x35,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x34,0x30,0x39,0x20,0x32,0x30,0x36,0x2e,0x31,0x38,0x32,0x39,0x35,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x34,0x33,0x37,0x20,0x31,0x36,0x36,0x2e,0x35,0x33,0x34,0x30,0x34,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x34,0x34,0x37,0x20,0x39,0x34,0x2e,0x38,0x31,0x38,0x36,0x37,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x36,0x2e,0x34,0x38,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x31,0x34,0x20,0x33,0x33,0x2e,0x37,0x35,0x36,0x33,0x35,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x36,0x2e,0x31,0x33,0x33,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x31,0x36,0x35,0x36,0x20,0x31,0x33,0x39,0x2e,0x35,0x34,0x39,0x39,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x33,0x2e,0x33,0x37,0x35,0x39,0x25,0x20,0x30,0x2e,0x31,0x36,0x35,0x39,0x30,0x34,0x20,0x33,0x35,0x2e,0x33,0x35,0x33,0x30,0x35,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x34,0x2e,0x32,0x32,0x39,0x36,0x25,0x20,0x30,0x2e,0x31,0x33,0x33,0x36,0x34,0x31,0x20,0x33,0x31,0x31,0x2e,0x33,0x37,0x39,0x32,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x37,0x33,0x31,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x34,0x38,0x33,0x20,0x32,0x36,0x34,0x2e,0x30,0x39,0x34,0x37,0x32,0x38,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x32,0x2e,0x39,0x30,0x31,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x33,0x35,0x20,0x32,0x32,0x32,0x2e,0x39,0x35,0x39,0x33,0x32,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x33,0x30,0x2e,0x38,0x35,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x32,0x34,0x33,0x20,0x32,0x36,0x34,0x2e,0x31,0x34,0x39,0x34,0x39,0x38,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x38,0x2e,0x30,0x33,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x38,0x33,0x20,0x32,0x36,0x34,0x2e,0x31,0x38,0x32,0x30,0x37,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x36,0x2e,0x33,0x34,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x34,0x30,0x33,0x20,0x32,0x36,0x32,0x2e,0x31,0x37,0x37,0x37,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x32,0x2e,0x39,0x30,0x31,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x33,0x35,0x20,0x32,0x32,0x32,0x2e,0x39,0x35,0x39,0x33,0x32,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x36,0x2e,0x30,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x32,0x30,0x34,0x36,0x20,0x32,0x30,0x36,0x2e,0x31,0x38,0x32,0x39,0x35,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x36,0x2e,0x31,0x37,0x31,0x37,0x25,0x20,0x30,0x2e,0x31,0x34,0x32,0x31,0x38,0x37,0x20,0x31,0x36,0x36,0x2e,0x35,0x33,0x34,0x30,0x34,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x36,0x2e,0x31,0x36,0x33,0x34,0x25,0x20,0x30,0x2e,0x31,0x34,0x32,0x32,0x33,0x36,0x20,0x39,0x34,0x2e,0x38,0x31,0x38,0x36,0x37,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x38,0x32,0x2e,0x34,0x31,0x38,0x39,0x25,0x20,0x30,0x2e,0x30,0x39,0x39,0x35,0x37,0x20,0x33,0x33,0x2e,0x37,0x35,0x36,0x33,0x35,0x37,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x64,0x69,0x6d,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x37,0x2e,0x32,0x32,0x36,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x33,0x33,0x31,0x20,0x31,0x33,0x39,0x2e,0x35,0x34,0x39,0x39,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x36,0x37,0x35,0x32,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x31,0x38,0x31,0x20,0x33,0x35,0x2e,0x33,0x35,0x33,0x30,0x35,0x39,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x38,0x34,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x32,0x36,0x37,0x32,0x38,0x20,0x33,0x31,0x31,0x2e,0x33,0x37,0x39,0x32,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x32,0x31,0x35,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x34,0x30,0x39,0x20,0x32,0x30,0x36,0x2e,0x31,0x38,0x32,0x39,0x35,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x34,0x33,0x37,0x20,0x31,0x36,0x36,0x2e,0x35,0x33,0x34,0x30,0x34,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x32,0x33,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x38,0x34,0x34,0x37,0x20,0x39,0x34,0x2e,0x38,0x31,0x38,0x36,0x37,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x36,0x2e,0x34,0x38,0x33,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x31,0x34,0x20,0x33,0x33,0x2e,0x37,0x35,0x36,0x33,0x35,0x37,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x31,0x2e,0x39,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x35,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x70,0x3a,0x38,0x36,0x2e,0x31,0x33,0x33,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x31,0x36,0x35,0x36,0x20,0x31,0x33,0x39,0x2e,0x35,0x34,0x39,0x39,0x39,0x31,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x33,0x2e,0x33,0x37,0x35,0x39,0x25,0x20,0x30,0x2e,0x31,0x36,0x35,0x39,0x30,0x34,0x20,0x33,0x35,0x2e,0x33,0x35,0x33,0x30,0x35,0x39,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x34,0x2e,0x32,0x32,0x39,0x36,0x25,0x20,0x30,0x2e,0x31,0x33,0x33,0x36,0x34,0x31,0x20,0x33,0x31,0x31,0x2e,0x33,0x37,0x39,0x32,0x34,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x34,0x2e,0x37,0x33,0x31,0x31,0x25,0x20,0x30,0x2e,0x30,0x32,0x30,0x34,0x38,0x33,0x20,0x32,0x36,0x34,0x2e,0x30,0x39,0x34,0x37,0x32,0x38,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x32,0x2e,0x39,0x30,0x31,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x33,0x35,0x20,0x32,0x32,0x32,0x2e,0x39,0x35,0x39,0x33,0x32,0x34,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x33,0x30,0x2e,0x38,0x35,0x37,0x37,0x25,0x20,0x30,0x2e,0x30,0x32,0x33,0x32,0x34,0x33,0x20,0x32,0x36,0x34,0x2e,0x31,0x34,0x39,0x34,0x39,0x38,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x38,0x2e,0x30,0x33,0x36,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x38,0x33,0x20,0x32,0x36,0x34,0x2e,0x31,0x38,0x32,0x30,0x37,0x34,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x32,0x36,0x2e,0x33,0x34,0x36,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x38,0x34,0x30,0x33,0x20,0x32,0x36,0x32,0x2e,0x31,0x37,0x37,0x37,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x38,0x32,0x2e,0x39,0x30,0x31,0x31,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x33,0x33,0x35,0x20,0x32,0x32,0x32,0x2e,0x39,0x35,0x39,0x33,0x32,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x36,0x2e,0x30,0x37,0x38,0x35,0x25,0x20,0x30,0x2e,0x31,0x34,0x32,0x30,0x34,0x36,0x20,0x32,0x30,0x36,0x2e,0x31,0x38,0x32,0x39,0x35,0x39,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x36,0x2e,0x31,0x37,0x31,0x37,0x25,0x20,0x30,0x2e,0x31,0x34,0x32,0x31,0x38,0x37,0x20,0x31,0x36,0x36,0x2e,0x35,0x33,0x34,0x30,0x34,0x38,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x36,0x2e,0x31,0x36,0x33,0x34,0x25,0x20,0x30,0x2e,0x31,0x34,0x32,0x32,0x33,0x36,0x20,0x39,0x34,0x2e,0x38,0x31,0x38,0x36,0x37,0x39,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x38,0x32,0x2e,0x34,0x31,0x38,0x39,0x25,0x20,0x30,0x2e,0x30,0x39,0x39,0x35,0x37,0x20,0x33,0x33,0x2e,0x37,0x35,0x36,0x33,0x35,0x37,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x6e,0x6f,0x72,0x64,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x31,0x2e,0x38,0x38,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x34,0x34,0x39,0x20,0x32,0x35,0x34,0x2e,0x30,0x32,0x37,0x37,0x37,0x34,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x39,0x33,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x38,0x32,0x32,0x20,0x32,0x34,0x38,0x2e,0x36,0x38,0x37,0x31,0x38,0x36,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x34,0x39,0x32,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x34,0x35,0x20,0x32,0x31,0x37,0x2e,0x34,0x36,0x39,0x30,0x31,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x33,0x2e,0x38,0x34,0x31,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x34,0x39,0x39,0x20,0x33,0x33,0x32,0x2e,0x36,0x36,0x34,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x35,0x2e,0x33,0x36,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x39,0x38,0x20,0x31,0x33,0x31,0x2e,0x30,0x36,0x33,0x30,0x36,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x30,0x39,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x38,0x34,0x37,0x20,0x38,0x34,0x2e,0x30,0x39,0x33,0x33,0x33,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x31,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x31,0x31,0x39,0x20,0x31,0x35,0x2e,0x33,0x34,0x31,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x35,0x39,0x2e,0x34,0x33,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x37,0x37,0x32,0x34,0x36,0x20,0x32,0x35,0x34,0x2e,0x30,0x32,0x37,0x37,0x37,0x34,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x36,0x35,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x39,0x31,0x30,0x38,0x20,0x32,0x34,0x38,0x2e,0x36,0x38,0x37,0x31,0x38,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x37,0x2e,0x34,0x36,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x32,0x34,0x39,0x20,0x32,0x31,0x37,0x2e,0x34,0x36,0x39,0x30,0x31,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x34,0x35,0x2e,0x32,0x32,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x32,0x31,0x34,0x20,0x32,0x36,0x34,0x2e,0x31,0x33,0x31,0x32,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x39,0x32,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x33,0x37,0x34,0x20,0x32,0x36,0x32,0x2e,0x37,0x34,0x39,0x32,0x35,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x35,0x2e,0x31,0x32,0x37,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x34,0x34,0x35,0x20,0x32,0x36,0x30,0x2e,0x37,0x33,0x31,0x35,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x2e,0x32,0x39,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x33,0x38,0x39,0x20,0x32,0x36,0x31,0x2e,0x37,0x38,0x38,0x34,0x38,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x39,0x2e,0x39,0x32,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x33,0x37,0x34,0x20,0x32,0x36,0x32,0x2e,0x37,0x34,0x39,0x32,0x35,0x36,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x33,0x32,0x2e,0x34,0x33,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x39,0x34,0x35,0x20,0x32,0x36,0x34,0x2e,0x31,0x38,0x32,0x30,0x33,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x39,0x2e,0x32,0x30,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x34,0x39,0x36,0x20,0x33,0x33,0x32,0x2e,0x36,0x36,0x34,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x36,0x2e,0x38,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x37,0x34,0x38,0x39,0x39,0x20,0x31,0x33,0x31,0x2e,0x30,0x36,0x33,0x30,0x36,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x35,0x2e,0x34,0x38,0x36,0x32,0x25,0x20,0x30,0x2e,0x30,0x38,0x39,0x32,0x33,0x34,0x20,0x38,0x34,0x2e,0x30,0x39,0x33,0x33,0x33,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x30,0x2e,0x36,0x31,0x25,0x20,0x30,0x2e,0x31,0x32,0x30,0x35,0x39,0x34,0x20,0x31,0x35,0x2e,0x33,0x34,0x31,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x6f,0x72,0x64,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x6c,0x69,0x67,0x68,0x74,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x31,0x2e,0x38,0x38,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x34,0x34,0x39,0x20,0x32,0x35,0x34,0x2e,0x30,0x32,0x37,0x37,0x37,0x34,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x33,0x2e,0x39,0x33,0x30,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x31,0x38,0x32,0x32,0x20,0x32,0x34,0x38,0x2e,0x36,0x38,0x37,0x31,0x38,0x36,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x35,0x2e,0x34,0x39,0x32,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x34,0x35,0x20,0x32,0x31,0x37,0x2e,0x34,0x36,0x39,0x30,0x31,0x37,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x33,0x2e,0x38,0x34,0x31,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x32,0x34,0x39,0x39,0x20,0x33,0x33,0x32,0x2e,0x36,0x36,0x34,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x35,0x2e,0x33,0x36,0x35,0x34,0x25,0x20,0x30,0x2e,0x30,0x31,0x34,0x39,0x38,0x20,0x31,0x33,0x31,0x2e,0x30,0x36,0x33,0x30,0x36,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x30,0x39,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x38,0x34,0x37,0x20,0x38,0x34,0x2e,0x30,0x39,0x33,0x33,0x33,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x32,0x2e,0x31,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x32,0x34,0x31,0x31,0x39,0x20,0x31,0x35,0x2e,0x33,0x34,0x31,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x35,0x39,0x2e,0x34,0x33,0x35,0x39,0x25,0x20,0x30,0x2e,0x30,0x37,0x37,0x32,0x34,0x36,0x20,0x32,0x35,0x34,0x2e,0x30,0x32,0x37,0x37,0x37,0x34,0x3b,0x2d,0x2d,0x73,0x3a,0x36,0x39,0x2e,0x36,0x35,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x35,0x39,0x31,0x30,0x38,0x20,0x32,0x34,0x38,0x2e,0x36,0x38,0x37,0x31,0x38,0x36,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x37,0x2e,0x34,0x36,0x34,0x33,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x32,0x34,0x39,0x20,0x32,0x31,0x37,0x2e,0x34,0x36,0x39,0x30,0x31,0x37,0x3b,0x2d,0x2d,0x6e,0x3a,0x34,0x35,0x2e,0x32,0x32,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x32,0x31,0x34,0x20,0x32,0x36,0x34,0x2e,0x31,0x33,0x31,0x32,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x38,0x39,0x2e,0x39,0x32,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x33,0x37,0x34,0x20,0x32,0x36,0x32,0x2e,0x37,0x34,0x39,0x32,0x35,0x36,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x39,0x35,0x2e,0x31,0x32,0x37,0x36,0x25,0x20,0x30,0x2e,0x30,0x30,0x37,0x34,0x34,0x35,0x20,0x32,0x36,0x30,0x2e,0x37,0x33,0x31,0x35,0x33,0x39,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x39,0x33,0x2e,0x32,0x39,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x30,0x33,0x38,0x39,0x20,0x32,0x36,0x31,0x2e,0x37,0x38,0x38,0x34,0x38,0x35,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x38,0x39,0x2e,0x39,0x32,0x35,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x33,0x37,0x34,0x20,0x32,0x36,0x32,0x2e,0x37,0x34,0x39,0x32,0x35,0x36,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x33,0x32,0x2e,0x34,0x33,0x37,0x34,0x25,0x20,0x30,0x2e,0x30,0x32,0x32,0x39,0x34,0x35,0x20,0x32,0x36,0x34,0x2e,0x31,0x38,0x32,0x30,0x33,0x36,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x36,0x39,0x2e,0x32,0x30,0x37,0x32,0x25,0x20,0x30,0x2e,0x30,0x36,0x32,0x34,0x39,0x36,0x20,0x33,0x33,0x32,0x2e,0x36,0x36,0x34,0x39,0x32,0x32,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x37,0x36,0x2e,0x38,0x32,0x37,0x25,0x20,0x30,0x2e,0x30,0x37,0x34,0x38,0x39,0x39,0x20,0x31,0x33,0x31,0x2e,0x30,0x36,0x33,0x30,0x36,0x31,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x35,0x2e,0x34,0x38,0x36,0x32,0x25,0x20,0x30,0x2e,0x30,0x38,0x39,0x32,0x33,0x34,0x20,0x38,0x34,0x2e,0x30,0x39,0x33,0x33,0x33,0x35,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x36,0x30,0x2e,0x36,0x31,0x25,0x20,0x30,0x2e,0x31,0x32,0x30,0x35,0x39,0x34,0x20,0x31,0x35,0x2e,0x33,0x34,0x31,0x38,0x38,0x33,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x32,0x72,0x65,0x6d,0x7d,0x5b,0x64,0x61,0x74,0x61,0x2d,0x74,0x68,0x65,0x6d,0x65,0x3d,0x73,0x75,0x6e,0x73,0x65,0x74,0x5d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x39,0x34,0x30,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x36,0x35,0x36,0x20,0x33,0x39,0x2e,0x39,0x34,0x37,0x30,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x35,0x30,0x37,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x35,0x33,0x31,0x20,0x32,0x2e,0x37,0x32,0x30,0x33,0x34,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x32,0x35,0x38,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x33,0x33,0x36,0x20,0x32,0x39,0x39,0x2e,0x38,0x34,0x34,0x35,0x33,0x33,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x31,0x31,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x30,0x35,0x34,0x20,0x32,0x30,0x36,0x2e,0x30,0x31,0x35,0x31,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x31,0x31,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x31,0x37,0x32,0x20,0x31,0x34,0x34,0x2e,0x37,0x37,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x31,0x31,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x39,0x36,0x31,0x20,0x37,0x34,0x2e,0x34,0x32,0x37,0x37,0x39,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x37,0x2e,0x31,0x30,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x37,0x37,0x38,0x20,0x31,0x36,0x2e,0x38,0x38,0x36,0x33,0x37,0x39,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x34,0x2e,0x37,0x30,0x33,0x39,0x25,0x20,0x30,0x2e,0x31,0x35,0x38,0x32,0x37,0x38,0x20,0x33,0x39,0x2e,0x39,0x34,0x37,0x30,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x32,0x2e,0x35,0x33,0x37,0x35,0x25,0x20,0x30,0x2e,0x31,0x37,0x37,0x36,0x35,0x34,0x20,0x32,0x2e,0x37,0x32,0x30,0x33,0x34,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x31,0x2e,0x32,0x39,0x34,0x37,0x25,0x20,0x30,0x2e,0x31,0x36,0x36,0x36,0x37,0x38,0x20,0x32,0x39,0x39,0x2e,0x38,0x34,0x34,0x35,0x33,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x37,0x30,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x37,0x2e,0x33,0x38,0x33,0x35,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x35,0x38,0x36,0x20,0x32,0x34,0x35,0x2e,0x30,0x39,0x36,0x35,0x33,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x35,0x2e,0x35,0x35,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x38,0x35,0x32,0x37,0x31,0x20,0x32,0x30,0x36,0x2e,0x30,0x31,0x35,0x31,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x35,0x2e,0x35,0x36,0x30,0x39,0x25,0x20,0x30,0x2e,0x30,0x38,0x35,0x38,0x36,0x20,0x31,0x34,0x34,0x2e,0x37,0x37,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x35,0x2e,0x35,0x36,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x38,0x34,0x38,0x30,0x36,0x20,0x37,0x34,0x2e,0x34,0x32,0x37,0x37,0x39,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x38,0x35,0x2e,0x35,0x31,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x37,0x38,0x38,0x39,0x20,0x31,0x36,0x2e,0x38,0x38,0x36,0x33,0x37,0x39,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x38,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x3a,0x72,0x6f,0x6f,0x74,0x3a,0x68,0x61,0x73,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x5b,0x76,0x61,0x6c,0x75,0x65,0x3d,0x73,0x75,0x6e,0x73,0x65,0x74,0x5d,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x64,0x61,0x72,0x6b,0x3b,0x2d,0x2d,0x70,0x63,0x3a,0x31,0x34,0x2e,0x39,0x34,0x30,0x38,0x25,0x20,0x30,0x2e,0x30,0x33,0x31,0x36,0x35,0x36,0x20,0x33,0x39,0x2e,0x39,0x34,0x37,0x30,0x33,0x3b,0x2d,0x2d,0x73,0x63,0x3a,0x31,0x34,0x2e,0x35,0x30,0x37,0x35,0x25,0x20,0x30,0x2e,0x30,0x33,0x35,0x35,0x33,0x31,0x20,0x32,0x2e,0x37,0x32,0x30,0x33,0x34,0x3b,0x2d,0x2d,0x61,0x63,0x3a,0x31,0x34,0x2e,0x32,0x35,0x38,0x39,0x25,0x20,0x30,0x2e,0x30,0x33,0x33,0x33,0x33,0x36,0x20,0x32,0x39,0x39,0x2e,0x38,0x34,0x34,0x35,0x33,0x33,0x3b,0x2d,0x2d,0x69,0x6e,0x63,0x3a,0x31,0x37,0x2e,0x31,0x31,0x31,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x30,0x35,0x34,0x20,0x32,0x30,0x36,0x2e,0x30,0x31,0x35,0x31,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x63,0x3a,0x31,0x37,0x2e,0x31,0x31,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x37,0x31,0x37,0x32,0x20,0x31,0x34,0x34,0x2e,0x37,0x37,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x63,0x3a,0x31,0x37,0x2e,0x31,0x31,0x33,0x39,0x25,0x20,0x30,0x2e,0x30,0x31,0x36,0x39,0x36,0x31,0x20,0x37,0x34,0x2e,0x34,0x32,0x37,0x37,0x39,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x63,0x3a,0x31,0x37,0x2e,0x31,0x30,0x32,0x33,0x25,0x20,0x30,0x2e,0x30,0x31,0x35,0x37,0x37,0x38,0x20,0x31,0x36,0x2e,0x38,0x38,0x36,0x33,0x37,0x39,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x32,0x35,0x73,0x3b,0x2d,0x2d,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x2e,0x32,0x73,0x3b,0x2d,0x2d,0x62,0x74,0x6e,0x2d,0x66,0x6f,0x63,0x75,0x73,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3a,0x30,0x2e,0x39,0x35,0x3b,0x2d,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x74,0x6e,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x31,0x70,0x78,0x3b,0x2d,0x2d,0x70,0x3a,0x37,0x34,0x2e,0x37,0x30,0x33,0x39,0x25,0x20,0x30,0x2e,0x31,0x35,0x38,0x32,0x37,0x38,0x20,0x33,0x39,0x2e,0x39,0x34,0x37,0x30,0x33,0x3b,0x2d,0x2d,0x73,0x3a,0x37,0x32,0x2e,0x35,0x33,0x37,0x35,0x25,0x20,0x30,0x2e,0x31,0x37,0x37,0x36,0x35,0x34,0x20,0x32,0x2e,0x37,0x32,0x30,0x33,0x34,0x3b,0x2d,0x2d,0x61,0x3a,0x37,0x31,0x2e,0x32,0x39,0x34,0x37,0x25,0x20,0x30,0x2e,0x31,0x36,0x36,0x36,0x37,0x38,0x20,0x32,0x39,0x39,0x2e,0x38,0x34,0x34,0x35,0x33,0x33,0x3b,0x2d,0x2d,0x6e,0x3a,0x32,0x36,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x6e,0x63,0x3a,0x37,0x30,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x31,0x3a,0x32,0x32,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x32,0x3a,0x32,0x30,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x33,0x3a,0x31,0x38,0x25,0x20,0x30,0x2e,0x30,0x31,0x39,0x20,0x32,0x33,0x37,0x2e,0x36,0x39,0x3b,0x2d,0x2d,0x62,0x63,0x3a,0x37,0x37,0x2e,0x33,0x38,0x33,0x35,0x25,0x20,0x30,0x2e,0x30,0x34,0x33,0x35,0x38,0x36,0x20,0x32,0x34,0x35,0x2e,0x30,0x39,0x36,0x35,0x33,0x34,0x3b,0x2d,0x2d,0x69,0x6e,0x3a,0x38,0x35,0x2e,0x35,0x35,0x39,0x36,0x25,0x20,0x30,0x2e,0x30,0x38,0x35,0x32,0x37,0x31,0x20,0x32,0x30,0x36,0x2e,0x30,0x31,0x35,0x31,0x38,0x33,0x3b,0x2d,0x2d,0x73,0x75,0x3a,0x38,0x35,0x2e,0x35,0x36,0x30,0x39,0x25,0x20,0x30,0x2e,0x30,0x38,0x35,0x38,0x36,0x20,0x31,0x34,0x34,0x2e,0x37,0x37,0x38,0x37,0x34,0x3b,0x2d,0x2d,0x77,0x61,0x3a,0x38,0x35,0x2e,0x35,0x36,0x39,0x35,0x25,0x20,0x30,0x2e,0x30,0x38,0x34,0x38,0x30,0x36,0x20,0x37,0x34,0x2e,0x34,0x32,0x37,0x37,0x39,0x37,0x3b,0x2d,0x2d,0x65,0x72,0x3a,0x38,0x35,0x2e,0x35,0x31,0x31,0x36,0x25,0x20,0x30,0x2e,0x30,0x37,0x38,0x38,0x39,0x20,0x31,0x36,0x2e,0x38,0x38,0x36,0x33,0x37,0x39,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x3a,0x31,0x2e,0x32,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x74,0x6e,0x3a,0x30,0x2e,0x38,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x61,0x64,0x67,0x65,0x3a,0x30,0x2e,0x34,0x72,0x65,0x6d,0x3b,0x2d,0x2d,0x74,0x61,0x62,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x30,0x2e,0x37,0x72,0x65,0x6d,0x7d,0x0a,}; +unsigned int deps_daisyui_min_css_len = 190563; diff --git a/llama.cpp/build/examples/server/deps_markdown-it.js.hpp b/llama.cpp/build/examples/server/deps_markdown-it.js.hpp new file mode 100644 index 0000000000000000000000000000000000000000..d3697fe68f1959df3a54691347f7f4b88829ebe0 --- /dev/null +++ b/llama.cpp/build/examples/server/deps_markdown-it.js.hpp @@ -0,0 +1,2 @@ +unsigned char deps_markdown_it_js[] = {0x2f,0x2a,0x21,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x31,0x33,0x2e,0x30,0x2e,0x32,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x40,0x6c,0x69,0x63,0x65,0x6e,0x73,0x65,0x20,0x4d,0x49,0x54,0x20,0x2a,0x2f,0x0a,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x2c,0x20,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x20,0x3d,0x20,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x28,0x29,0x20,0x3a,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x26,0x26,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x2e,0x61,0x6d,0x64,0x20,0x3f,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x28,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x29,0x20,0x3a,0x20,0x28,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x3a,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x7c,0x7c,0x20,0x73,0x65,0x6c,0x66,0x2c,0x20,0x0a,0x20,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x2e,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x69,0x74,0x20,0x3d,0x20,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x28,0x29,0x29,0x3b,0x0a,0x7d,0x29,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x6a,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x28,0x66,0x6e,0x2c,0x20,0x62,0x61,0x73,0x65,0x64,0x69,0x72,0x2c,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x68,0x3a,0x20,0x62,0x61,0x73,0x65,0x64,0x69,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x61,0x74,0x68,0x2c,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6a,0x73,0x52,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x70,0x61,0x74,0x68,0x2c,0x20,0x62,0x61,0x73,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x7c,0x7c,0x20,0x62,0x61,0x73,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2e,0x70,0x61,0x74,0x68,0x20,0x3a,0x20,0x62,0x61,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x66,0x6e,0x28,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2c,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x29,0x2c,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x41,0x75,0x67,0x6d,0x65,0x6e,0x74,0x65,0x64,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x7b,0x7d,0x2c,0x20,0x22,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x6e,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x28,0x6e,0x2c,0x20,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x61,0x2c,0x20,0x6b,0x2c,0x20,0x64,0x2e,0x67,0x65,0x74,0x20,0x3f,0x20,0x64,0x20,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x5b,0x6b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6a,0x73,0x52,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x40,0x72,0x6f,0x6c,0x6c,0x75,0x70,0x2f,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2d,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6a,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x24,0x24,0x30,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x41,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x65,0x5c,0x75,0x30,0x33,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x65,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x45,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x78,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x65,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x78,0x65,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x66,0x73,0x79,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x70,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x6c,0x70,0x68,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x70,0x68,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6d,0x61,0x6c,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6d,0x70,0x3a,0x20,0x22,0x26,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x4d,0x50,0x3a,0x20,0x22,0x26,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x64,0x61,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x64,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x64,0x73,0x6c,0x6f,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x64,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x61,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x6d,0x73,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x72,0x74,0x76,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x72,0x74,0x76,0x62,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x73,0x70,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x73,0x74,0x3a,0x20,0x22,0x5c,0x78,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x67,0x7a,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x61,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x6f,0x73,0x3a,0x20,0x22,0x27,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x70,0x70,0x6c,0x79,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x72,0x6f,0x78,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x78,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x78,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x39,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x73,0x73,0x69,0x67,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x74,0x3a,0x20,0x22,0x2a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6d,0x70,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x41,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x65,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x77,0x63,0x6f,0x6e,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x77,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x63,0x6f,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x70,0x72,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x63,0x6b,0x73,0x69,0x6d,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x61,0x72,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x72,0x76,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x72,0x77,0x65,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x61,0x72,0x77,0x65,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x72,0x77,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x62,0x72,0x6b,0x74,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x63,0x6f,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x64,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x65,0x63,0x61,0x75,0x73,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x6d,0x70,0x74,0x79,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x70,0x73,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x72,0x6e,0x6f,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x65,0x72,0x6e,0x6f,0x75,0x6c,0x6c,0x69,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x74,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x65,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x6f,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x6f,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x6f,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x73,0x71,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x73,0x74,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x75,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x76,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x67,0x77,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6b,0x61,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x63,0x6b,0x6c,0x6f,0x7a,0x65,0x6e,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x63,0x6b,0x73,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x63,0x6b,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x63,0x6b,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x63,0x6b,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x63,0x6b,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x61,0x6e,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x34,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x6b,0x31,0x32,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x6b,0x31,0x34,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x6b,0x33,0x34,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x38,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6e,0x65,0x3a,0x20,0x22,0x3d,0x5c,0x75,0x32,0x30,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6e,0x65,0x71,0x75,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x31,0x5c,0x75,0x32,0x30,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x4e,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6e,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x77,0x74,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x62,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x64,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x64,0x4c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x44,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x44,0x4c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x64,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x64,0x52,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x44,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x44,0x52,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x48,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x68,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x48,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x68,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x48,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x68,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x48,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x68,0x55,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x48,0x55,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x75,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x75,0x4c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x55,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x55,0x4c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x75,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x75,0x52,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x55,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x55,0x52,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x48,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x48,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x4c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x4c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x76,0x52,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x78,0x56,0x52,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x70,0x72,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x72,0x76,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x78,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x65,0x6d,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x6f,0x6c,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x6f,0x6c,0x3a,0x20,0x22,0x5c,0x5c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x73,0x6f,0x6c,0x68,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6c,0x6c,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6d,0x70,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6d,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x42,0x75,0x6d,0x70,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6d,0x70,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x61,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x62,0x72,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x61,0x70,0x69,0x74,0x61,0x6c,0x44,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x69,0x61,0x6c,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x70,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x39,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x72,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x34,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x61,0x79,0x6c,0x65,0x79,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x63,0x61,0x70,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x65,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x63,0x6f,0x6e,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x63,0x75,0x70,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x63,0x75,0x70,0x73,0x73,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x65,0x64,0x69,0x6c,0x6c,0x61,0x3a,0x20,0x22,0x5c,0x78,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x65,0x6d,0x70,0x74,0x79,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x78,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x78,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x65,0x6e,0x74,0x65,0x72,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x78,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x48,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x6d,0x61,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x68,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x61,0x72,0x72,0x6f,0x77,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x61,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x69,0x72,0x63,0x6c,0x65,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x52,0x3a,0x20,0x22,0x5c,0x78,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x53,0x3a,0x20,0x22,0x5c,0x75,0x32,0x34,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x69,0x72,0x63,0x6c,0x65,0x4d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x69,0x72,0x63,0x6c,0x65,0x50,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x69,0x72,0x63,0x6c,0x65,0x54,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x66,0x6e,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x69,0x72,0x73,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6c,0x6f,0x63,0x6b,0x77,0x69,0x73,0x65,0x43,0x6f,0x6e,0x74,0x6f,0x75,0x72,0x49,0x6e,0x74,0x65,0x67,0x72,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6c,0x6f,0x73,0x65,0x43,0x75,0x72,0x6c,0x79,0x44,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6c,0x6f,0x73,0x65,0x43,0x75,0x72,0x6c,0x79,0x51,0x75,0x6f,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x75,0x62,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x75,0x62,0x73,0x75,0x69,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x3a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x6c,0x6f,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x3a,0x20,0x22,0x2c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x74,0x3a,0x20,0x22,0x40,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x66,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x67,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x36,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x6e,0x67,0x72,0x75,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x6e,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x6e,0x74,0x6f,0x75,0x72,0x49,0x6e,0x74,0x65,0x67,0x72,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x70,0x72,0x6f,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x70,0x79,0x3a,0x20,0x22,0x5c,0x78,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x4f,0x50,0x59,0x3a,0x20,0x22,0x5c,0x78,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x70,0x79,0x73,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x43,0x6c,0x6f,0x63,0x6b,0x77,0x69,0x73,0x65,0x43,0x6f,0x6e,0x74,0x6f,0x75,0x72,0x49,0x6e,0x74,0x65,0x67,0x72,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x6f,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x72,0x6f,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x73,0x75,0x62,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x73,0x75,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x64,0x61,0x72,0x72,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x64,0x61,0x72,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x65,0x70,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x65,0x73,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x6c,0x61,0x72,0x72,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x62,0x72,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x75,0x70,0x43,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x70,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x61,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x61,0x72,0x72,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x6c,0x79,0x65,0x71,0x70,0x72,0x65,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x6c,0x79,0x65,0x71,0x73,0x75,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x6c,0x79,0x76,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x6c,0x79,0x77,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x3a,0x20,0x22,0x5c,0x78,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x76,0x65,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x76,0x65,0x61,0x72,0x72,0x6f,0x77,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x76,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x77,0x65,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x77,0x63,0x6f,0x6e,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x77,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x79,0x6c,0x63,0x74,0x79,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x67,0x67,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x61,0x67,0x67,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x6c,0x65,0x74,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x61,0x73,0x68,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x73,0x68,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x62,0x6b,0x61,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x62,0x6c,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x64,0x61,0x67,0x67,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x64,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x44,0x6f,0x74,0x72,0x61,0x68,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x64,0x6f,0x74,0x73,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x67,0x3a,0x20,0x22,0x5c,0x78,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x65,0x6c,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6d,0x70,0x74,0x79,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x66,0x69,0x73,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x48,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x68,0x61,0x72,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x68,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x41,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x44,0x6f,0x75,0x62,0x6c,0x65,0x41,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x47,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x60,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x61,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x61,0x6d,0x6f,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x61,0x6d,0x6f,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x61,0x6d,0x6f,0x6e,0x64,0x73,0x75,0x69,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x61,0x6d,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x65,0x3a,0x20,0x22,0x5c,0x78,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x69,0x61,0x6c,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x67,0x61,0x6d,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x76,0x3a,0x20,0x22,0x5c,0x78,0x66,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x76,0x69,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x76,0x69,0x64,0x65,0x6f,0x6e,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x76,0x6f,0x6e,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x4a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6c,0x63,0x6f,0x72,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6c,0x63,0x72,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3a,0x20,0x22,0x24,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x78,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x74,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x74,0x65,0x71,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x74,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x74,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x74,0x73,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x75,0x62,0x6c,0x65,0x62,0x61,0x72,0x77,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x6f,0x75,0x72,0x49,0x6e,0x74,0x65,0x67,0x72,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x78,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x4c,0x65,0x66,0x74,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x4c,0x65,0x66,0x74,0x54,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x4c,0x6f,0x6e,0x67,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x4c,0x6f,0x6e,0x67,0x4c,0x65,0x66,0x74,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x4c,0x6f,0x6e,0x67,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x52,0x69,0x67,0x68,0x74,0x54,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x55,0x70,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x55,0x70,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x77,0x6e,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x55,0x70,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x42,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x77,0x6e,0x64,0x6f,0x77,0x6e,0x61,0x72,0x72,0x6f,0x77,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x77,0x6e,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x77,0x6e,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x4c,0x65,0x66,0x74,0x52,0x69,0x67,0x68,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x4c,0x65,0x66,0x74,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x4c,0x65,0x66,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x4c,0x65,0x66,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x52,0x69,0x67,0x68,0x74,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x52,0x69,0x67,0x68,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x52,0x69,0x67,0x68,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x54,0x65,0x65,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x6f,0x77,0x6e,0x54,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x72,0x62,0x6b,0x61,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x72,0x63,0x6f,0x72,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x72,0x63,0x72,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x39,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x53,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x73,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x73,0x6f,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x74,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x74,0x72,0x69,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x75,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x75,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x77,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x5a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x7a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x7a,0x69,0x67,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x61,0x73,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x65,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x44,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x67,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x67,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x69,0x6e,0x74,0x65,0x72,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x65,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x70,0x74,0x79,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x70,0x74,0x79,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x6d,0x70,0x74,0x79,0x53,0x6d,0x61,0x6c,0x6c,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x66,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x70,0x74,0x79,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x6d,0x70,0x74,0x79,0x56,0x65,0x72,0x79,0x53,0x6d,0x61,0x6c,0x6c,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x73,0x70,0x31,0x33,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x73,0x70,0x31,0x34,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x73,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x4e,0x47,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x73,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x70,0x61,0x72,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x65,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x70,0x73,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x70,0x73,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x73,0x6c,0x61,0x6e,0x74,0x67,0x74,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x73,0x6c,0x61,0x6e,0x74,0x6c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x75,0x61,0x6c,0x73,0x3a,0x20,0x22,0x3d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x71,0x75,0x61,0x6c,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x75,0x65,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x71,0x75,0x69,0x6c,0x69,0x62,0x72,0x69,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x75,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x75,0x69,0x76,0x44,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x76,0x70,0x61,0x72,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x72,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x54,0x48,0x3a,0x20,0x22,0x5c,0x78,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x74,0x68,0x3a,0x20,0x22,0x5c,0x78,0x66,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x75,0x72,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x63,0x6c,0x3a,0x20,0x22,0x21,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x78,0x69,0x73,0x74,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x69,0x61,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x45,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x69,0x61,0x6c,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x64,0x6f,0x74,0x73,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x65,0x6d,0x61,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x66,0x69,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x66,0x62,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x66,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x66,0x62,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x66,0x6c,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x66,0x62,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x66,0x62,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x69,0x6c,0x6c,0x65,0x64,0x53,0x6d,0x61,0x6c,0x6c,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x66,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x69,0x6c,0x6c,0x65,0x64,0x56,0x65,0x72,0x79,0x53,0x6d,0x61,0x6c,0x6c,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6a,0x6c,0x69,0x67,0x3a,0x20,0x22,0x66,0x6a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x61,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x66,0x62,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x74,0x6e,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x6f,0x66,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x61,0x6c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x6f,0x72,0x41,0x6c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6b,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x6f,0x75,0x72,0x69,0x65,0x72,0x74,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x70,0x61,0x72,0x74,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x31,0x32,0x3a,0x20,0x22,0x5c,0x78,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x31,0x33,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x31,0x34,0x3a,0x20,0x22,0x5c,0x78,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x31,0x35,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x31,0x36,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x31,0x38,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x32,0x33,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x32,0x35,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x33,0x34,0x3a,0x20,0x22,0x5c,0x78,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x33,0x35,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x33,0x38,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x34,0x35,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x35,0x36,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x35,0x38,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x63,0x37,0x38,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x35,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x46,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x61,0x6d,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x6d,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x61,0x6d,0x6d,0x61,0x64,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x6d,0x6d,0x61,0x64,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x45,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x71,0x73,0x6c,0x61,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x64,0x6f,0x74,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x64,0x6f,0x74,0x6f,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x62,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x73,0x6c,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x67,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x69,0x6d,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x4a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x6a,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x60,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x45,0x71,0x75,0x61,0x6c,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x46,0x75,0x6c,0x6c,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x73,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x73,0x69,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x3a,0x20,0x22,0x3e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x54,0x3a,0x20,0x22,0x3e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x47,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x6c,0x50,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x71,0x75,0x65,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x65,0x71,0x6c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x65,0x71,0x71,0x6c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x6c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x74,0x72,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x76,0x65,0x72,0x74,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x39,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x76,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x39,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x61,0x63,0x65,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x69,0x72,0x73,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6c,0x66,0x3a,0x20,0x22,0x5c,0x78,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6d,0x69,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x41,0x52,0x44,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x72,0x64,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x72,0x72,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x72,0x72,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x61,0x74,0x3a,0x20,0x22,0x5e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x72,0x74,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x72,0x74,0x73,0x75,0x69,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x6c,0x69,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x72,0x63,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x69,0x6c,0x62,0x65,0x72,0x74,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6b,0x73,0x65,0x61,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6b,0x73,0x77,0x61,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x66,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6d,0x74,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x72,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x4c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x73,0x6c,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x75,0x6d,0x70,0x44,0x6f,0x77,0x6e,0x48,0x75,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x75,0x6d,0x70,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x79,0x62,0x75,0x6c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x65,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x45,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x65,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x65,0x78,0x63,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x69,0x69,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x69,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x69,0x6e,0x66,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x69,0x6f,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x4a,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6a,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x61,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6d,0x61,0x67,0x69,0x6e,0x61,0x72,0x79,0x49,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x61,0x67,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x61,0x67,0x70,0x61,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x61,0x74,0x68,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x6f,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x65,0x64,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6d,0x70,0x6c,0x69,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x63,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x66,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x66,0x69,0x6e,0x74,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6f,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x63,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6e,0x74,0x65,0x67,0x72,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x63,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x6c,0x61,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x70,0x72,0x6f,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x43,0x6f,0x6d,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x54,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x4f,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6f,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x6f,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6f,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x70,0x72,0x6f,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x71,0x75,0x65,0x73,0x74,0x3a,0x20,0x22,0x5c,0x78,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x69,0x6e,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x69,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x69,0x6e,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x69,0x6e,0x73,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x69,0x6e,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x75,0x6b,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x75,0x6b,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x49,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x65,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6d,0x61,0x74,0x68,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x73,0x65,0x72,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x73,0x65,0x72,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4a,0x75,0x6b,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6a,0x75,0x6b,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x61,0x70,0x70,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x61,0x70,0x70,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x61,0x70,0x70,0x61,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x67,0x72,0x65,0x65,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x48,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x68,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x4a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x6a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4b,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x41,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x65,0x6d,0x70,0x74,0x79,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x67,0x72,0x61,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x61,0x6d,0x62,0x64,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x6d,0x62,0x64,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x61,0x70,0x6c,0x61,0x63,0x65,0x74,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x78,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x65,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x62,0x66,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x66,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x6c,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x70,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x72,0x72,0x74,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x74,0x61,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x41,0x74,0x61,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x74,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x64,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x42,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x72,0x61,0x63,0x65,0x3a,0x20,0x22,0x7b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x72,0x61,0x63,0x6b,0x3a,0x20,0x22,0x5b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x72,0x6b,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x72,0x6b,0x73,0x6c,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x62,0x72,0x6b,0x73,0x6c,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x63,0x65,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x63,0x75,0x62,0x3a,0x20,0x22,0x7b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x64,0x63,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x64,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x64,0x71,0x75,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x64,0x72,0x64,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x64,0x72,0x75,0x73,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x64,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x41,0x6e,0x67,0x6c,0x65,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x65,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x74,0x61,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x43,0x65,0x69,0x6c,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x44,0x6f,0x75,0x62,0x6c,0x65,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x44,0x6f,0x77,0x6e,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x44,0x6f,0x77,0x6e,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x44,0x6f,0x77,0x6e,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x46,0x6c,0x6f,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x73,0x71,0x75,0x69,0x67,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x52,0x69,0x67,0x68,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x54,0x65,0x65,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x54,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x74,0x68,0x72,0x65,0x65,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x55,0x70,0x44,0x6f,0x77,0x6e,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x55,0x70,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x55,0x70,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x55,0x70,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x66,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x45,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x71,0x73,0x6c,0x61,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x64,0x6f,0x74,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x64,0x6f,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x61,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x67,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x73,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x73,0x65,0x71,0x67,0x74,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x73,0x65,0x71,0x71,0x67,0x74,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x73,0x73,0x45,0x71,0x75,0x61,0x6c,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x73,0x73,0x46,0x75,0x6c,0x6c,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x73,0x73,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x73,0x67,0x74,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x73,0x73,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x73,0x73,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x73,0x73,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x65,0x73,0x73,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x66,0x69,0x73,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x66,0x6c,0x6f,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x67,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x48,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x68,0x61,0x72,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x68,0x61,0x72,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x68,0x61,0x72,0x75,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x68,0x62,0x6c,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x38,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x4a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6c,0x63,0x6f,0x72,0x6e,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6c,0x68,0x61,0x72,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6c,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x66,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6d,0x69,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x33,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6d,0x69,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6d,0x6f,0x75,0x73,0x74,0x61,0x63,0x68,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6d,0x6f,0x75,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x66,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6e,0x67,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x6e,0x67,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x6e,0x67,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6e,0x67,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x6e,0x67,0x4c,0x65,0x66,0x74,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x6e,0x67,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6e,0x67,0x6d,0x61,0x70,0x73,0x74,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6e,0x67,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x6e,0x67,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x6e,0x67,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6f,0x70,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6f,0x70,0x61,0x72,0x72,0x6f,0x77,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x77,0x61,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x77,0x62,0x61,0x72,0x3a,0x20,0x22,0x5f,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x77,0x65,0x72,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x6f,0x77,0x65,0x72,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x7a,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x7a,0x65,0x6e,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x7a,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x70,0x61,0x72,0x3a,0x20,0x22,0x28,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x70,0x61,0x72,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x72,0x63,0x6f,0x72,0x6e,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x72,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x72,0x68,0x61,0x72,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x72,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x72,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x61,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x69,0x6d,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x38,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x71,0x62,0x3a,0x20,0x22,0x5b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x71,0x75,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x3a,0x20,0x22,0x3c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x54,0x3a,0x20,0x22,0x3c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x68,0x72,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x71,0x75,0x65,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x72,0x69,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x74,0x72,0x50,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x75,0x72,0x64,0x73,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x75,0x72,0x75,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x76,0x65,0x72,0x74,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x38,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x76,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x38,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x78,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x6c,0x74,0x65,0x73,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x73,0x74,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x73,0x74,0x6f,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x73,0x74,0x6f,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x73,0x74,0x6f,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x63,0x6f,0x6d,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x44,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x61,0x73,0x75,0x72,0x65,0x64,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x65,0x64,0x69,0x75,0x6d,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x65,0x6c,0x6c,0x69,0x6e,0x74,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x68,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x63,0x72,0x6f,0x3a,0x20,0x22,0x5c,0x78,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x64,0x61,0x73,0x74,0x3a,0x20,0x22,0x2a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x64,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x66,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x64,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x78,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x75,0x73,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x75,0x73,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x75,0x73,0x64,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x69,0x6e,0x75,0x73,0x50,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6c,0x63,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6c,0x64,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6e,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x73,0x74,0x70,0x6f,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4d,0x75,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x75,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6d,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x75,0x6d,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x62,0x6c,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x30,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x70,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x70,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x62,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x70,0x6f,0x73,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x74,0x75,0x72,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x74,0x75,0x72,0x61,0x6c,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x74,0x75,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x62,0x73,0x70,0x3a,0x20,0x22,0x5c,0x78,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x62,0x75,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x65,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x62,0x75,0x6d,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x6f,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x6f,0x6e,0x67,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x36,0x64,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x61,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x4d,0x65,0x64,0x69,0x75,0x6d,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x54,0x68,0x69,0x63,0x6b,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x54,0x68,0x69,0x6e,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x65,0x72,0x79,0x54,0x68,0x69,0x6e,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x71,0x75,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x73,0x65,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x32,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x73,0x74,0x65,0x64,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x73,0x74,0x65,0x64,0x4c,0x65,0x73,0x73,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x65,0x77,0x4c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x69,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x69,0x73,0x74,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x37,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x37,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x65,0x71,0x73,0x6c,0x61,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x65,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x65,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x47,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x39,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x47,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x62,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x67,0x74,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x47,0x74,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x62,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x68,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x68,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x68,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x66,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x69,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x69,0x73,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x4a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x64,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x36,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x4c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x4c,0x65,0x66,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x36,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x71,0x73,0x6c,0x61,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x64,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x64,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x4c,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x38,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x4c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x61,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6c,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x4c,0x74,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x61,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x42,0x72,0x65,0x61,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x6e,0x42,0x72,0x65,0x61,0x6b,0x69,0x6e,0x67,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x78,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x78,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x43,0x6f,0x6e,0x67,0x72,0x75,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x43,0x75,0x70,0x43,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x44,0x6f,0x75,0x62,0x6c,0x65,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x45,0x71,0x75,0x61,0x6c,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x32,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x45,0x78,0x69,0x73,0x74,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x46,0x75,0x6c,0x6c,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x37,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x62,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x65,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x48,0x75,0x6d,0x70,0x44,0x6f,0x77,0x6e,0x48,0x75,0x6d,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x65,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x48,0x75,0x6d,0x70,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x69,0x6e,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x35,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x69,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x39,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x69,0x6e,0x76,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x69,0x6e,0x76,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x69,0x6e,0x76,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x66,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x66,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x66,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x73,0x73,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x73,0x73,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x73,0x73,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x61,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x73,0x73,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x64,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4c,0x65,0x73,0x73,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4e,0x65,0x73,0x74,0x65,0x64,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x47,0x72,0x65,0x61,0x74,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x32,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x4e,0x65,0x73,0x74,0x65,0x64,0x4c,0x65,0x73,0x73,0x4c,0x65,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x31,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x6e,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x6e,0x69,0x76,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x6e,0x69,0x76,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x6e,0x69,0x76,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x52,0x65,0x76,0x65,0x72,0x73,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x52,0x69,0x67,0x68,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x64,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x52,0x69,0x67,0x68,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x52,0x69,0x67,0x68,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x62,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x32,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x62,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x33,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x54,0x69,0x6c,0x64,0x65,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x54,0x69,0x6c,0x64,0x65,0x46,0x75,0x6c,0x6c,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x54,0x69,0x6c,0x64,0x65,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x61,0x72,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x66,0x64,0x5c,0x75,0x32,0x30,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x61,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x32,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x6f,0x6c,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x72,0x63,0x75,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x72,0x65,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x72,0x65,0x63,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x70,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x66,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x61,0x72,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x33,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x61,0x72,0x72,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x64,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x52,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x72,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x63,0x63,0x75,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x68,0x6f,0x72,0x74,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x68,0x6f,0x72,0x74,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x69,0x6d,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x71,0x73,0x75,0x62,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x71,0x73,0x75,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x62,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x35,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x62,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x32,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x62,0x73,0x65,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x62,0x73,0x65,0x74,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x35,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x63,0x63,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x30,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x70,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x36,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x70,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x33,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x70,0x73,0x65,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x73,0x75,0x70,0x73,0x65,0x74,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x36,0x5c,0x75,0x30,0x33,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x67,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x6c,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x6c,0x65,0x66,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x72,0x69,0x67,0x68,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4e,0x75,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6d,0x3a,0x20,0x22,0x23,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6d,0x65,0x72,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6d,0x73,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x64,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x44,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x56,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x56,0x44,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x35,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x67,0x74,0x3a,0x20,0x22,0x3e,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x48,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x69,0x6e,0x66,0x69,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x6c,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x34,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x6c,0x74,0x3a,0x20,0x22,0x3c,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x6c,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x34,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x72,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x72,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x35,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x76,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x63,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x77,0x61,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x77,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x77,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x77,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x77,0x6e,0x65,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x61,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x66,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x64,0x62,0x6c,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x64,0x62,0x6c,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x64,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x64,0x73,0x6f,0x6c,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x45,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x65,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x66,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x67,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x68,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x68,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x63,0x72,0x6f,0x73,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x34,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x6d,0x65,0x67,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6d,0x65,0x67,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x70,0x65,0x6e,0x43,0x75,0x72,0x6c,0x79,0x44,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x70,0x65,0x6e,0x43,0x75,0x72,0x6c,0x79,0x51,0x75,0x6f,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x72,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x64,0x65,0x72,0x6f,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x64,0x66,0x3a,0x20,0x22,0x5c,0x78,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x64,0x6d,0x3a,0x20,0x22,0x5c,0x78,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x69,0x67,0x6f,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x73,0x6c,0x6f,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x53,0x3a,0x20,0x22,0x5c,0x75,0x32,0x34,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x73,0x6c,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x78,0x64,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x73,0x6c,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x78,0x66,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x73,0x6f,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x74,0x69,0x6d,0x65,0x73,0x61,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x33,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x76,0x65,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x76,0x65,0x72,0x42,0x72,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x76,0x65,0x72,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x4f,0x76,0x65,0x72,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x3a,0x20,0x22,0x5c,0x78,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x66,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x66,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x61,0x72,0x74,0x69,0x61,0x6c,0x44,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x63,0x6e,0x74,0x3a,0x20,0x22,0x25,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x69,0x6f,0x64,0x3a,0x20,0x22,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x6d,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x74,0x65,0x6e,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x68,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x68,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x68,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x68,0x6d,0x6d,0x61,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x68,0x6f,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x69,0x74,0x63,0x68,0x66,0x6f,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x69,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x61,0x6e,0x63,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x61,0x6e,0x63,0x6b,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x61,0x6e,0x6b,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x61,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x2b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x64,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x64,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x6c,0x75,0x73,0x4d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x78,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x6d,0x6e,0x3a,0x20,0x22,0x5c,0x78,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x73,0x74,0x77,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6d,0x3a,0x20,0x22,0x5c,0x78,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x6f,0x69,0x6e,0x63,0x61,0x72,0x65,0x70,0x6c,0x61,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x69,0x6e,0x74,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x5c,0x78,0x61,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x63,0x75,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x63,0x75,0x72,0x6c,0x79,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x65,0x63,0x65,0x64,0x65,0x73,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x6e,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x63,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6e,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x6f,0x64,0x75,0x63,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x61,0x6c,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x66,0x73,0x75,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x6f,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x72,0x6f,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x74,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x75,0x72,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x73,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x73,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x6e,0x63,0x73,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x51,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x51,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x70,0x72,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x51,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x61,0x74,0x65,0x72,0x6e,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x61,0x74,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x73,0x74,0x3a,0x20,0x22,0x3f,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x73,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x6f,0x74,0x3a,0x20,0x27,0x22,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x51,0x55,0x4f,0x54,0x3a,0x20,0x27,0x22,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x41,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x64,0x5c,0x75,0x30,0x33,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x64,0x69,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x65,0x6d,0x70,0x74,0x79,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x6e,0x67,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x6e,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x78,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x62,0x66,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x66,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x6c,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x70,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x61,0x72,0x72,0x74,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x74,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x72,0x72,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x74,0x61,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x41,0x74,0x61,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x74,0x69,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x42,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x42,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x72,0x61,0x63,0x65,0x3a,0x20,0x22,0x7d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x72,0x61,0x63,0x6b,0x3a,0x20,0x22,0x5d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x72,0x6b,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x72,0x6b,0x73,0x6c,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x62,0x72,0x6b,0x73,0x6c,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x63,0x65,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x63,0x75,0x62,0x3a,0x20,0x22,0x7d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x64,0x63,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x64,0x6c,0x64,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x64,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x64,0x71,0x75,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x64,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x6c,0x70,0x61,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x6c,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x63,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x67,0x3a,0x20,0x22,0x5c,0x78,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x45,0x47,0x3a,0x20,0x22,0x5c,0x78,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x65,0x76,0x65,0x72,0x73,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x65,0x76,0x65,0x72,0x73,0x65,0x45,0x71,0x75,0x69,0x6c,0x69,0x62,0x72,0x69,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x65,0x76,0x65,0x72,0x73,0x65,0x55,0x70,0x45,0x71,0x75,0x69,0x6c,0x69,0x62,0x72,0x69,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x66,0x69,0x73,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x66,0x6c,0x6f,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x48,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x68,0x61,0x72,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x68,0x61,0x72,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x68,0x61,0x72,0x75,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x68,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x68,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x68,0x6f,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x41,0x6e,0x67,0x6c,0x65,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x65,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x74,0x61,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x43,0x65,0x69,0x6c,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x44,0x6f,0x75,0x62,0x6c,0x65,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x44,0x6f,0x77,0x6e,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x44,0x6f,0x77,0x6e,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x44,0x6f,0x77,0x6e,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x46,0x6c,0x6f,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x6c,0x65,0x66,0x74,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x73,0x71,0x75,0x69,0x67,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x54,0x65,0x65,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x54,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x74,0x68,0x72,0x65,0x65,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x54,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x55,0x70,0x44,0x6f,0x77,0x6e,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x55,0x70,0x54,0x65,0x65,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x55,0x70,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x55,0x70,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x69,0x67,0x68,0x74,0x56,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x69,0x73,0x69,0x6e,0x67,0x64,0x6f,0x74,0x73,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6c,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6c,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6d,0x6f,0x75,0x73,0x74,0x61,0x63,0x68,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6d,0x6f,0x75,0x73,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6e,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x61,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x66,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x65,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x38,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x6f,0x75,0x6e,0x64,0x49,0x6d,0x70,0x6c,0x69,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x70,0x61,0x72,0x3a,0x20,0x22,0x29,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x70,0x61,0x72,0x67,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x70,0x70,0x6f,0x6c,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x73,0x61,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x73,0x71,0x62,0x3a,0x20,0x22,0x5d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x73,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x73,0x71,0x75,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x68,0x72,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x72,0x69,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x72,0x69,0x6c,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x52,0x75,0x6c,0x65,0x44,0x65,0x6c,0x61,0x79,0x65,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x66,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x75,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x62,0x71,0x75,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x63,0x75,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x35,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6e,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x70,0x6f,0x6c,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x31,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x64,0x6f,0x74,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x64,0x6f,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x61,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x63,0x74,0x3a,0x20,0x22,0x5c,0x78,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6d,0x69,0x3a,0x20,0x22,0x3b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x73,0x77,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x6d,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x78,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x66,0x72,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x72,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x48,0x43,0x48,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x63,0x68,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x48,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x68,0x6f,0x72,0x74,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x68,0x6f,0x72,0x74,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x72,0x74,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x72,0x74,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x68,0x6f,0x72,0x74,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x68,0x6f,0x72,0x74,0x55,0x70,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x79,0x3a,0x20,0x22,0x5c,0x78,0x61,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x69,0x67,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x67,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x67,0x6d,0x61,0x66,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x67,0x6d,0x61,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x67,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x6c,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x39,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x69,0x6d,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x6d,0x61,0x6c,0x6c,0x43,0x69,0x72,0x63,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x65,0x74,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x61,0x73,0x68,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x65,0x70,0x61,0x72,0x73,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x65,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x69,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x69,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6d,0x74,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x61,0x63,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x4f,0x46,0x54,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x66,0x74,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x6c,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x33,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x6c,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x6c,0x3a,0x20,0x22,0x2f,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x61,0x64,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x61,0x64,0x65,0x73,0x75,0x69,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x63,0x61,0x70,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x33,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x63,0x75,0x70,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x34,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x62,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x62,0x73,0x65,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x70,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x73,0x75,0x70,0x73,0x65,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x49,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x62,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x71,0x75,0x61,0x72,0x65,0x55,0x6e,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x39,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x75,0x61,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x75,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x71,0x75,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x65,0x74,0x6d,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x6d,0x69,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x74,0x61,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x61,0x69,0x67,0x68,0x74,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x61,0x69,0x67,0x68,0x74,0x70,0x68,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x6e,0x73,0x3a,0x20,0x22,0x5c,0x78,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x65,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x6d,0x75,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x62,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x65,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x65,0x74,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x62,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x65,0x74,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x65,0x74,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x63,0x75,0x72,0x6c,0x79,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x53,0x6c,0x61,0x6e,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x63,0x63,0x65,0x65,0x64,0x73,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x6e,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x6e,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x63,0x63,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x37,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x63,0x68,0x54,0x68,0x61,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x36,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x31,0x3a,0x20,0x22,0x5c,0x78,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x32,0x3a,0x20,0x22,0x5c,0x78,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x33,0x3a,0x20,0x22,0x5c,0x78,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x64,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x68,0x73,0x6f,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x68,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x6d,0x75,0x6c,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x75,0x70,0x73,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x65,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x65,0x74,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x65,0x74,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x65,0x74,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x61,0x72,0x68,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x6e,0x77,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x7a,0x6c,0x69,0x67,0x3a,0x20,0x22,0x5c,0x78,0x64,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x61,0x62,0x3a,0x20,0x22,0x5c,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x61,0x75,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x75,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x62,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x63,0x65,0x64,0x69,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x6c,0x72,0x65,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x72,0x65,0x34,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x72,0x65,0x66,0x6f,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x68,0x65,0x72,0x65,0x66,0x6f,0x72,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x68,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x74,0x61,0x73,0x79,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x74,0x61,0x76,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x63,0x6b,0x61,0x70,0x70,0x72,0x6f,0x78,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x63,0x6b,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x68,0x69,0x63,0x6b,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x35,0x66,0x5c,0x75,0x32,0x30,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x68,0x69,0x6e,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x6e,0x73,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x6b,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x6b,0x73,0x69,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x48,0x4f,0x52,0x4e,0x3a,0x20,0x22,0x5c,0x78,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x6f,0x72,0x6e,0x3a,0x20,0x22,0x5c,0x78,0x66,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x32,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x33,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x69,0x6c,0x64,0x65,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x69,0x6c,0x64,0x65,0x46,0x75,0x6c,0x6c,0x45,0x71,0x75,0x61,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x69,0x6c,0x64,0x65,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x73,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x73,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x73,0x3a,0x20,0x22,0x5c,0x78,0x64,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x73,0x64,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6e,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x65,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x62,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x66,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x66,0x6f,0x72,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x73,0x61,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x32,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x70,0x72,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x52,0x41,0x44,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x6c,0x65,0x66,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x72,0x69,0x67,0x68,0x74,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x65,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x6d,0x69,0x6e,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x72,0x69,0x70,0x6c,0x65,0x44,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x73,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x74,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x33,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x70,0x65,0x7a,0x69,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x65,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x61,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x53,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x73,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x53,0x48,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x73,0x68,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x73,0x74,0x72,0x6f,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x77,0x69,0x78,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x36,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x77,0x6f,0x68,0x65,0x61,0x64,0x6c,0x65,0x66,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x77,0x6f,0x68,0x65,0x61,0x64,0x72,0x69,0x67,0x68,0x74,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x61,0x72,0x72,0x6f,0x63,0x69,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x34,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x62,0x72,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x62,0x72,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x62,0x72,0x65,0x76,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x64,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x78,0x66,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x64,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x64,0x62,0x6c,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x64,0x62,0x6c,0x61,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x64,0x68,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x66,0x69,0x73,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x67,0x72,0x61,0x76,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x48,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x68,0x61,0x72,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x68,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x68,0x62,0x6c,0x6b,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x38,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6c,0x63,0x6f,0x72,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6c,0x63,0x6f,0x72,0x6e,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6c,0x63,0x72,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6c,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x66,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6d,0x61,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6e,0x64,0x65,0x72,0x42,0x61,0x72,0x3a,0x20,0x22,0x5f,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6e,0x64,0x65,0x72,0x42,0x72,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x64,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6e,0x64,0x65,0x72,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6e,0x64,0x65,0x72,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6e,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6e,0x69,0x6f,0x6e,0x50,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6f,0x67,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x41,0x72,0x72,0x6f,0x77,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x41,0x72,0x72,0x6f,0x77,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x6f,0x77,0x6e,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x44,0x6f,0x77,0x6e,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x64,0x6f,0x77,0x6e,0x61,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x45,0x71,0x75,0x69,0x6c,0x69,0x62,0x72,0x69,0x75,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x68,0x61,0x72,0x70,0x6f,0x6f,0x6e,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x70,0x65,0x72,0x4c,0x65,0x66,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x70,0x65,0x72,0x52,0x69,0x67,0x68,0x74,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x73,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x73,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x73,0x69,0x68,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x54,0x65,0x65,0x41,0x72,0x72,0x6f,0x77,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x70,0x54,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x75,0x70,0x61,0x72,0x72,0x6f,0x77,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x63,0x6f,0x72,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x63,0x6f,0x72,0x6e,0x65,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x63,0x72,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x33,0x30,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x66,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x74,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x74,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x36,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x74,0x72,0x69,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x75,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x63,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x55,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x64,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x66,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x77,0x61,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x61,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6e,0x67,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x6b,0x61,0x70,0x70,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x30,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x70,0x68,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x70,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x70,0x72,0x6f,0x70,0x74,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x39,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x72,0x68,0x6f,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x66,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x73,0x69,0x67,0x6d,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x73,0x75,0x62,0x73,0x65,0x74,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x61,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x73,0x75,0x62,0x73,0x65,0x74,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x62,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x73,0x75,0x70,0x73,0x65,0x74,0x6e,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x62,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x73,0x75,0x70,0x73,0x65,0x74,0x6e,0x65,0x71,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x63,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x74,0x68,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x64,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x74,0x72,0x69,0x61,0x6e,0x67,0x6c,0x65,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x42,0x61,0x72,0x76,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x44,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x44,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x64,0x61,0x73,0x68,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x65,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x65,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x65,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x6c,0x6c,0x69,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x65,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x62,0x61,0x72,0x3a,0x20,0x22,0x7c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x74,0x3a,0x20,0x22,0x7c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x42,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x4c,0x69,0x6e,0x65,0x3a,0x20,0x22,0x7c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x35,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x54,0x69,0x6c,0x64,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x65,0x72,0x79,0x54,0x68,0x69,0x6e,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6c,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x73,0x75,0x62,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x32,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x73,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x33,0x5c,0x75,0x32,0x30,0x64,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x70,0x72,0x6f,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x31,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x72,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x73,0x75,0x62,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x62,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x73,0x75,0x62,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x61,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x73,0x75,0x70,0x6e,0x45,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x63,0x63,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x73,0x75,0x70,0x6e,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x38,0x62,0x5c,0x75,0x66,0x65,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x56,0x76,0x64,0x61,0x73,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x61,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x7a,0x69,0x67,0x7a,0x61,0x67,0x3a,0x20,0x22,0x5c,0x75,0x32,0x39,0x39,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x57,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x65,0x64,0x62,0x61,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x35,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x32,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x57,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x65,0x64,0x67,0x65,0x71,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x35,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x65,0x69,0x65,0x72,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x57,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x57,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x31,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x72,0x65,0x61,0x74,0x68,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x34,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x57,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x63,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x65,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x64,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x58,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x68,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x68,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x58,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x69,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6c,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6c,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6d,0x61,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6e,0x69,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x66,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6f,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x58,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6f,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x6f,0x74,0x69,0x6d,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x72,0x41,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x37,0x66,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x58,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x73,0x71,0x63,0x75,0x70,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x75,0x70,0x6c,0x75,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x61,0x30,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x75,0x74,0x72,0x69,0x3a,0x20,0x22,0x5c,0x75,0x32,0x35,0x62,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x76,0x65,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x78,0x77,0x65,0x64,0x67,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x32,0x63,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x78,0x66,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x41,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x61,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x63,0x69,0x72,0x63,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x65,0x6e,0x3a,0x20,0x22,0x5c,0x78,0x61,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x31,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x49,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x30,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x69,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x35,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x35,0x30,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x55,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x32,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x75,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x34,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x79,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x78,0x66,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x59,0x75,0x6d,0x6c,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x61,0x63,0x75,0x74,0x65,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x63,0x61,0x72,0x6f,0x6e,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x64,0x6f,0x74,0x3a,0x20,0x22,0x5c,0x75,0x30,0x31,0x37,0x63,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x65,0x65,0x74,0x72,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x65,0x72,0x6f,0x57,0x69,0x64,0x74,0x68,0x53,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x39,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x65,0x74,0x61,0x3a,0x20,0x22,0x5c,0x75,0x30,0x33,0x62,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x33,0x37,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x66,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x38,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x48,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x31,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x68,0x63,0x79,0x3a,0x20,0x22,0x5c,0x75,0x30,0x34,0x33,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x69,0x67,0x72,0x61,0x72,0x72,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x64,0x36,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x6f,0x70,0x66,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x62,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x73,0x63,0x72,0x3a,0x20,0x22,0x5c,0x75,0x64,0x38,0x33,0x35,0x5c,0x75,0x64,0x63,0x63,0x66,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x77,0x6a,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x77,0x6e,0x6a,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x30,0x63,0x22,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x30,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x24,0x24,0x30,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x34,0x20,0x3d,0x20,0x2f,0x5b,0x21,0x2d,0x23,0x25,0x2d,0x5c,0x2a,0x2c,0x2d,0x5c,0x2f,0x3a,0x3b,0x5c,0x3f,0x40,0x5c,0x5b,0x2d,0x5c,0x5d,0x5f,0x5c,0x7b,0x5c,0x7d,0x5c,0x78,0x41,0x31,0x5c,0x78,0x41,0x37,0x5c,0x78,0x41,0x42,0x5c,0x78,0x42,0x36,0x5c,0x78,0x42,0x37,0x5c,0x78,0x42,0x42,0x5c,0x78,0x42,0x46,0x5c,0x75,0x30,0x33,0x37,0x45,0x5c,0x75,0x30,0x33,0x38,0x37,0x5c,0x75,0x30,0x35,0x35,0x41,0x2d,0x5c,0x75,0x30,0x35,0x35,0x46,0x5c,0x75,0x30,0x35,0x38,0x39,0x5c,0x75,0x30,0x35,0x38,0x41,0x5c,0x75,0x30,0x35,0x42,0x45,0x5c,0x75,0x30,0x35,0x43,0x30,0x5c,0x75,0x30,0x35,0x43,0x33,0x5c,0x75,0x30,0x35,0x43,0x36,0x5c,0x75,0x30,0x35,0x46,0x33,0x5c,0x75,0x30,0x35,0x46,0x34,0x5c,0x75,0x30,0x36,0x30,0x39,0x5c,0x75,0x30,0x36,0x30,0x41,0x5c,0x75,0x30,0x36,0x30,0x43,0x5c,0x75,0x30,0x36,0x30,0x44,0x5c,0x75,0x30,0x36,0x31,0x42,0x5c,0x75,0x30,0x36,0x31,0x45,0x5c,0x75,0x30,0x36,0x31,0x46,0x5c,0x75,0x30,0x36,0x36,0x41,0x2d,0x5c,0x75,0x30,0x36,0x36,0x44,0x5c,0x75,0x30,0x36,0x44,0x34,0x5c,0x75,0x30,0x37,0x30,0x30,0x2d,0x5c,0x75,0x30,0x37,0x30,0x44,0x5c,0x75,0x30,0x37,0x46,0x37,0x2d,0x5c,0x75,0x30,0x37,0x46,0x39,0x5c,0x75,0x30,0x38,0x33,0x30,0x2d,0x5c,0x75,0x30,0x38,0x33,0x45,0x5c,0x75,0x30,0x38,0x35,0x45,0x5c,0x75,0x30,0x39,0x36,0x34,0x5c,0x75,0x30,0x39,0x36,0x35,0x5c,0x75,0x30,0x39,0x37,0x30,0x5c,0x75,0x30,0x39,0x46,0x44,0x5c,0x75,0x30,0x41,0x37,0x36,0x5c,0x75,0x30,0x41,0x46,0x30,0x5c,0x75,0x30,0x43,0x38,0x34,0x5c,0x75,0x30,0x44,0x46,0x34,0x5c,0x75,0x30,0x45,0x34,0x46,0x5c,0x75,0x30,0x45,0x35,0x41,0x5c,0x75,0x30,0x45,0x35,0x42,0x5c,0x75,0x30,0x46,0x30,0x34,0x2d,0x5c,0x75,0x30,0x46,0x31,0x32,0x5c,0x75,0x30,0x46,0x31,0x34,0x5c,0x75,0x30,0x46,0x33,0x41,0x2d,0x5c,0x75,0x30,0x46,0x33,0x44,0x5c,0x75,0x30,0x46,0x38,0x35,0x5c,0x75,0x30,0x46,0x44,0x30,0x2d,0x5c,0x75,0x30,0x46,0x44,0x34,0x5c,0x75,0x30,0x46,0x44,0x39,0x5c,0x75,0x30,0x46,0x44,0x41,0x5c,0x75,0x31,0x30,0x34,0x41,0x2d,0x5c,0x75,0x31,0x30,0x34,0x46,0x5c,0x75,0x31,0x30,0x46,0x42,0x5c,0x75,0x31,0x33,0x36,0x30,0x2d,0x5c,0x75,0x31,0x33,0x36,0x38,0x5c,0x75,0x31,0x34,0x30,0x30,0x5c,0x75,0x31,0x36,0x36,0x44,0x5c,0x75,0x31,0x36,0x36,0x45,0x5c,0x75,0x31,0x36,0x39,0x42,0x5c,0x75,0x31,0x36,0x39,0x43,0x5c,0x75,0x31,0x36,0x45,0x42,0x2d,0x5c,0x75,0x31,0x36,0x45,0x44,0x5c,0x75,0x31,0x37,0x33,0x35,0x5c,0x75,0x31,0x37,0x33,0x36,0x5c,0x75,0x31,0x37,0x44,0x34,0x2d,0x5c,0x75,0x31,0x37,0x44,0x36,0x5c,0x75,0x31,0x37,0x44,0x38,0x2d,0x5c,0x75,0x31,0x37,0x44,0x41,0x5c,0x75,0x31,0x38,0x30,0x30,0x2d,0x5c,0x75,0x31,0x38,0x30,0x41,0x5c,0x75,0x31,0x39,0x34,0x34,0x5c,0x75,0x31,0x39,0x34,0x35,0x5c,0x75,0x31,0x41,0x31,0x45,0x5c,0x75,0x31,0x41,0x31,0x46,0x5c,0x75,0x31,0x41,0x41,0x30,0x2d,0x5c,0x75,0x31,0x41,0x41,0x36,0x5c,0x75,0x31,0x41,0x41,0x38,0x2d,0x5c,0x75,0x31,0x41,0x41,0x44,0x5c,0x75,0x31,0x42,0x35,0x41,0x2d,0x5c,0x75,0x31,0x42,0x36,0x30,0x5c,0x75,0x31,0x42,0x46,0x43,0x2d,0x5c,0x75,0x31,0x42,0x46,0x46,0x5c,0x75,0x31,0x43,0x33,0x42,0x2d,0x5c,0x75,0x31,0x43,0x33,0x46,0x5c,0x75,0x31,0x43,0x37,0x45,0x5c,0x75,0x31,0x43,0x37,0x46,0x5c,0x75,0x31,0x43,0x43,0x30,0x2d,0x5c,0x75,0x31,0x43,0x43,0x37,0x5c,0x75,0x31,0x43,0x44,0x33,0x5c,0x75,0x32,0x30,0x31,0x30,0x2d,0x5c,0x75,0x32,0x30,0x32,0x37,0x5c,0x75,0x32,0x30,0x33,0x30,0x2d,0x5c,0x75,0x32,0x30,0x34,0x33,0x5c,0x75,0x32,0x30,0x34,0x35,0x2d,0x5c,0x75,0x32,0x30,0x35,0x31,0x5c,0x75,0x32,0x30,0x35,0x33,0x2d,0x5c,0x75,0x32,0x30,0x35,0x45,0x5c,0x75,0x32,0x30,0x37,0x44,0x5c,0x75,0x32,0x30,0x37,0x45,0x5c,0x75,0x32,0x30,0x38,0x44,0x5c,0x75,0x32,0x30,0x38,0x45,0x5c,0x75,0x32,0x33,0x30,0x38,0x2d,0x5c,0x75,0x32,0x33,0x30,0x42,0x5c,0x75,0x32,0x33,0x32,0x39,0x5c,0x75,0x32,0x33,0x32,0x41,0x5c,0x75,0x32,0x37,0x36,0x38,0x2d,0x5c,0x75,0x32,0x37,0x37,0x35,0x5c,0x75,0x32,0x37,0x43,0x35,0x5c,0x75,0x32,0x37,0x43,0x36,0x5c,0x75,0x32,0x37,0x45,0x36,0x2d,0x5c,0x75,0x32,0x37,0x45,0x46,0x5c,0x75,0x32,0x39,0x38,0x33,0x2d,0x5c,0x75,0x32,0x39,0x39,0x38,0x5c,0x75,0x32,0x39,0x44,0x38,0x2d,0x5c,0x75,0x32,0x39,0x44,0x42,0x5c,0x75,0x32,0x39,0x46,0x43,0x5c,0x75,0x32,0x39,0x46,0x44,0x5c,0x75,0x32,0x43,0x46,0x39,0x2d,0x5c,0x75,0x32,0x43,0x46,0x43,0x5c,0x75,0x32,0x43,0x46,0x45,0x5c,0x75,0x32,0x43,0x46,0x46,0x5c,0x75,0x32,0x44,0x37,0x30,0x5c,0x75,0x32,0x45,0x30,0x30,0x2d,0x5c,0x75,0x32,0x45,0x32,0x45,0x5c,0x75,0x32,0x45,0x33,0x30,0x2d,0x5c,0x75,0x32,0x45,0x34,0x45,0x5c,0x75,0x33,0x30,0x30,0x31,0x2d,0x5c,0x75,0x33,0x30,0x30,0x33,0x5c,0x75,0x33,0x30,0x30,0x38,0x2d,0x5c,0x75,0x33,0x30,0x31,0x31,0x5c,0x75,0x33,0x30,0x31,0x34,0x2d,0x5c,0x75,0x33,0x30,0x31,0x46,0x5c,0x75,0x33,0x30,0x33,0x30,0x5c,0x75,0x33,0x30,0x33,0x44,0x5c,0x75,0x33,0x30,0x41,0x30,0x5c,0x75,0x33,0x30,0x46,0x42,0x5c,0x75,0x41,0x34,0x46,0x45,0x5c,0x75,0x41,0x34,0x46,0x46,0x5c,0x75,0x41,0x36,0x30,0x44,0x2d,0x5c,0x75,0x41,0x36,0x30,0x46,0x5c,0x75,0x41,0x36,0x37,0x33,0x5c,0x75,0x41,0x36,0x37,0x45,0x5c,0x75,0x41,0x36,0x46,0x32,0x2d,0x5c,0x75,0x41,0x36,0x46,0x37,0x5c,0x75,0x41,0x38,0x37,0x34,0x2d,0x5c,0x75,0x41,0x38,0x37,0x37,0x5c,0x75,0x41,0x38,0x43,0x45,0x5c,0x75,0x41,0x38,0x43,0x46,0x5c,0x75,0x41,0x38,0x46,0x38,0x2d,0x5c,0x75,0x41,0x38,0x46,0x41,0x5c,0x75,0x41,0x38,0x46,0x43,0x5c,0x75,0x41,0x39,0x32,0x45,0x5c,0x75,0x41,0x39,0x32,0x46,0x5c,0x75,0x41,0x39,0x35,0x46,0x5c,0x75,0x41,0x39,0x43,0x31,0x2d,0x5c,0x75,0x41,0x39,0x43,0x44,0x5c,0x75,0x41,0x39,0x44,0x45,0x5c,0x75,0x41,0x39,0x44,0x46,0x5c,0x75,0x41,0x41,0x35,0x43,0x2d,0x5c,0x75,0x41,0x41,0x35,0x46,0x5c,0x75,0x41,0x41,0x44,0x45,0x5c,0x75,0x41,0x41,0x44,0x46,0x5c,0x75,0x41,0x41,0x46,0x30,0x5c,0x75,0x41,0x41,0x46,0x31,0x5c,0x75,0x41,0x42,0x45,0x42,0x5c,0x75,0x46,0x44,0x33,0x45,0x5c,0x75,0x46,0x44,0x33,0x46,0x5c,0x75,0x46,0x45,0x31,0x30,0x2d,0x5c,0x75,0x46,0x45,0x31,0x39,0x5c,0x75,0x46,0x45,0x33,0x30,0x2d,0x5c,0x75,0x46,0x45,0x35,0x32,0x5c,0x75,0x46,0x45,0x35,0x34,0x2d,0x5c,0x75,0x46,0x45,0x36,0x31,0x5c,0x75,0x46,0x45,0x36,0x33,0x5c,0x75,0x46,0x45,0x36,0x38,0x5c,0x75,0x46,0x45,0x36,0x41,0x5c,0x75,0x46,0x45,0x36,0x42,0x5c,0x75,0x46,0x46,0x30,0x31,0x2d,0x5c,0x75,0x46,0x46,0x30,0x33,0x5c,0x75,0x46,0x46,0x30,0x35,0x2d,0x5c,0x75,0x46,0x46,0x30,0x41,0x5c,0x75,0x46,0x46,0x30,0x43,0x2d,0x5c,0x75,0x46,0x46,0x30,0x46,0x5c,0x75,0x46,0x46,0x31,0x41,0x5c,0x75,0x46,0x46,0x31,0x42,0x5c,0x75,0x46,0x46,0x31,0x46,0x5c,0x75,0x46,0x46,0x32,0x30,0x5c,0x75,0x46,0x46,0x33,0x42,0x2d,0x5c,0x75,0x46,0x46,0x33,0x44,0x5c,0x75,0x46,0x46,0x33,0x46,0x5c,0x75,0x46,0x46,0x35,0x42,0x5c,0x75,0x46,0x46,0x35,0x44,0x5c,0x75,0x46,0x46,0x35,0x46,0x2d,0x5c,0x75,0x46,0x46,0x36,0x35,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x30,0x5b,0x5c,0x75,0x44,0x44,0x30,0x30,0x2d,0x5c,0x75,0x44,0x44,0x30,0x32,0x5c,0x75,0x44,0x46,0x39,0x46,0x5c,0x75,0x44,0x46,0x44,0x30,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x31,0x5c,0x75,0x44,0x44,0x36,0x46,0x7c,0x5c,0x75,0x44,0x38,0x30,0x32,0x5b,0x5c,0x75,0x44,0x43,0x35,0x37,0x5c,0x75,0x44,0x44,0x31,0x46,0x5c,0x75,0x44,0x44,0x33,0x46,0x5c,0x75,0x44,0x45,0x35,0x30,0x2d,0x5c,0x75,0x44,0x45,0x35,0x38,0x5c,0x75,0x44,0x45,0x37,0x46,0x5c,0x75,0x44,0x45,0x46,0x30,0x2d,0x5c,0x75,0x44,0x45,0x46,0x36,0x5c,0x75,0x44,0x46,0x33,0x39,0x2d,0x5c,0x75,0x44,0x46,0x33,0x46,0x5c,0x75,0x44,0x46,0x39,0x39,0x2d,0x5c,0x75,0x44,0x46,0x39,0x43,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x33,0x5b,0x5c,0x75,0x44,0x46,0x35,0x35,0x2d,0x5c,0x75,0x44,0x46,0x35,0x39,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x34,0x5b,0x5c,0x75,0x44,0x43,0x34,0x37,0x2d,0x5c,0x75,0x44,0x43,0x34,0x44,0x5c,0x75,0x44,0x43,0x42,0x42,0x5c,0x75,0x44,0x43,0x42,0x43,0x5c,0x75,0x44,0x43,0x42,0x45,0x2d,0x5c,0x75,0x44,0x43,0x43,0x31,0x5c,0x75,0x44,0x44,0x34,0x30,0x2d,0x5c,0x75,0x44,0x44,0x34,0x33,0x5c,0x75,0x44,0x44,0x37,0x34,0x5c,0x75,0x44,0x44,0x37,0x35,0x5c,0x75,0x44,0x44,0x43,0x35,0x2d,0x5c,0x75,0x44,0x44,0x43,0x38,0x5c,0x75,0x44,0x44,0x43,0x44,0x5c,0x75,0x44,0x44,0x44,0x42,0x5c,0x75,0x44,0x44,0x44,0x44,0x2d,0x5c,0x75,0x44,0x44,0x44,0x46,0x5c,0x75,0x44,0x45,0x33,0x38,0x2d,0x5c,0x75,0x44,0x45,0x33,0x44,0x5c,0x75,0x44,0x45,0x41,0x39,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x35,0x5b,0x5c,0x75,0x44,0x43,0x34,0x42,0x2d,0x5c,0x75,0x44,0x43,0x34,0x46,0x5c,0x75,0x44,0x43,0x35,0x42,0x5c,0x75,0x44,0x43,0x35,0x44,0x5c,0x75,0x44,0x43,0x43,0x36,0x5c,0x75,0x44,0x44,0x43,0x31,0x2d,0x5c,0x75,0x44,0x44,0x44,0x37,0x5c,0x75,0x44,0x45,0x34,0x31,0x2d,0x5c,0x75,0x44,0x45,0x34,0x33,0x5c,0x75,0x44,0x45,0x36,0x30,0x2d,0x5c,0x75,0x44,0x45,0x36,0x43,0x5c,0x75,0x44,0x46,0x33,0x43,0x2d,0x5c,0x75,0x44,0x46,0x33,0x45,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x36,0x5b,0x5c,0x75,0x44,0x43,0x33,0x42,0x5c,0x75,0x44,0x45,0x33,0x46,0x2d,0x5c,0x75,0x44,0x45,0x34,0x36,0x5c,0x75,0x44,0x45,0x39,0x41,0x2d,0x5c,0x75,0x44,0x45,0x39,0x43,0x5c,0x75,0x44,0x45,0x39,0x45,0x2d,0x5c,0x75,0x44,0x45,0x41,0x32,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x37,0x5b,0x5c,0x75,0x44,0x43,0x34,0x31,0x2d,0x5c,0x75,0x44,0x43,0x34,0x35,0x5c,0x75,0x44,0x43,0x37,0x30,0x5c,0x75,0x44,0x43,0x37,0x31,0x5c,0x75,0x44,0x45,0x46,0x37,0x5c,0x75,0x44,0x45,0x46,0x38,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x39,0x5b,0x5c,0x75,0x44,0x43,0x37,0x30,0x2d,0x5c,0x75,0x44,0x43,0x37,0x34,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x31,0x41,0x5b,0x5c,0x75,0x44,0x45,0x36,0x45,0x5c,0x75,0x44,0x45,0x36,0x46,0x5c,0x75,0x44,0x45,0x46,0x35,0x5c,0x75,0x44,0x46,0x33,0x37,0x2d,0x5c,0x75,0x44,0x46,0x33,0x42,0x5c,0x75,0x44,0x46,0x34,0x34,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x31,0x42,0x5b,0x5c,0x75,0x44,0x45,0x39,0x37,0x2d,0x5c,0x75,0x44,0x45,0x39,0x41,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x32,0x46,0x5c,0x75,0x44,0x43,0x39,0x46,0x7c,0x5c,0x75,0x44,0x38,0x33,0x36,0x5b,0x5c,0x75,0x44,0x45,0x38,0x37,0x2d,0x5c,0x75,0x44,0x45,0x38,0x42,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x33,0x41,0x5b,0x5c,0x75,0x44,0x44,0x35,0x45,0x5c,0x75,0x44,0x44,0x35,0x46,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x61,0x20,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x20,0x62,0x75,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x69,0x6e,0x20,0x60,0x63,0x68,0x61,0x72,0x73,0x60,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x61,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x69,0x73,0x20,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x45,0x6e,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x63,0x68,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x5b,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x5b,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5d,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x31,0x32,0x38,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x7a,0x5d,0x24,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x75,0x6e,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x20,0x61,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x25,0x22,0x20,0x2b,0x20,0x28,0x22,0x30,0x22,0x20,0x2b,0x20,0x69,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x2d,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x5d,0x20,0x3d,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x6f,0x64,0x65,0x20,0x75,0x6e,0x73,0x61,0x66,0x65,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x2c,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x74,0x6f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x28,0x69,0x6e,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x29,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x20,0x2d,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x27,0x25,0x27,0x20,0x69,0x6e,0x20,0x61,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x28,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x32,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x43,0x6f,0x64,0x65,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x3d,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x32,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x61,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x45,0x6e,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x37,0x20,0x2f,0x2a,0x20,0x25,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x69,0x20,0x2b,0x20,0x32,0x20,0x3c,0x20,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2f,0x5e,0x5b,0x30,0x2d,0x39,0x61,0x2d,0x66,0x5d,0x7b,0x32,0x7d,0x24,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x31,0x2c,0x20,0x69,0x20,0x2b,0x20,0x33,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x20,0x69,0x20,0x2b,0x20,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x2b,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3c,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x63,0x6f,0x64,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3e,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x3c,0x3d,0x20,0x35,0x37,0x33,0x34,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3e,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x3c,0x3d,0x20,0x35,0x36,0x33,0x31,0x39,0x20,0x26,0x26,0x20,0x69,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x43,0x6f,0x64,0x65,0x20,0x3e,0x3d,0x20,0x35,0x36,0x33,0x32,0x30,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x43,0x6f,0x64,0x65,0x20,0x3c,0x3d,0x20,0x35,0x37,0x33,0x34,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x5b,0x69,0x5d,0x20,0x2b,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x5b,0x69,0x20,0x2b,0x20,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x25,0x45,0x46,0x25,0x42,0x46,0x25,0x42,0x44,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x32,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x22,0x3b,0x2f,0x3f,0x3a,0x40,0x26,0x3d,0x2b,0x24,0x2c,0x2d,0x5f,0x2e,0x21,0x7e,0x2a,0x27,0x28,0x29,0x23,0x22,0x3b,0x0a,0x20,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x32,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x22,0x2d,0x5f,0x2e,0x21,0x7e,0x2a,0x27,0x28,0x29,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x5f,0x31,0x20,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x32,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x20,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x6e,0x6f,0x2d,0x62,0x69,0x74,0x77,0x69,0x73,0x65,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x44,0x65,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x63,0x68,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x5b,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x5b,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5d,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x31,0x32,0x38,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x63,0x68,0x5d,0x20,0x3d,0x20,0x22,0x25,0x22,0x20,0x2b,0x20,0x28,0x22,0x30,0x22,0x20,0x2b,0x20,0x63,0x68,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x2d,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x63,0x6f,0x64,0x65,0x20,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x32,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x3d,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x32,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x61,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x44,0x65,0x63,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x25,0x5b,0x61,0x2d,0x66,0x30,0x2d,0x39,0x5d,0x7b,0x32,0x7d,0x29,0x2b,0x2f,0x67,0x69,0x2c,0x20,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x65,0x71,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x62,0x31,0x2c,0x20,0x62,0x32,0x2c,0x20,0x62,0x33,0x2c,0x20,0x62,0x34,0x2c,0x20,0x63,0x68,0x72,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x73,0x65,0x71,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x20,0x2b,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x31,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x31,0x2c,0x20,0x69,0x20,0x2b,0x20,0x33,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x31,0x20,0x3c,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x62,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x62,0x31,0x20,0x26,0x20,0x32,0x32,0x34,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x32,0x20,0x26,0x26,0x20,0x69,0x20,0x2b,0x20,0x33,0x20,0x3c,0x20,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x20,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x32,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x34,0x2c,0x20,0x69,0x20,0x2b,0x20,0x36,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x62,0x32,0x20,0x26,0x20,0x31,0x39,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x72,0x20,0x3d,0x20,0x62,0x31,0x20,0x3c,0x3c,0x20,0x36,0x20,0x26,0x20,0x31,0x39,0x38,0x34,0x20,0x7c,0x20,0x62,0x32,0x20,0x26,0x20,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x72,0x20,0x3c,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5c,0x75,0x66,0x66,0x66,0x64,0x5c,0x75,0x66,0x66,0x66,0x64,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x63,0x68,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x2b,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x62,0x31,0x20,0x26,0x20,0x32,0x34,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x32,0x34,0x20,0x26,0x26,0x20,0x69,0x20,0x2b,0x20,0x36,0x20,0x3c,0x20,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x31,0x31,0x30,0x78,0x78,0x78,0x78,0x20,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x78,0x20,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x32,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x34,0x2c,0x20,0x69,0x20,0x2b,0x20,0x36,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x33,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x37,0x2c,0x20,0x69,0x20,0x2b,0x20,0x39,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x62,0x32,0x20,0x26,0x20,0x31,0x39,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x38,0x20,0x26,0x26,0x20,0x28,0x62,0x33,0x20,0x26,0x20,0x31,0x39,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x72,0x20,0x3d,0x20,0x62,0x31,0x20,0x3c,0x3c,0x20,0x31,0x32,0x20,0x26,0x20,0x36,0x31,0x34,0x34,0x30,0x20,0x7c,0x20,0x62,0x32,0x20,0x3c,0x3c,0x20,0x36,0x20,0x26,0x20,0x34,0x30,0x33,0x32,0x20,0x7c,0x20,0x62,0x33,0x20,0x26,0x20,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x72,0x20,0x3c,0x20,0x32,0x30,0x34,0x38,0x20,0x7c,0x7c,0x20,0x63,0x68,0x72,0x20,0x3e,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x26,0x26,0x20,0x63,0x68,0x72,0x20,0x3c,0x3d,0x20,0x35,0x37,0x33,0x34,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5c,0x75,0x66,0x66,0x66,0x64,0x5c,0x75,0x66,0x66,0x66,0x64,0x5c,0x75,0x66,0x66,0x66,0x64,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x63,0x68,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x2b,0x3d,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x62,0x31,0x20,0x26,0x20,0x32,0x34,0x38,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x34,0x30,0x20,0x26,0x26,0x20,0x69,0x20,0x2b,0x20,0x39,0x20,0x3c,0x20,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x31,0x31,0x31,0x31,0x30,0x78,0x78,0x20,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x78,0x20,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x78,0x20,0x31,0x30,0x78,0x78,0x78,0x78,0x78,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x32,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x34,0x2c,0x20,0x69,0x20,0x2b,0x20,0x36,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x33,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x37,0x2c,0x20,0x69,0x20,0x2b,0x20,0x39,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x34,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x73,0x65,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x31,0x30,0x2c,0x20,0x69,0x20,0x2b,0x20,0x31,0x32,0x29,0x2c,0x20,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x62,0x32,0x20,0x26,0x20,0x31,0x39,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x38,0x20,0x26,0x26,0x20,0x28,0x62,0x33,0x20,0x26,0x20,0x31,0x39,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x38,0x20,0x26,0x26,0x20,0x28,0x62,0x34,0x20,0x26,0x20,0x31,0x39,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x72,0x20,0x3d,0x20,0x62,0x31,0x20,0x3c,0x3c,0x20,0x31,0x38,0x20,0x26,0x20,0x31,0x38,0x33,0x35,0x30,0x30,0x38,0x20,0x7c,0x20,0x62,0x32,0x20,0x3c,0x3c,0x20,0x31,0x32,0x20,0x26,0x20,0x32,0x35,0x38,0x30,0x34,0x38,0x20,0x7c,0x20,0x62,0x33,0x20,0x3c,0x3c,0x20,0x36,0x20,0x26,0x20,0x34,0x30,0x33,0x32,0x20,0x7c,0x20,0x62,0x34,0x20,0x26,0x20,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x72,0x20,0x3c,0x20,0x36,0x35,0x35,0x33,0x36,0x20,0x7c,0x7c,0x20,0x63,0x68,0x72,0x20,0x3e,0x20,0x31,0x31,0x31,0x34,0x31,0x31,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5c,0x75,0x66,0x66,0x66,0x64,0x5c,0x75,0x66,0x66,0x66,0x64,0x5c,0x75,0x66,0x66,0x66,0x64,0x5c,0x75,0x66,0x66,0x66,0x64,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x72,0x20,0x2d,0x3d,0x20,0x36,0x35,0x35,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x35,0x35,0x32,0x39,0x36,0x20,0x2b,0x20,0x28,0x63,0x68,0x72,0x20,0x3e,0x3e,0x20,0x31,0x30,0x29,0x2c,0x20,0x35,0x36,0x33,0x32,0x30,0x20,0x2b,0x20,0x28,0x63,0x68,0x72,0x20,0x26,0x20,0x31,0x30,0x32,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x2b,0x3d,0x20,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5c,0x75,0x66,0x66,0x66,0x64,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x32,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x22,0x3b,0x2f,0x3f,0x3a,0x40,0x26,0x3d,0x2b,0x24,0x2c,0x23,0x22,0x3b,0x0a,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x32,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x32,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x24,0x31,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x3f,0x20,0x22,0x2f,0x2f,0x22,0x20,0x3a,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x61,0x75,0x74,0x68,0x20,0x3f,0x20,0x75,0x72,0x6c,0x2e,0x61,0x75,0x74,0x68,0x20,0x2b,0x20,0x22,0x40,0x22,0x20,0x3a,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x75,0x72,0x6c,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x3a,0x22,0x29,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x70,0x76,0x36,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5b,0x22,0x20,0x2b,0x20,0x75,0x72,0x6c,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x22,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x70,0x6f,0x72,0x74,0x20,0x3f,0x20,0x22,0x3a,0x22,0x20,0x2b,0x20,0x75,0x72,0x6c,0x2e,0x70,0x6f,0x72,0x74,0x20,0x3a,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x68,0x61,0x73,0x68,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x4a,0x6f,0x79,0x65,0x6e,0x74,0x2c,0x20,0x49,0x6e,0x63,0x2e,0x20,0x61,0x6e,0x64,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x4e,0x6f,0x64,0x65,0x20,0x63,0x6f,0x6e,0x74,0x72,0x69,0x62,0x75,0x74,0x6f,0x72,0x73,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x61,0x6e,0x67,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6a,0x6f,0x79,0x65,0x6e,0x74,0x2f,0x6e,0x6f,0x64,0x65,0x3a,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x31,0x2e,0x20,0x4e,0x6f,0x20,0x6c,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x73,0x6c,0x61,0x73,0x68,0x20,0x69,0x6e,0x20,0x70,0x61,0x74,0x68,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x65,0x2e,0x67,0x2e,0x20,0x69,0x6e,0x20,0x60,0x75,0x72,0x6c,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x27,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x66,0x6f,0x6f,0x3f,0x62,0x61,0x72,0x27,0x29,0x60,0x20,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x69,0x73,0x20,0x60,0x60,0x2c,0x20,0x6e,0x6f,0x74,0x20,0x60,0x2f,0x60,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x32,0x2e,0x20,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x73,0x6f,0x20,0x60,0x68,0x74,0x74,0x70,0x3a,0x5c,0x5c,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x6f,0x72,0x67,0x5c,0x60,0x20,0x69,0x73,0x20,0x74,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x6c,0x69,0x6b,0x65,0x20,0x61,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x20,0x70,0x61,0x74,0x68,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x33,0x2e,0x20,0x54,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x20,0x69,0x73,0x20,0x74,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x6c,0x69,0x6b,0x65,0x20,0x61,0x20,0x70,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x68,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x69,0x2e,0x65,0x2e,0x20,0x69,0x6e,0x20,0x60,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x6f,0x72,0x67,0x3a,0x66,0x6f,0x6f,0x60,0x20,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x69,0x73,0x20,0x60,0x3a,0x66,0x6f,0x6f,0x60,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x34,0x2e,0x20,0x4e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x55,0x52,0x4c,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x69,0x6e,0x67,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x28,0x69,0x6e,0x20,0x6a,0x6f,0x79,0x65,0x6e,0x74,0x2f,0x6e,0x6f,0x64,0x65,0x20,0x73,0x6f,0x6d,0x65,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x69,0x6e,0x20,0x61,0x75,0x74,0x68,0x20,0x61,0x6e,0x64,0x20,0x70,0x61,0x74,0x68,0x73,0x20,0x61,0x72,0x65,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x29,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x35,0x2e,0x20,0x60,0x75,0x72,0x6c,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x29,0x60,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x60,0x70,0x61,0x72,0x73,0x65,0x51,0x75,0x65,0x72,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x60,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x36,0x2e,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x65,0x78,0x74,0x72,0x61,0x6e,0x65,0x6f,0x75,0x73,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x3a,0x20,0x60,0x68,0x6f,0x73,0x74,0x60,0x2c,0x20,0x60,0x70,0x61,0x74,0x68,0x60,0x2c,0x20,0x60,0x71,0x75,0x65,0x72,0x79,0x60,0x2c,0x20,0x65,0x74,0x63,0x2e,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x75,0x72,0x6c,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x72,0x6c,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x75,0x74,0x68,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x68,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x3a,0x20,0x52,0x46,0x43,0x20,0x33,0x39,0x38,0x36,0x2c,0x20,0x52,0x46,0x43,0x20,0x31,0x38,0x30,0x38,0x2c,0x20,0x52,0x46,0x43,0x20,0x32,0x33,0x39,0x36,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x68,0x65,0x72,0x65,0x20,0x73,0x6f,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x74,0x68,0x65,0x79,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x62,0x65,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x63,0x65,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x6c,0x6f,0x61,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x5b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x2e,0x2b,0x2d,0x5d,0x2b,0x3a,0x29,0x2f,0x69,0x2c,0x20,0x70,0x6f,0x72,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x3d,0x20,0x2f,0x3a,0x5b,0x30,0x2d,0x39,0x5d,0x2a,0x24,0x2f,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x63,0x61,0x73,0x65,0x20,0x66,0x6f,0x72,0x20,0x61,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x70,0x61,0x74,0x68,0x20,0x55,0x52,0x4c,0x0a,0x20,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x5c,0x2f,0x5c,0x2f,0x3f,0x28,0x3f,0x21,0x5c,0x2f,0x29,0x5b,0x5e,0x5c,0x3f,0x5c,0x73,0x5d,0x2a,0x29,0x28,0x5c,0x3f,0x5b,0x5e,0x5c,0x73,0x5d,0x2a,0x29,0x3f,0x24,0x2f,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x46,0x43,0x20,0x32,0x33,0x39,0x36,0x3a,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x69,0x6e,0x67,0x20,0x55,0x52,0x4c,0x73,0x2e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x6c,0x79,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x75,0x74,0x6f,0x2d,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x74,0x68,0x65,0x73,0x65,0x2e,0x0a,0x20,0x20,0x64,0x65,0x6c,0x69,0x6d,0x73,0x20,0x3d,0x20,0x5b,0x20,0x22,0x3c,0x22,0x2c,0x20,0x22,0x3e,0x22,0x2c,0x20,0x27,0x22,0x27,0x2c,0x20,0x22,0x60,0x22,0x2c,0x20,0x22,0x20,0x22,0x2c,0x20,0x22,0x5c,0x72,0x22,0x2c,0x20,0x22,0x5c,0x6e,0x22,0x2c,0x20,0x22,0x5c,0x74,0x22,0x20,0x5d,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x46,0x43,0x20,0x32,0x33,0x39,0x36,0x3a,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x76,0x61,0x72,0x69,0x6f,0x75,0x73,0x20,0x72,0x65,0x61,0x73,0x6f,0x6e,0x73,0x2e,0x0a,0x20,0x20,0x75,0x6e,0x77,0x69,0x73,0x65,0x20,0x3d,0x20,0x5b,0x20,0x22,0x7b,0x22,0x2c,0x20,0x22,0x7d,0x22,0x2c,0x20,0x22,0x7c,0x22,0x2c,0x20,0x22,0x5c,0x5c,0x22,0x2c,0x20,0x22,0x5e,0x22,0x2c,0x20,0x22,0x60,0x22,0x20,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x64,0x65,0x6c,0x69,0x6d,0x73,0x29,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x62,0x79,0x20,0x52,0x46,0x43,0x73,0x2c,0x20,0x62,0x75,0x74,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x6f,0x66,0x20,0x58,0x53,0x53,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x2e,0x20,0x20,0x41,0x6c,0x77,0x61,0x79,0x73,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x74,0x68,0x65,0x73,0x65,0x2e,0x0a,0x20,0x20,0x61,0x75,0x74,0x6f,0x45,0x73,0x63,0x61,0x70,0x65,0x20,0x3d,0x20,0x5b,0x20,0x22,0x27,0x22,0x20,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x75,0x6e,0x77,0x69,0x73,0x65,0x29,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x61,0x72,0x65,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x65,0x76,0x65,0x72,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x69,0x6e,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x61,0x6e,0x79,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x61,0x72,0x65,0x20,0x61,0x6c,0x73,0x6f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x2c,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x73,0x65,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x61,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x6f,0x6e,0x65,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x61,0x72,0x65,0x20,0x2a,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x2a,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x73,0x65,0x65,0x6e,0x2c,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x66,0x61,0x73,0x74,0x2d,0x70,0x61,0x74,0x68,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x6d,0x2e,0x0a,0x20,0x20,0x6e,0x6f,0x6e,0x48,0x6f,0x73,0x74,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x22,0x25,0x22,0x2c,0x20,0x22,0x2f,0x22,0x2c,0x20,0x22,0x3f,0x22,0x2c,0x20,0x22,0x3b,0x22,0x2c,0x20,0x22,0x23,0x22,0x20,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x61,0x75,0x74,0x6f,0x45,0x73,0x63,0x61,0x70,0x65,0x29,0x2c,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x69,0x6e,0x67,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x22,0x2f,0x22,0x2c,0x20,0x22,0x3f,0x22,0x2c,0x20,0x22,0x23,0x22,0x20,0x5d,0x2c,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x4d,0x61,0x78,0x4c,0x65,0x6e,0x20,0x3d,0x20,0x32,0x35,0x35,0x2c,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x50,0x61,0x72,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x3d,0x20,0x2f,0x5e,0x5b,0x2b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x41,0x2d,0x5a,0x5f,0x2d,0x5d,0x7b,0x30,0x2c,0x36,0x33,0x7d,0x24,0x2f,0x2c,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x50,0x61,0x72,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x5b,0x2b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x41,0x2d,0x5a,0x5f,0x2d,0x5d,0x7b,0x30,0x2c,0x36,0x33,0x7d,0x29,0x28,0x2e,0x2a,0x29,0x24,0x2f,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x63,0x61,0x6e,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x22,0x75,0x6e,0x73,0x61,0x66,0x65,0x22,0x20,0x61,0x6e,0x64,0x20,0x22,0x75,0x6e,0x77,0x69,0x73,0x65,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x2e,0x0a,0x20,0x20,0x2f,0x2a,0x20,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x6e,0x6f,0x2d,0x73,0x63,0x72,0x69,0x70,0x74,0x2d,0x75,0x72,0x6c,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x0a,0x20,0x20,0x68,0x6f,0x73,0x74,0x6c,0x65,0x73,0x73,0x50,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x3a,0x22,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x7d,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x61,0x20,0x2f,0x2f,0x20,0x62,0x69,0x74,0x2e,0x0a,0x20,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x50,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x74,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x6f,0x70,0x68,0x65,0x72,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x22,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x22,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x74,0x70,0x3a,0x22,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x67,0x6f,0x70,0x68,0x65,0x72,0x3a,0x22,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x69,0x6c,0x65,0x3a,0x22,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x20,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x6e,0x6f,0x2d,0x73,0x63,0x72,0x69,0x70,0x74,0x2d,0x75,0x72,0x6c,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x72,0x6c,0x50,0x61,0x72,0x73,0x65,0x28,0x75,0x72,0x6c,0x2c,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x44,0x65,0x6e,0x6f,0x74,0x65,0x48,0x6f,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x20,0x26,0x26,0x20,0x75,0x72,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x55,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x55,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x75,0x72,0x6c,0x2c,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x44,0x65,0x6e,0x6f,0x74,0x65,0x48,0x6f,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x75,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x55,0x72,0x6c,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x75,0x72,0x6c,0x2c,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x44,0x65,0x6e,0x6f,0x74,0x65,0x48,0x6f,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x6c,0x6f,0x77,0x65,0x72,0x50,0x72,0x6f,0x74,0x6f,0x2c,0x20,0x68,0x65,0x63,0x2c,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x2c,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x69,0x6d,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x70,0x72,0x6f,0x63,0x65,0x65,0x64,0x69,0x6e,0x67,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x74,0x6f,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x73,0x74,0x75,0x66,0x66,0x20,0x6c,0x69,0x6b,0x65,0x20,0x22,0x20,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,0x20,0x20,0x5c,0x6e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x44,0x65,0x6e,0x6f,0x74,0x65,0x48,0x6f,0x73,0x74,0x20,0x26,0x26,0x20,0x75,0x72,0x6c,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x23,0x22,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x79,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x20,0x72,0x65,0x67,0x65,0x78,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x20,0x3d,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x65,0x78,0x65,0x63,0x28,0x72,0x65,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x5b,0x32,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x20,0x3d,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x50,0x61,0x74,0x68,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x65,0x78,0x65,0x63,0x28,0x72,0x65,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x74,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x77,0x65,0x72,0x50,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x3d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x6f,0x75,0x74,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x67,0x6f,0x74,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x72,0x40,0x73,0x65,0x72,0x76,0x65,0x72,0x20,0x69,0x73,0x20,0x2a,0x61,0x6c,0x77,0x61,0x79,0x73,0x2a,0x20,0x69,0x6e,0x74,0x65,0x72,0x70,0x72,0x65,0x74,0x65,0x64,0x20,0x61,0x73,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x61,0x6e,0x64,0x20,0x75,0x72,0x6c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x6c,0x6c,0x20,0x74,0x72,0x65,0x61,0x74,0x20,0x2f,0x2f,0x66,0x6f,0x6f,0x2f,0x62,0x61,0x72,0x20,0x61,0x73,0x20,0x68,0x6f,0x73,0x74,0x3d,0x66,0x6f,0x6f,0x2c,0x70,0x61,0x74,0x68,0x3d,0x62,0x61,0x72,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x61,0x74,0x27,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x73,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x20,0x55,0x52,0x4c,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x44,0x65,0x6e,0x6f,0x74,0x65,0x48,0x6f,0x73,0x74,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x74,0x6f,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x5c,0x2f,0x5c,0x2f,0x5b,0x5e,0x40,0x5c,0x2f,0x5d,0x2b,0x40,0x5b,0x5e,0x40,0x5c,0x2f,0x5d,0x2b,0x2f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x30,0x2c,0x20,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2f,0x2f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x26,0x26,0x20,0x21,0x28,0x70,0x72,0x6f,0x74,0x6f,0x20,0x26,0x26,0x20,0x68,0x6f,0x73,0x74,0x6c,0x65,0x73,0x73,0x50,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x5b,0x70,0x72,0x6f,0x74,0x6f,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x6f,0x73,0x74,0x6c,0x65,0x73,0x73,0x50,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x5b,0x70,0x72,0x6f,0x74,0x6f,0x5d,0x20,0x26,0x26,0x20,0x28,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x74,0x6f,0x20,0x26,0x26,0x20,0x21,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x50,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x5b,0x70,0x72,0x6f,0x74,0x6f,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x72,0x65,0x27,0x73,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x2f,0x2c,0x20,0x3f,0x2c,0x20,0x3b,0x2c,0x20,0x6f,0x72,0x20,0x23,0x20,0x65,0x6e,0x64,0x73,0x20,0x74,0x68,0x65,0x20,0x68,0x6f,0x73,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x61,0x6e,0x20,0x40,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x6e,0x6f,0x6e,0x2d,0x68,0x6f,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x2a,0x61,0x72,0x65,0x2a,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x6c,0x65,0x66,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x40,0x20,0x73,0x69,0x67,0x6e,0x2c,0x20,0x75,0x6e,0x6c,0x65,0x73,0x73,0x20,0x73,0x6f,0x6d,0x65,0x20,0x68,0x6f,0x73,0x74,0x2d,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x65,0x73,0x20,0x2a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2a,0x20,0x74,0x68,0x65,0x20,0x40,0x2d,0x73,0x69,0x67,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x52,0x4c,0x73,0x20,0x61,0x72,0x65,0x20,0x6f,0x62,0x6e,0x6f,0x78,0x69,0x6f,0x75,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x78,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x61,0x40,0x62,0x40,0x63,0x2f,0x20,0x3d,0x3e,0x20,0x75,0x73,0x65,0x72,0x3a,0x61,0x40,0x62,0x20,0x68,0x6f,0x73,0x74,0x3a,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x61,0x40,0x62,0x3f,0x40,0x63,0x20,0x3d,0x3e,0x20,0x75,0x73,0x65,0x72,0x3a,0x61,0x20,0x68,0x6f,0x73,0x74,0x3a,0x63,0x20,0x70,0x61,0x74,0x68,0x3a,0x2f,0x3f,0x40,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x30,0x2e,0x31,0x32,0x20,0x54,0x4f,0x44,0x4f,0x28,0x69,0x73,0x61,0x61,0x63,0x73,0x29,0x3a,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x71,0x75,0x69,0x74,0x65,0x20,0x68,0x6f,0x77,0x20,0x43,0x68,0x72,0x6f,0x6d,0x65,0x20,0x64,0x6f,0x65,0x73,0x20,0x74,0x68,0x69,0x6e,0x67,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x76,0x69,0x65,0x77,0x20,0x6f,0x75,0x72,0x20,0x74,0x65,0x73,0x74,0x20,0x63,0x61,0x73,0x65,0x20,0x61,0x67,0x61,0x69,0x6e,0x73,0x74,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x20,0x6d,0x6f,0x72,0x65,0x20,0x63,0x6f,0x6d,0x70,0x72,0x65,0x68,0x65,0x6e,0x73,0x69,0x76,0x65,0x6c,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x69,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x61,0x6e,0x79,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x69,0x6e,0x67,0x43,0x68,0x61,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x69,0x6e,0x67,0x43,0x68,0x61,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x63,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x69,0x6e,0x67,0x43,0x68,0x61,0x72,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x63,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x26,0x26,0x20,0x28,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x7c,0x7c,0x20,0x68,0x65,0x63,0x20,0x3c,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x20,0x68,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x2c,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x6e,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x74,0x68,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x75,0x74,0x68,0x20,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x67,0x6f,0x20,0x70,0x61,0x73,0x74,0x2c,0x20,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x40,0x20,0x63,0x68,0x61,0x72,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x63,0x69,0x64,0x65,0x72,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x75,0x74,0x68,0x2c,0x20,0x61,0x74,0x53,0x69,0x67,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x74,0x53,0x69,0x67,0x6e,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x61,0x6e,0x79,0x77,0x68,0x65,0x72,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x53,0x69,0x67,0x6e,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x40,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x74,0x53,0x69,0x67,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x69,0x6e,0x20,0x61,0x75,0x74,0x68,0x20,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x61,0x40,0x62,0x2f,0x63,0x40,0x64,0x20,0x3d,0x3e,0x20,0x68,0x6f,0x73,0x74,0x3a,0x62,0x20,0x61,0x75,0x74,0x68,0x3a,0x61,0x20,0x70,0x61,0x74,0x68,0x3a,0x2f,0x63,0x40,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x53,0x69,0x67,0x6e,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x40,0x22,0x2c,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x77,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x65,0x6c,0x79,0x20,0x74,0x68,0x65,0x20,0x61,0x75,0x74,0x68,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x6c,0x6c,0x20,0x74,0x68,0x61,0x74,0x20,0x6f,0x66,0x66,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x53,0x69,0x67,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x68,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x61,0x74,0x53,0x69,0x67,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x61,0x74,0x53,0x69,0x67,0x6e,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x75,0x74,0x68,0x20,0x3d,0x20,0x61,0x75,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x68,0x6f,0x73,0x74,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6d,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x6c,0x65,0x66,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x2d,0x68,0x6f,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x6e,0x48,0x6f,0x73,0x74,0x43,0x68,0x61,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x63,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x6f,0x6e,0x48,0x6f,0x73,0x74,0x43,0x68,0x61,0x72,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x63,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x26,0x26,0x20,0x28,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x7c,0x7c,0x20,0x68,0x65,0x63,0x20,0x3c,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x20,0x68,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x68,0x61,0x76,0x65,0x20,0x6e,0x6f,0x74,0x20,0x68,0x69,0x74,0x20,0x69,0x74,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x74,0x69,0x72,0x65,0x20,0x74,0x68,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x74,0x5b,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x20,0x2d,0x20,0x31,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x3a,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x6f,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x68,0x6f,0x73,0x74,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x75,0x6c,0x6c,0x20,0x6f,0x75,0x74,0x20,0x70,0x6f,0x72,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x48,0x6f,0x73,0x74,0x28,0x68,0x6f,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x27,0x76,0x65,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x61,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x65,0x76,0x65,0x6e,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x2c,0x20,0x69,0x74,0x20,0x68,0x61,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x62,0x65,0x67,0x69,0x6e,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x5b,0x20,0x61,0x6e,0x64,0x20,0x65,0x6e,0x64,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x73,0x75,0x6d,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x6e,0x20,0x49,0x50,0x76,0x36,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x70,0x76,0x36,0x48,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x22,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x61,0x20,0x6c,0x69,0x74,0x74,0x6c,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x70,0x76,0x36,0x48,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x6f,0x73,0x74,0x70,0x61,0x72,0x74,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x2e,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x70,0x61,0x72,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x74,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x70,0x61,0x72,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x72,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x50,0x61,0x72,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x77,0x70,0x61,0x72,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x6a,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6b,0x20,0x3d,0x20,0x70,0x61,0x72,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x6b,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6a,0x29,0x20,0x3e,0x20,0x31,0x32,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x6e,0x6f,0x6e,0x2d,0x41,0x53,0x43,0x49,0x49,0x20,0x63,0x68,0x61,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x74,0x65,0x6d,0x70,0x6f,0x72,0x61,0x72,0x79,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x73,0x69,0x7a,0x65,0x20,0x6f,0x66,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x72,0x6f,0x6b,0x65,0x6e,0x20,0x62,0x79,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x6e,0x2d,0x41,0x53,0x43,0x49,0x49,0x20,0x62,0x79,0x20,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x70,0x61,0x72,0x74,0x20,0x2b,0x3d,0x20,0x22,0x78,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x70,0x61,0x72,0x74,0x20,0x2b,0x3d,0x20,0x70,0x61,0x72,0x74,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x20,0x74,0x65,0x73,0x74,0x20,0x61,0x67,0x61,0x69,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x41,0x53,0x43,0x49,0x49,0x20,0x63,0x68,0x61,0x72,0x20,0x6f,0x6e,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x65,0x77,0x70,0x61,0x72,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x50,0x61,0x72,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x76,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x74,0x73,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x70,0x61,0x72,0x74,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x6f,0x74,0x48,0x6f,0x73,0x74,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x70,0x61,0x72,0x74,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x69,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x50,0x61,0x72,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x69,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x62,0x69,0x74,0x5b,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x74,0x48,0x6f,0x73,0x74,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x62,0x69,0x74,0x5b,0x32,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x74,0x48,0x6f,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x74,0x48,0x6f,0x73,0x74,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2e,0x22,0x29,0x20,0x2b,0x20,0x72,0x65,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x74,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x4d,0x61,0x78,0x4c,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x72,0x69,0x70,0x20,0x5b,0x20,0x61,0x6e,0x64,0x20,0x5d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x68,0x6f,0x73,0x74,0x20,0x66,0x69,0x65,0x6c,0x64,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x72,0x65,0x74,0x61,0x69,0x6e,0x73,0x20,0x74,0x68,0x65,0x6d,0x2c,0x20,0x74,0x68,0x6f,0x75,0x67,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x70,0x76,0x36,0x48,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x31,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x6f,0x70,0x20,0x6f,0x66,0x66,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x69,0x6c,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x61,0x73,0x68,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x23,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x68,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x6f,0x74,0x20,0x61,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x68,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x68,0x61,0x73,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x68,0x61,0x73,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x71,0x6d,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x3f,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x71,0x6d,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x71,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x71,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x50,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x5b,0x6c,0x6f,0x77,0x65,0x72,0x50,0x72,0x6f,0x74,0x6f,0x5d,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x21,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x74,0x68,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x55,0x72,0x6c,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x48,0x6f,0x73,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x68,0x6f,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x72,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x65,0x78,0x65,0x63,0x28,0x68,0x6f,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x72,0x74,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x72,0x74,0x20,0x21,0x3d,0x3d,0x20,0x22,0x3a,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x72,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x30,0x2c,0x20,0x68,0x6f,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x70,0x6f,0x72,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x24,0x31,0x20,0x3d,0x20,0x75,0x72,0x6c,0x50,0x61,0x72,0x73,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x31,0x20,0x3d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x31,0x20,0x3d,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x5f,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x3d,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x24,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x24,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x75,0x72,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x3a,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x24,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x3a,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x24,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x33,0x20,0x3d,0x20,0x2f,0x5b,0x5c,0x30,0x2d,0x5c,0x75,0x44,0x37,0x46,0x46,0x5c,0x75,0x45,0x30,0x30,0x30,0x2d,0x5c,0x75,0x46,0x46,0x46,0x46,0x5d,0x7c,0x5b,0x5c,0x75,0x44,0x38,0x30,0x30,0x2d,0x5c,0x75,0x44,0x42,0x46,0x46,0x5d,0x5b,0x5c,0x75,0x44,0x43,0x30,0x30,0x2d,0x5c,0x75,0x44,0x46,0x46,0x46,0x5d,0x7c,0x5b,0x5c,0x75,0x44,0x38,0x30,0x30,0x2d,0x5c,0x75,0x44,0x42,0x46,0x46,0x5d,0x28,0x3f,0x21,0x5b,0x5c,0x75,0x44,0x43,0x30,0x30,0x2d,0x5c,0x75,0x44,0x46,0x46,0x46,0x5d,0x29,0x7c,0x28,0x3f,0x3a,0x5b,0x5e,0x5c,0x75,0x44,0x38,0x30,0x30,0x2d,0x5c,0x75,0x44,0x42,0x46,0x46,0x5d,0x7c,0x5e,0x29,0x5b,0x5c,0x75,0x44,0x43,0x30,0x30,0x2d,0x5c,0x75,0x44,0x46,0x46,0x46,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x32,0x20,0x3d,0x20,0x2f,0x5b,0x5c,0x30,0x2d,0x5c,0x78,0x31,0x46,0x5c,0x78,0x37,0x46,0x2d,0x5c,0x78,0x39,0x46,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x31,0x20,0x3d,0x20,0x2f,0x5b,0x5c,0x78,0x41,0x44,0x5c,0x75,0x30,0x36,0x30,0x30,0x2d,0x5c,0x75,0x30,0x36,0x30,0x35,0x5c,0x75,0x30,0x36,0x31,0x43,0x5c,0x75,0x30,0x36,0x44,0x44,0x5c,0x75,0x30,0x37,0x30,0x46,0x5c,0x75,0x30,0x38,0x45,0x32,0x5c,0x75,0x31,0x38,0x30,0x45,0x5c,0x75,0x32,0x30,0x30,0x42,0x2d,0x5c,0x75,0x32,0x30,0x30,0x46,0x5c,0x75,0x32,0x30,0x32,0x41,0x2d,0x5c,0x75,0x32,0x30,0x32,0x45,0x5c,0x75,0x32,0x30,0x36,0x30,0x2d,0x5c,0x75,0x32,0x30,0x36,0x34,0x5c,0x75,0x32,0x30,0x36,0x36,0x2d,0x5c,0x75,0x32,0x30,0x36,0x46,0x5c,0x75,0x46,0x45,0x46,0x46,0x5c,0x75,0x46,0x46,0x46,0x39,0x2d,0x5c,0x75,0x46,0x46,0x46,0x42,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x30,0x34,0x5b,0x5c,0x75,0x44,0x43,0x42,0x44,0x5c,0x75,0x44,0x43,0x43,0x44,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x32,0x46,0x5b,0x5c,0x75,0x44,0x43,0x41,0x30,0x2d,0x5c,0x75,0x44,0x43,0x41,0x33,0x5d,0x7c,0x5c,0x75,0x44,0x38,0x33,0x34,0x5b,0x5c,0x75,0x44,0x44,0x37,0x33,0x2d,0x5c,0x75,0x44,0x44,0x37,0x41,0x5d,0x7c,0x5c,0x75,0x44,0x42,0x34,0x30,0x5b,0x5c,0x75,0x44,0x43,0x30,0x31,0x5c,0x75,0x44,0x43,0x32,0x30,0x2d,0x5c,0x75,0x44,0x43,0x37,0x46,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x20,0x3d,0x20,0x2f,0x5b,0x20,0x5c,0x78,0x41,0x30,0x5c,0x75,0x31,0x36,0x38,0x30,0x5c,0x75,0x32,0x30,0x30,0x30,0x2d,0x5c,0x75,0x32,0x30,0x30,0x41,0x5c,0x75,0x32,0x30,0x32,0x38,0x5c,0x75,0x32,0x30,0x32,0x39,0x5c,0x75,0x32,0x30,0x32,0x46,0x5c,0x75,0x32,0x30,0x35,0x46,0x5c,0x75,0x33,0x30,0x30,0x30,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x41,0x6e,0x79,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x33,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x43,0x63,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x32,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x43,0x66,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x50,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x34,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5a,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x63,0x5f,0x6d,0x69,0x63,0x72,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x41,0x6e,0x79,0x3a,0x20,0x41,0x6e,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x63,0x3a,0x20,0x43,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x66,0x3a,0x20,0x43,0x66,0x2c,0x0a,0x20,0x20,0x20,0x20,0x50,0x3a,0x20,0x50,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5a,0x3a,0x20,0x5a,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x74,0x69,0x6c,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x6a,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2c,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x6f,0x62,0x6a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x72,0x67,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x6f,0x62,0x6a,0x20,0x2f,0x2a,0x66,0x72,0x6f,0x6d,0x31,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x32,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x33,0x2c,0x20,0x2e,0x2e,0x2e,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x2b,0x20,0x22,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x62,0x6a,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x62,0x6a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x61,0x6e,0x64,0x20,0x70,0x75,0x74,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x61,0x74,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x20,0x66,0x6f,0x72,0x20,0x73,0x6f,0x6d,0x65,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x73,0x72,0x63,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6e,0x65,0x77,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x70,0x6f,0x73,0x29,0x2c,0x20,0x6e,0x65,0x77,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x6e,0x6f,0x2d,0x62,0x69,0x74,0x77,0x69,0x73,0x65,0x3a,0x30,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x72,0x6f,0x6b,0x65,0x6e,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x35,0x37,0x33,0x34,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x75,0x73,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x3d,0x20,0x36,0x34,0x39,0x37,0x36,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x36,0x35,0x30,0x30,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x63,0x20,0x26,0x20,0x36,0x35,0x35,0x33,0x35,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x35,0x35,0x33,0x35,0x20,0x7c,0x7c,0x20,0x28,0x63,0x20,0x26,0x20,0x36,0x35,0x35,0x33,0x35,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x35,0x35,0x33,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x63,0x6f,0x64,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x3d,0x20,0x31,0x34,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x33,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x3d,0x20,0x31,0x32,0x37,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x31,0x35,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x75,0x74,0x20,0x6f,0x66,0x20,0x72,0x61,0x6e,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x20,0x31,0x31,0x31,0x34,0x31,0x31,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x6e,0x6f,0x2d,0x62,0x69,0x74,0x77,0x69,0x73,0x65,0x3a,0x30,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3e,0x20,0x36,0x35,0x35,0x33,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x20,0x2d,0x3d,0x20,0x36,0x35,0x35,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x31,0x20,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x2b,0x20,0x28,0x63,0x20,0x3e,0x3e,0x20,0x31,0x30,0x29,0x2c,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x32,0x20,0x3d,0x20,0x35,0x36,0x33,0x32,0x30,0x20,0x2b,0x20,0x28,0x63,0x20,0x26,0x20,0x31,0x30,0x32,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x31,0x2c,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x55,0x4e,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x4d,0x44,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x5c,0x28,0x5b,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x5c,0x2d,0x2e,0x5c,0x2f,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x5b,0x5c,0x5c,0x5c,0x5d,0x5e,0x5f,0x60,0x7b,0x7c,0x7d,0x7e,0x5d,0x29,0x2f,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x45,0x4e,0x54,0x49,0x54,0x59,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x26,0x28,0x5b,0x61,0x2d,0x7a,0x23,0x5d,0x5b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x33,0x31,0x7d,0x29,0x3b,0x2f,0x67,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x55,0x4e,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x41,0x4c,0x4c,0x5f,0x52,0x45,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x55,0x4e,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x4d,0x44,0x5f,0x52,0x45,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x45,0x4e,0x54,0x49,0x54,0x59,0x5f,0x52,0x45,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x22,0x67,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x44,0x49,0x47,0x49,0x54,0x41,0x4c,0x5f,0x45,0x4e,0x54,0x49,0x54,0x59,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x23,0x28,0x28,0x3f,0x3a,0x78,0x5b,0x61,0x2d,0x66,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x38,0x7d,0x7c,0x5b,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x38,0x7d,0x29,0x29,0x24,0x2f,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x45,0x6e,0x74,0x69,0x74,0x79,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x28,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x28,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x35,0x20,0x2f,0x2a,0x20,0x23,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x44,0x49,0x47,0x49,0x54,0x41,0x4c,0x5f,0x45,0x4e,0x54,0x49,0x54,0x59,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x5b,0x31,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x78,0x22,0x20,0x3f,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x2c,0x20,0x31,0x36,0x29,0x20,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x20,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x28,0x63,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x74,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x09,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x27,0x26,0x27,0x29,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x3b,0x20,0x7d,0x0a,0x0a,0x09,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x45,0x4e,0x54,0x49,0x54,0x59,0x5f,0x52,0x45,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x45,0x6e,0x74,0x69,0x74,0x79,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x3b,0x0a,0x09,0x7d,0x2a,0x2f,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x4d,0x64,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5c,0x5c,0x22,0x29,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x55,0x4e,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x4d,0x44,0x5f,0x52,0x45,0x2c,0x20,0x22,0x24,0x31,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5c,0x5c,0x22,0x29,0x20,0x3c,0x20,0x30,0x20,0x26,0x26,0x20,0x73,0x74,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x26,0x22,0x29,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x55,0x4e,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x41,0x4c,0x4c,0x5f,0x52,0x45,0x2c,0x20,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x2c,0x20,0x65,0x6e,0x74,0x69,0x74,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x45,0x6e,0x74,0x69,0x74,0x79,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x28,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x65,0x6e,0x74,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x26,0x3c,0x3e,0x22,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x52,0x45,0x50,0x4c,0x41,0x43,0x45,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x26,0x3c,0x3e,0x22,0x5d,0x2f,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x52,0x45,0x50,0x4c,0x41,0x43,0x45,0x4d,0x45,0x4e,0x54,0x53,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x26,0x22,0x3a,0x20,0x22,0x26,0x61,0x6d,0x70,0x3b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3c,0x22,0x3a,0x20,0x22,0x26,0x6c,0x74,0x3b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3e,0x22,0x3a,0x20,0x22,0x26,0x67,0x74,0x3b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x22,0x27,0x3a,0x20,0x22,0x26,0x71,0x75,0x6f,0x74,0x3b,0x22,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x55,0x6e,0x73,0x61,0x66,0x65,0x43,0x68,0x61,0x72,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x52,0x45,0x50,0x4c,0x41,0x43,0x45,0x4d,0x45,0x4e,0x54,0x53,0x5b,0x63,0x68,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x52,0x45,0x50,0x4c,0x41,0x43,0x45,0x5f,0x52,0x45,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x55,0x6e,0x73,0x61,0x66,0x65,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x52,0x45,0x47,0x45,0x58,0x50,0x5f,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x2e,0x3f,0x2a,0x2b,0x5e,0x24,0x5b,0x5c,0x5d,0x5c,0x5c,0x28,0x29,0x7b,0x7d,0x7c,0x2d,0x5d,0x2f,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x45,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x52,0x45,0x47,0x45,0x58,0x50,0x5f,0x45,0x53,0x43,0x41,0x50,0x45,0x5f,0x52,0x45,0x2c,0x20,0x22,0x5c,0x5c,0x24,0x26,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5a,0x73,0x20,0x28,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x29,0x20,0x7c,0x7c,0x20,0x5b,0x5c,0x74,0x5c,0x66,0x5c,0x76,0x5c,0x72,0x5c,0x6e,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3e,0x3d,0x20,0x38,0x31,0x39,0x32,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x3c,0x3d,0x20,0x38,0x32,0x30,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x2f,0x2f,0x20,0x5c,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x3a,0x0a,0x20,0x2f,0x2f,0x20,0x5c,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x0a,0x20,0x2f,0x2f,0x20,0x5c,0x76,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x3a,0x0a,0x20,0x2f,0x2f,0x20,0x5c,0x66,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x33,0x3a,0x0a,0x20,0x2f,0x2f,0x20,0x5c,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x36,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x37,0x36,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x38,0x32,0x33,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x38,0x32,0x38,0x37,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x32,0x38,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x6d,0x61,0x78,0x2d,0x6c,0x65,0x6e,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x61,0x73,0x74,0x72,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x34,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x41,0x53,0x43,0x49,0x49,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x21,0x2c,0x20,0x22,0x2c,0x20,0x23,0x2c,0x20,0x24,0x2c,0x20,0x25,0x2c,0x20,0x26,0x2c,0x20,0x27,0x2c,0x20,0x28,0x2c,0x20,0x29,0x2c,0x20,0x2a,0x2c,0x20,0x2b,0x2c,0x20,0x2c,0x2c,0x20,0x2d,0x2c,0x20,0x2e,0x2c,0x20,0x2f,0x2c,0x20,0x3a,0x2c,0x20,0x3b,0x2c,0x20,0x3c,0x2c,0x20,0x3d,0x2c,0x20,0x3e,0x2c,0x20,0x3f,0x2c,0x20,0x40,0x2c,0x20,0x5b,0x2c,0x20,0x5c,0x2c,0x20,0x5d,0x2c,0x20,0x5e,0x2c,0x20,0x5f,0x2c,0x20,0x60,0x2c,0x20,0x7b,0x2c,0x20,0x7c,0x2c,0x20,0x7d,0x2c,0x20,0x6f,0x72,0x20,0x7e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x70,0x65,0x63,0x2e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2e,0x6f,0x72,0x67,0x2f,0x30,0x2e,0x31,0x35,0x2f,0x23,0x61,0x73,0x63,0x69,0x69,0x2d,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x63,0x6f,0x6e,0x66,0x75,0x73,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x21,0x21,0x21,0x20,0x49,0x74,0x20,0x6c,0x61,0x63,0x6b,0x73,0x20,0x73,0x6f,0x6d,0x65,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x69,0x6e,0x20,0x61,0x73,0x63,0x69,0x69,0x20,0x72,0x61,0x6e,0x67,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x33,0x20,0x2f,0x2a,0x20,0x21,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x34,0x20,0x2f,0x2a,0x20,0x22,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x35,0x20,0x2f,0x2a,0x20,0x23,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x36,0x20,0x2f,0x2a,0x20,0x24,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x37,0x20,0x2f,0x2a,0x20,0x25,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x38,0x20,0x2f,0x2a,0x20,0x26,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x39,0x20,0x2f,0x2a,0x20,0x27,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x30,0x20,0x2f,0x2a,0x20,0x28,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x31,0x20,0x2f,0x2a,0x20,0x29,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x32,0x20,0x2f,0x2a,0x20,0x2a,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x33,0x20,0x2f,0x2a,0x20,0x2b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x34,0x20,0x2f,0x2a,0x20,0x2c,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x36,0x20,0x2f,0x2a,0x20,0x2e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x37,0x20,0x2f,0x2a,0x20,0x2f,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x39,0x20,0x2f,0x2a,0x20,0x3b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x31,0x20,0x2f,0x2a,0x20,0x3d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x32,0x20,0x2f,0x2a,0x20,0x3e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x33,0x20,0x2f,0x2a,0x20,0x3f,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x34,0x20,0x2f,0x2a,0x20,0x40,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x33,0x20,0x2f,0x2a,0x20,0x5d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x34,0x20,0x2f,0x2a,0x20,0x5e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x35,0x20,0x2f,0x2a,0x20,0x5f,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x33,0x20,0x2f,0x2a,0x20,0x7b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x34,0x20,0x2f,0x2a,0x20,0x7c,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x35,0x20,0x2f,0x2a,0x20,0x7d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x36,0x20,0x2f,0x2a,0x20,0x7e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x70,0x6c,0x65,0x72,0x20,0x74,0x6f,0x20,0x75,0x6e,0x69,0x66,0x79,0x20,0x5b,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x6c,0x61,0x62,0x65,0x6c,0x73,0x5d,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x69,0x6d,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x67,0x2c,0x20,0x22,0x20,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x76,0x31,0x30,0x20,0x27,0xe1,0xba,0x9e,0x27,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x27,0xe1,0xb9,0xbe,0x27,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x70,0x72,0x65,0x73,0x75,0x6d,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x62,0x75,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x69,0x78,0x65,0x64,0x20,0x69,0x6e,0x20,0x76,0x31,0x32,0x20,0x28,0x63,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x20,0x66,0x69,0x6e,0x64,0x20,0x61,0x6e,0x79,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6f,0x20,0x74,0x72,0x65,0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x6f,0x6e,0x65,0x20,0x61,0x73,0x20,0x61,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x76,0x31,0x30,0x20,0x69,0x73,0x20,0x6e,0x6f,0x20,0x6c,0x6f,0x6e,0x67,0x65,0x72,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x22,0x5c,0x75,0x31,0x65,0x39,0x65,0x22,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5c,0x75,0x31,0x65,0x37,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x75,0x31,0x65,0x39,0x65,0x2f,0x67,0x2c,0x20,0x22,0x5c,0x78,0x64,0x66,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x67,0x65,0x74,0x20,0x72,0x69,0x64,0x20,0x6f,0x66,0x20,0x61,0x6c,0x6c,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x20,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x31,0x32,0x35,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x36,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x6d,0x20,0x28,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0xc4,0xb0,0x2c,0x20,0xcf,0xb4,0x2c,0x20,0xe1,0xba,0x9e,0x2c,0x20,0xe2,0x84,0xa6,0x2c,0x20,0xe2,0x84,0xaa,0x2c,0x20,0xe2,0x84,0xab,0x20,0x2d,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x61,0x72,0x65,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x2c,0x20,0x62,0x75,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x72,0x65,0x27,0x73,0x20,0x61,0x6e,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x20,0x73,0x68,0x6f,0x77,0x69,0x6e,0x67,0x20,0x68,0x6f,0x77,0x20,0x69,0x74,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x73,0x2e,0x20,0x4c,0x65,0x74,0x73,0x20,0x74,0x61,0x6b,0x65,0x20,0x67,0x72,0x65,0x65,0x6b,0x20,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x6f,0x6d,0x65,0x67,0x61,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x55,0x2b,0x30,0x33,0x39,0x38,0x20,0x28,0xce,0x98,0x29,0x2c,0x20,0x55,0x2b,0x30,0x33,0x66,0x34,0x20,0x28,0xcf,0xb4,0x29,0x20,0x61,0x6e,0x64,0x20,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x55,0x2b,0x30,0x33,0x62,0x38,0x20,0x28,0xce,0xb8,0x29,0x2c,0x20,0x55,0x2b,0x30,0x33,0x64,0x31,0x20,0x28,0xcf,0x91,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x30,0x33,0x39,0x38,0x3b,0x47,0x52,0x45,0x45,0x4b,0x20,0x43,0x41,0x50,0x49,0x54,0x41,0x4c,0x20,0x4c,0x45,0x54,0x54,0x45,0x52,0x20,0x54,0x48,0x45,0x54,0x41,0x3b,0x4c,0x75,0x3b,0x30,0x3b,0x4c,0x3b,0x3b,0x3b,0x3b,0x3b,0x4e,0x3b,0x3b,0x3b,0x3b,0x30,0x33,0x42,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x30,0x33,0x42,0x38,0x3b,0x47,0x52,0x45,0x45,0x4b,0x20,0x53,0x4d,0x41,0x4c,0x4c,0x20,0x4c,0x45,0x54,0x54,0x45,0x52,0x20,0x54,0x48,0x45,0x54,0x41,0x3b,0x4c,0x6c,0x3b,0x30,0x3b,0x4c,0x3b,0x3b,0x3b,0x3b,0x3b,0x4e,0x3b,0x3b,0x3b,0x30,0x33,0x39,0x38,0x3b,0x3b,0x30,0x33,0x39,0x38,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x30,0x33,0x44,0x31,0x3b,0x47,0x52,0x45,0x45,0x4b,0x20,0x54,0x48,0x45,0x54,0x41,0x20,0x53,0x59,0x4d,0x42,0x4f,0x4c,0x3b,0x4c,0x6c,0x3b,0x30,0x3b,0x4c,0x3b,0x3c,0x63,0x6f,0x6d,0x70,0x61,0x74,0x3e,0x20,0x30,0x33,0x42,0x38,0x3b,0x3b,0x3b,0x3b,0x4e,0x3b,0x47,0x52,0x45,0x45,0x4b,0x20,0x53,0x4d,0x41,0x4c,0x4c,0x20,0x4c,0x45,0x54,0x54,0x45,0x52,0x20,0x53,0x43,0x52,0x49,0x50,0x54,0x20,0x54,0x48,0x45,0x54,0x41,0x3b,0x3b,0x30,0x33,0x39,0x38,0x3b,0x3b,0x30,0x33,0x39,0x38,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x30,0x33,0x46,0x34,0x3b,0x47,0x52,0x45,0x45,0x4b,0x20,0x43,0x41,0x50,0x49,0x54,0x41,0x4c,0x20,0x54,0x48,0x45,0x54,0x41,0x20,0x53,0x59,0x4d,0x42,0x4f,0x4c,0x3b,0x4c,0x75,0x3b,0x30,0x3b,0x4c,0x3b,0x3c,0x63,0x6f,0x6d,0x70,0x61,0x74,0x3e,0x20,0x30,0x33,0x39,0x38,0x3b,0x3b,0x3b,0x3b,0x4e,0x3b,0x3b,0x3b,0x3b,0x30,0x33,0x42,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x73,0x65,0x2d,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x69,0x73,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x74,0x72,0x65,0x61,0x74,0x20,0x61,0x6c,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x6d,0x20,0x61,0x73,0x20,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x42,0x75,0x74,0x20,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0xcf,0x91,0x20,0x28,0x69,0x74,0x27,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0xcf,0xb4,0x20,0x28,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x70,0x70,0x6c,0x79,0x69,0x6e,0x67,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6c,0x6f,0x77,0x65,0x72,0x20,0x74,0x68,0x65,0x6e,0x20,0x75,0x70,0x70,0x65,0x72,0x20,0x63,0x61,0x73,0x65,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x73,0x20,0x61,0x6e,0x79,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x5c,0x75,0x30,0x33,0x39,0x38,0x5c,0x75,0x30,0x33,0x66,0x34,0x5c,0x75,0x30,0x33,0x62,0x38,0x5c,0x75,0x30,0x33,0x64,0x31,0x27,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x5c,0x75,0x30,0x33,0x39,0x38,0x5c,0x75,0x30,0x33,0x39,0x38,0x5c,0x75,0x30,0x33,0x39,0x38,0x5c,0x75,0x30,0x33,0x39,0x38,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x63,0x61,0x73,0x65,0x20,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0x3b,0x20,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x73,0x20,0x61,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x73,0x74,0x65,0x70,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x68,0x65,0x72,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x61,0x6c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x6c,0x61,0x74,0x65,0x72,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x74,0x68,0x69,0x73,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x61,0x20,0x63,0x6f,0x6e,0x66,0x6c,0x69,0x63,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x20,0x6d,0x65,0x6d,0x62,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x6f,0x73,0x74,0x20,0x6e,0x6f,0x74,0x61,0x62,0x6c,0x79,0x2c,0x20,0x60,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x2d,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x6c,0x69,0x62,0x72,0x61,0x72,0x69,0x65,0x73,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6c,0x79,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x62,0x6f,0x74,0x68,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x61,0x6e,0x64,0x20,0x69,0x74,0x73,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x20,0x77,0x6f,0x6e,0x27,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x64,0x65,0x70,0x65,0x6e,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x6d,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x6c,0x79,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x73,0x20,0x74,0x68,0x65,0x69,0x72,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x6e,0x64,0x6c,0x65,0x64,0x20,0x73,0x69,0x7a,0x65,0x20,0x28,0x65,0x2e,0x67,0x2e,0x20,0x61,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x62,0x75,0x69,0x6c,0x64,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x6c,0x69,0x62,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x6c,0x69,0x62,0x2e,0x6d,0x64,0x75,0x72,0x6c,0x20,0x3d,0x20,0x6d,0x64,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x6c,0x69,0x62,0x2e,0x75,0x63,0x6d,0x69,0x63,0x72,0x6f,0x20,0x3d,0x20,0x75,0x63,0x5f,0x6d,0x69,0x63,0x72,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x20,0x3d,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x68,0x61,0x73,0x20,0x3d,0x20,0x68,0x61,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x4d,0x64,0x20,0x3d,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x4d,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x20,0x3d,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x20,0x3d,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x20,0x20,0x20,0x20,0x20,0x3d,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x20,0x3d,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x61,0x72,0x72,0x61,0x79,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x20,0x3d,0x20,0x61,0x72,0x72,0x61,0x79,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x20,0x3d,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x45,0x20,0x3d,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x6c,0x61,0x62,0x65,0x6c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x4e,0x65,0x73,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x70,0x72,0x65,0x76,0x50,0x6f,0x73,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3d,0x20,0x2d,0x31,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x33,0x20,0x2f,0x2a,0x20,0x5d,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x50,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x73,0x6b,0x69,0x70,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x50,0x6f,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x66,0x69,0x6e,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x60,0x5b,0x60,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x70,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x61,0x6e,0x79,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x4e,0x65,0x73,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6f,0x75,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x20,0x6f,0x6c,0x64,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x24,0x32,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x72,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6b,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x3a,0x20,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x20,0x2f,0x2a,0x20,0x5c,0x6e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x2f,0x2a,0x20,0x3e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x72,0x20,0x3d,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x24,0x32,0x28,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x31,0x2c,0x20,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x27,0x3e,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x2e,0x2e,0x2e,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x20,0x2e,0x2e,0x2e,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x63,0x69,0x69,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3c,0x20,0x33,0x32,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x30,0x20,0x2f,0x2a,0x20,0x28,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3e,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x31,0x20,0x2f,0x2a,0x20,0x29,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x76,0x65,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x72,0x20,0x3d,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x24,0x32,0x28,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x28,0x73,0x74,0x72,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x30,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6b,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x3a,0x20,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x33,0x34,0x20,0x2f,0x2a,0x20,0x22,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x33,0x39,0x20,0x2f,0x2a,0x20,0x27,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x30,0x20,0x2f,0x2a,0x20,0x28,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x69,0x73,0x20,0x22,0x28,0x22,0x2c,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x22,0x29,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x74,0x72,0x20,0x3d,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x24,0x31,0x28,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x31,0x2c,0x20,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x30,0x20,0x2f,0x2a,0x20,0x28,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x31,0x20,0x2f,0x2a,0x20,0x29,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x6c,0x61,0x62,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x74,0x69,0x74,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x63,0x6f,0x64,0x65,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x73,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x3c,0x63,0x6f,0x64,0x65,0x22,0x20,0x2b,0x20,0x73,0x6c,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x20,0x2b,0x20,0x22,0x3e,0x22,0x20,0x2b,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x63,0x6f,0x64,0x65,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x63,0x6f,0x64,0x65,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x73,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x3c,0x70,0x72,0x65,0x22,0x20,0x2b,0x20,0x73,0x6c,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x20,0x2b,0x20,0x22,0x3e,0x3c,0x63,0x6f,0x64,0x65,0x3e,0x22,0x20,0x2b,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x63,0x6f,0x64,0x65,0x3e,0x3c,0x2f,0x70,0x72,0x65,0x3e,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x73,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2c,0x20,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3f,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x6c,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x22,0x22,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x2c,0x20,0x69,0x2c,0x20,0x61,0x72,0x72,0x2c,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x2c,0x20,0x74,0x6d,0x70,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x66,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x72,0x20,0x3d,0x20,0x69,0x6e,0x66,0x6f,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x28,0x5c,0x73,0x2b,0x29,0x2f,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x61,0x72,0x72,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x61,0x72,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x41,0x74,0x74,0x72,0x73,0x29,0x20,0x7c,0x7c,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x20,0x3d,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x3c,0x70,0x72,0x65,0x22,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x20,0x2b,0x20,0x22,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2c,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x67,0x65,0x6e,0x74,0x6c,0x79,0x2c,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x79,0x20,0x62,0x65,0x2c,0x20,0x6f,0x6e,0x65,0x20,0x64,0x61,0x79,0x20,0x77,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x61,0x64,0x64,0x20,0x2e,0x64,0x65,0x65,0x70,0x43,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x20,0x66,0x6f,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x61,0x6e,0x64,0x20,0x73,0x69,0x6d,0x70,0x6c,0x69,0x66,0x79,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x74,0x2c,0x20,0x62,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x77,0x20,0x77,0x65,0x20,0x70,0x72,0x65,0x66,0x65,0x72,0x20,0x74,0x6f,0x20,0x6b,0x65,0x65,0x70,0x20,0x74,0x68,0x69,0x6e,0x67,0x73,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x66,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3f,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x20,0x3a,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x61,0x6e,0x67,0x50,0x72,0x65,0x66,0x69,0x78,0x20,0x2b,0x20,0x6c,0x61,0x6e,0x67,0x4e,0x61,0x6d,0x65,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x20,0x2b,0x3d,0x20,0x22,0x20,0x22,0x20,0x2b,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x61,0x6e,0x67,0x50,0x72,0x65,0x66,0x69,0x78,0x20,0x2b,0x20,0x6c,0x61,0x6e,0x67,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x61,0x6b,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x6a,0x75,0x73,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x3a,0x20,0x74,0x6d,0x70,0x41,0x74,0x74,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x3c,0x70,0x72,0x65,0x3e,0x3c,0x63,0x6f,0x64,0x65,0x22,0x20,0x2b,0x20,0x73,0x6c,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6d,0x70,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x20,0x2b,0x20,0x22,0x3e,0x22,0x20,0x2b,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x63,0x6f,0x64,0x65,0x3e,0x3c,0x2f,0x70,0x72,0x65,0x3e,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x3c,0x70,0x72,0x65,0x3e,0x3c,0x63,0x6f,0x64,0x65,0x22,0x20,0x2b,0x20,0x73,0x6c,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x20,0x2b,0x20,0x22,0x3e,0x22,0x20,0x2b,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x64,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x63,0x6f,0x64,0x65,0x3e,0x3c,0x2f,0x70,0x72,0x65,0x3e,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x69,0x6d,0x61,0x67,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x73,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x22,0x61,0x6c,0x74,0x22,0x20,0x61,0x74,0x74,0x72,0x20,0x4d,0x55,0x53,0x54,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x2c,0x20,0x65,0x76,0x65,0x6e,0x20,0x69,0x66,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x20,0x42,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x20,0x61,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x70,0x6c,0x61,0x63,0x65,0x64,0x20,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x73,0x74,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x22,0x61,0x6c,0x74,0x22,0x29,0x5d,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x73,0x6c,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x41,0x73,0x54,0x65,0x78,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6c,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x68,0x61,0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x2f,0x2a,0x2c,0x20,0x65,0x6e,0x76,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x20,0x3f,0x20,0x22,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x5c,0x6e,0x22,0x20,0x3a,0x20,0x22,0x3c,0x62,0x72,0x3e,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x73,0x6f,0x66,0x74,0x62,0x72,0x65,0x61,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x2f,0x2a,0x2c,0x20,0x65,0x6e,0x76,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x62,0x72,0x65,0x61,0x6b,0x73,0x20,0x3f,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x20,0x3f,0x20,0x22,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x5c,0x6e,0x22,0x20,0x3a,0x20,0x22,0x3c,0x62,0x72,0x3e,0x5c,0x6e,0x22,0x20,0x3a,0x20,0x22,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x20,0x2f,0x2a,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x20,0x2f,0x2a,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x20,0x2f,0x2a,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x73,0x20,0x6e,0x65,0x77,0x20,0x5b,0x5b,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x5d,0x5d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x61,0x6e,0x64,0x20,0x66,0x69,0x6c,0x6c,0x20,0x5b,0x5b,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x23,0x72,0x75,0x6c,0x65,0x73,0x5d,0x5d,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x23,0x72,0x75,0x6c,0x65,0x73,0x20,0x2d,0x3e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x75,0x6c,0x65,0x73,0x2e,0x73,0x74,0x72,0x6f,0x6e,0x67,0x5f,0x6f,0x70,0x65,0x6e,0x20,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x3c,0x62,0x3e,0x27,0x3b,0x20,0x7d,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x75,0x6c,0x65,0x73,0x2e,0x73,0x74,0x72,0x6f,0x6e,0x67,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x3c,0x2f,0x62,0x3e,0x27,0x3b,0x20,0x7d,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x2e,0x2e,0x2e,0x29,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x45,0x61,0x63,0x68,0x20,0x72,0x75,0x6c,0x65,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x61,0x73,0x20,0x69,0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x66,0x69,0x78,0x65,0x64,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x3a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x79,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x5f,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x29,0x20,0x7b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2e,0x2e,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x48,0x54,0x4d,0x4c,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x7d,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x53,0x65,0x65,0x20,0x5b,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x63,0x6f,0x64,0x65,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x6a,0x73,0x29,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x66,0x6f,0x72,0x20,0x6d,0x6f,0x72,0x65,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x61,0x6e,0x64,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x24,0x31,0x28,0x7b,0x7d,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x72,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x20,0x74,0x6f,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x20,0x22,0x20,0x2b,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x29,0x20,0x2b,0x20,0x27,0x3d,0x22,0x27,0x20,0x2b,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x29,0x20,0x2b,0x20,0x27,0x22,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x28,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x69,0x64,0x78,0x20,0x28,0x4e,0x75,0x6d,0x62,0x65,0x64,0x29,0x3a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x74,0x6f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x6f,0x66,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x6e,0x20,0x62,0x79,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x09,0x20,0x2a,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x23,0x72,0x75,0x6c,0x65,0x73,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x6e,0x65,0x65,0x64,0x4c,0x66,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x69,0x67,0x68,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x73,0x65,0x72,0x74,0x20,0x61,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x61,0x6e,0x64,0x20,0x73,0x75,0x62,0x73,0x65,0x71,0x75,0x65,0x6e,0x74,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x6c,0x65,0x76,0x65,0x6c,0x20,0x74,0x61,0x67,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x68,0x65,0x72,0x65,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x20,0x61,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x61,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x3e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x26,0x26,0x20,0x69,0x64,0x78,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x65,0x2e,0x67,0x2e,0x20,0x60,0x3c,0x69,0x6d,0x67,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x3f,0x20,0x22,0x3c,0x2f,0x22,0x20,0x3a,0x20,0x22,0x3c,0x22,0x29,0x20,0x2b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x6f,0x64,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x2c,0x20,0x65,0x2e,0x67,0x2e,0x20,0x60,0x3c,0x69,0x6d,0x67,0x20,0x73,0x72,0x63,0x3d,0x22,0x66,0x6f,0x6f,0x22,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x41,0x74,0x74,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x64,0x64,0x20,0x61,0x20,0x73,0x6c,0x61,0x73,0x68,0x20,0x66,0x6f,0x72,0x20,0x73,0x65,0x6c,0x66,0x2d,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x73,0x2c,0x20,0x65,0x2e,0x67,0x2e,0x20,0x60,0x3c,0x69,0x6d,0x67,0x20,0x73,0x72,0x63,0x3d,0x22,0x66,0x6f,0x6f,0x22,0x20,0x2f,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x20,0x2f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x61,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x4c,0x66,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x78,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x20,0x2b,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x42,0x6c,0x6f,0x63,0x6b,0x2d,0x6c,0x65,0x76,0x65,0x6c,0x20,0x74,0x61,0x67,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x61,0x6e,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x74,0x61,0x67,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x4c,0x66,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x20,0x2b,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x74,0x79,0x70,0x65,0x2e,0x20,0x45,0x2e,0x67,0x2e,0x20,0x60,0x3c,0x6c,0x69,0x3e,0x3c,0x2f,0x6c,0x69,0x3e,0x60,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x4c,0x66,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x6e,0x65,0x65,0x64,0x4c,0x66,0x20,0x3f,0x20,0x22,0x3e,0x5c,0x6e,0x22,0x20,0x3a,0x20,0x22,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x28,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x74,0x6f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x6f,0x66,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x72,0x6f,0x6d,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x28,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x2c,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x73,0x20,0x5b,0x5b,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x5d,0x5d,0x2c,0x20,0x62,0x75,0x74,0x20,0x66,0x6f,0x72,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x6f,0x66,0x20,0x60,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x60,0x20,0x74,0x79,0x70,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x74,0x79,0x70,0x65,0x5d,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x41,0x73,0x54,0x65,0x78,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x28,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x74,0x6f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x6f,0x66,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x72,0x6f,0x6d,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x28,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x2c,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x6b,0x6c,0x75,0x64,0x67,0x65,0x20,0x66,0x6f,0x72,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x60,0x61,0x6c,0x74,0x60,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x20,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x4d,0x61,0x72,0x6b,0x20,0x73,0x70,0x65,0x63,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x69,0x74,0x21,0x20,0x53,0x70,0x65,0x63,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x74,0x6f,0x20,0x73,0x68,0x6f,0x77,0x20,0x60,0x61,0x6c,0x74,0x60,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x74,0x72,0x69,0x70,0x70,0x65,0x64,0x20,0x6d,0x61,0x72,0x6b,0x75,0x70,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x65,0x73,0x63,0x61,0x70,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x41,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6d,0x61,0x67,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x41,0x73,0x54,0x65,0x78,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6f,0x66,0x74,0x62,0x72,0x65,0x61,0x6b,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x22,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x28,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x74,0x6f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x6f,0x66,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x72,0x6f,0x6d,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x28,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x2c,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x61,0x6b,0x65,0x73,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x73,0x74,0x72,0x65,0x61,0x6d,0x20,0x61,0x6e,0x64,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x48,0x54,0x4d,0x4c,0x2e,0x20,0x50,0x72,0x6f,0x62,0x61,0x62,0x6c,0x79,0x2c,0x20,0x79,0x6f,0x75,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x74,0x68,0x69,0x73,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x65,0x6e,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x74,0x79,0x70,0x65,0x5d,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3d,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x52,0x75,0x6c,0x65,0x72,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x2c,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x63,0x6f,0x72,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x62,0x6c,0x6f,0x63,0x6b,0x5d,0x5d,0x20,0x61,0x6e,0x64,0x0a,0x09,0x20,0x2a,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x5d,0x5d,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6e,0x61,0x67,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x20,0x6f,0x66,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x72,0x75,0x6c,0x65,0x73,0x29,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6b,0x65,0x65,0x70,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x69,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x6f,0x72,0x64,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x20,0x74,0x68,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x74,0x6f,0x20,0x65,0x61,0x63,0x68,0x20,0x72,0x75,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x2f,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x61,0x64,0x64,0x2f,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x64,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x20,0x28,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x63,0x61,0x63,0x68,0x65,0x69,0x6e,0x67,0x20,0x6c,0x69,0x73,0x74,0x73,0x20,0x6f,0x66,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x59,0x6f,0x75,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x20,0x46,0x6f,0x72,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x75,0x73,0x65,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x20,0x61,0x6e,0x64,0x0a,0x09,0x20,0x2a,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x75,0x73,0x65,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x52,0x75,0x6c,0x65,0x72,0x28,0x29,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x75,0x6c,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x20,0x45,0x61,0x63,0x68,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x69,0x73,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x58,0x58,0x58,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x66,0x6e,0x3a,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x61,0x6c,0x74,0x3a,0x20,0x5b,0x20,0x6e,0x61,0x6d,0x65,0x32,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x33,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x63,0x68,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x72,0x73,0x74,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x2d,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x27,0x27,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x63,0x6f,0x6e,0x64,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x2d,0x20,0x64,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x66,0x6f,0x72,0x20,0x66,0x61,0x73,0x74,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x69,0x6e,0x67,0x20,0x62,0x79,0x20,0x63,0x68,0x61,0x72,0x63,0x6f,0x64,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x2c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x62,0x79,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x66,0x69,0x6e,0x64,0x5f,0x5f,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x5b,0x69,0x5d,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x20,0x63,0x61,0x63,0x68,0x65,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x65,0x6c,0x66,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x20,0x22,0x22,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x20,0x75,0x6e,0x69,0x71,0x75,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x75,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6c,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x2e,0x61,0x6c,0x74,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x6c,0x74,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x61,0x6c,0x74,0x4e,0x61,0x6d,0x65,0x29,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x6c,0x74,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x61,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x5b,0x63,0x68,0x61,0x69,0x6e,0x5d,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x75,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6c,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x69,0x6e,0x20,0x26,0x26,0x20,0x72,0x75,0x6c,0x65,0x2e,0x61,0x6c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x63,0x68,0x61,0x69,0x6e,0x29,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x5b,0x63,0x68,0x61,0x69,0x6e,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x75,0x6c,0x65,0x2e,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x61,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x20,0x5b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x66,0x6e,0x20,0x28,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x3a,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x6e,0x6f,0x74,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x72,0x75,0x6c,0x65,0x20,0x62,0x79,0x20,0x6e,0x61,0x6d,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x65,0x77,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x26,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x20,0x54,0x68,0x72,0x6f,0x77,0x73,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x69,0x66,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6e,0x6f,0x74,0x0a,0x09,0x20,0x2a,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x61,0x6c,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x6f,0x66,0x20,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x22,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x20,0x72,0x75,0x6c,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x65,0x77,0x20,0x6f,0x6e,0x65,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x63,0x6f,0x72,0x65,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x61,0x74,0x28,0x27,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x2f,0x2f,0x2e,0x2e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x66,0x69,0x6e,0x64,0x5f,0x5f,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x50,0x61,0x72,0x73,0x65,0x72,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x2e,0x66,0x6e,0x20,0x3d,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x2e,0x61,0x6c,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x2e,0x61,0x6c,0x74,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x20,0x5b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x4e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x6f,0x6e,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x66,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x66,0x6e,0x20,0x28,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x6e,0x6f,0x74,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x6f,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x6f,0x6e,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x61,0x6c,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x6f,0x66,0x20,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x22,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x27,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x27,0x2c,0x20,0x27,0x6d,0x79,0x5f,0x72,0x75,0x6c,0x65,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x2f,0x2f,0x2e,0x2e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x66,0x69,0x6e,0x64,0x5f,0x5f,0x28,0x62,0x65,0x66,0x6f,0x72,0x65,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x50,0x61,0x72,0x73,0x65,0x72,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x30,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6e,0x3a,0x20,0x66,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x74,0x3a,0x20,0x6f,0x70,0x74,0x2e,0x61,0x6c,0x74,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x20,0x5b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x6f,0x6e,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x66,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x66,0x6e,0x20,0x28,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x6e,0x6f,0x74,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x6f,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6f,0x6e,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x61,0x6c,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x6f,0x66,0x20,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x22,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x27,0x74,0x65,0x78,0x74,0x27,0x2c,0x20,0x27,0x6d,0x79,0x5f,0x72,0x75,0x6c,0x65,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x2f,0x2f,0x2e,0x2e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x66,0x74,0x65,0x72,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x66,0x69,0x6e,0x64,0x5f,0x5f,0x28,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x50,0x61,0x72,0x73,0x65,0x72,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x2c,0x20,0x30,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6e,0x3a,0x20,0x66,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x74,0x3a,0x20,0x6f,0x70,0x74,0x2e,0x61,0x6c,0x74,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x20,0x5b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x66,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x66,0x6e,0x20,0x28,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x6e,0x6f,0x74,0x20,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x50,0x75,0x73,0x68,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x63,0x68,0x61,0x69,0x6e,0x2e,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x61,0x6c,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x6f,0x66,0x20,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x22,0x20,0x63,0x68,0x61,0x69,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x63,0x6f,0x72,0x65,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x27,0x6d,0x79,0x5f,0x72,0x75,0x6c,0x65,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x2f,0x2f,0x2e,0x2e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x75,0x73,0x68,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x72,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6e,0x3a,0x20,0x66,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x74,0x3a,0x20,0x6f,0x70,0x74,0x2e,0x61,0x6c,0x74,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x20,0x5b,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x5d,0x29,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3a,0x20,0x73,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x20,0x49,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x2d,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x45,0x72,0x72,0x6f,0x72,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x70,0x61,0x72,0x61,0x6d,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x28,0x69,0x66,0x20,0x6e,0x6f,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x65,0x64,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x4f,0x6e,0x6c,0x79,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x5b,0x20,0x6c,0x69,0x73,0x74,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x20,0x62,0x79,0x20,0x6e,0x61,0x6d,0x65,0x20,0x61,0x6e,0x64,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x66,0x69,0x6e,0x64,0x5f,0x5f,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x52,0x75,0x6c,0x65,0x73,0x20,0x6d,0x61,0x6e,0x61,0x67,0x65,0x72,0x3a,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x22,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x4f,0x6e,0x6c,0x79,0x28,0x6c,0x69,0x73,0x74,0x20,0x5b,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x28,0x77,0x68,0x69,0x74,0x65,0x6c,0x69,0x73,0x74,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3a,0x20,0x73,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x65,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x20,0x65,0x6c,0x73,0x65,0x2e,0x20,0x49,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x2d,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x2e,0x20,0x45,0x72,0x72,0x6f,0x72,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x70,0x61,0x72,0x61,0x6d,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x4f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x5b,0x20,0x6c,0x69,0x73,0x74,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x75,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x20,0x5b,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x5d,0x29,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3a,0x20,0x73,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x20,0x49,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x2d,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x45,0x72,0x72,0x6f,0x72,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x70,0x61,0x72,0x61,0x6d,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x28,0x69,0x66,0x20,0x6e,0x6f,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x65,0x64,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2c,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x4f,0x6e,0x6c,0x79,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x5b,0x20,0x6c,0x69,0x73,0x74,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x20,0x62,0x79,0x20,0x6e,0x61,0x6d,0x65,0x20,0x61,0x6e,0x64,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x66,0x69,0x6e,0x64,0x5f,0x5f,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x52,0x75,0x6c,0x65,0x73,0x20,0x6d,0x61,0x6e,0x61,0x67,0x65,0x72,0x3a,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x22,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x5f,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x63,0x68,0x61,0x69,0x6e,0x4e,0x61,0x6d,0x65,0x29,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x72,0x75,0x6c,0x65,0x73,0x29,0x20,0x66,0x6f,0x72,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x20,0x49,0x74,0x20,0x61,0x6e,0x61,0x6c,0x79,0x7a,0x65,0x73,0x0a,0x09,0x20,0x2a,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x73,0x20,0x63,0x61,0x63,0x68,0x65,0x73,0x20,0x69,0x66,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69,0x73,0x20,0x60,0x27,0x27,0x60,0x20,0x28,0x65,0x6d,0x70,0x74,0x79,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x2e,0x20,0x49,0x74,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x62,0x65,0x20,0x73,0x6b,0x69,0x70,0x70,0x65,0x64,0x2e,0x20,0x54,0x68,0x61,0x74,0x27,0x73,0x0a,0x09,0x20,0x2a,0x20,0x64,0x6f,0x6e,0x65,0x20,0x69,0x6e,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x74,0x6f,0x20,0x6b,0x65,0x65,0x70,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x20,0x6d,0x6f,0x6e,0x6f,0x6d,0x6f,0x72,0x70,0x68,0x69,0x63,0x20,0x66,0x6f,0x72,0x20,0x68,0x69,0x67,0x68,0x20,0x73,0x70,0x65,0x65,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x52,0x75,0x6c,0x65,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x61,0x69,0x6e,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x5f,0x5f,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x61,0x69,0x6e,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x65,0x6d,0x70,0x74,0x79,0x2c,0x20,0x69,0x66,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2e,0x20,0x42,0x75,0x74,0x20,0x77,0x65,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x5b,0x63,0x68,0x61,0x69,0x6e,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x52,0x75,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x73,0x70,0x65,0x63,0x2e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2e,0x6f,0x72,0x67,0x2f,0x30,0x2e,0x32,0x39,0x2f,0x23,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x4e,0x45,0x57,0x4c,0x49,0x4e,0x45,0x53,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x72,0x5c,0x6e,0x3f,0x7c,0x5c,0x6e,0x2f,0x67,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x4e,0x55,0x4c,0x4c,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x30,0x2f,0x67,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x4e,0x45,0x57,0x4c,0x49,0x4e,0x45,0x53,0x5f,0x52,0x45,0x2c,0x20,0x22,0x5c,0x6e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x4e,0x55,0x4c,0x4c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x4e,0x55,0x4c,0x4c,0x5f,0x52,0x45,0x2c,0x20,0x22,0x5c,0x75,0x66,0x66,0x66,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x30,0x2c,0x20,0x31,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x74,0x6f,0x6b,0x2c,0x20,0x69,0x2c,0x20,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x74,0x6f,0x6b,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2c,0x20,0x74,0x6f,0x6b,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x72,0x72,0x61,0x79,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x61,0x72,0x72,0x61,0x79,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x4f,0x70,0x65,0x6e,0x24,0x31,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2f,0x5e,0x3c,0x61,0x5b,0x3e,0x5c,0x73,0x5d,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x43,0x6c,0x6f,0x73,0x65,0x24,0x31,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2f,0x5e,0x3c,0x5c,0x2f,0x61,0x5c,0x73,0x2a,0x3e,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x24,0x31,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6a,0x2c,0x20,0x6c,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x20,0x6c,0x6e,0x2c,0x20,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x68,0x74,0x6d,0x6c,0x4c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x75,0x72,0x6c,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x2c,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x2c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x20,0x7c,0x7c,0x20,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2e,0x70,0x72,0x65,0x74,0x65,0x73,0x74,0x28,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x4c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x73,0x63,0x61,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x2c,0x20,0x74,0x6f,0x20,0x6b,0x65,0x65,0x70,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x77,0x68,0x65,0x6e,0x20,0x6e,0x65,0x77,0x20,0x74,0x61,0x67,0x73,0x20,0x61,0x64,0x64,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x20,0x6c,0x6f,0x67,0x69,0x63,0x20,0x69,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x73,0x74,0x61,0x72,0x74,0x2f,0x65,0x6e,0x64,0x20,0x6d,0x61,0x74,0x63,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x68,0x74,0x6d,0x6c,0x20,0x74,0x61,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x4f,0x70,0x65,0x6e,0x24,0x31,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x26,0x26,0x20,0x68,0x74,0x6d,0x6c,0x4c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x4c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x43,0x6c,0x6f,0x73,0x65,0x24,0x31,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x4c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x74,0x6d,0x6c,0x4c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x77,0x20,0x73,0x70,0x6c,0x69,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x6e,0x6f,0x64,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x62,0x69,0x64,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x61,0x76,0x6f,0x69,0x64,0x73,0x20,0x68,0x74,0x74,0x70,0x5c,0x3a,0x2f,0x2f,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x20,0x66,0x72,0x6f,0x6d,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x69,0x65,0x64,0x20,0x61,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x2f,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x22,0x3e,0x2f,0x2f,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x3c,0x2f,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x30,0x5d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x69,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x5f,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x6e,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6c,0x6e,0x20,0x3c,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6c,0x6e,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x6c,0x6e,0x5d,0x2e,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x6c,0x6e,0x5d,0x2e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x69,0x65,0x72,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x73,0x65,0x6e,0x64,0x20,0x72,0x61,0x77,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x22,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x22,0x2c,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x75,0x72,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x20,0x53,0x6f,0x20,0x77,0x65,0x20,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x20,0x69,0x6e,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x63,0x61,0x73,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x69,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x77,0x61,0x72,0x64,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x6c,0x6e,0x5d,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x22,0x20,0x2b,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x68,0x74,0x74,0x70,0x3a,0x5c,0x2f,0x5c,0x2f,0x2f,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x6c,0x6e,0x5d,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x20,0x26,0x26,0x20,0x21,0x2f,0x5e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x20,0x2b,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x2f,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x6c,0x6e,0x5d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x68,0x72,0x65,0x66,0x22,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x75,0x72,0x6c,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x2d,0x2d,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x5b,0x6c,0x6e,0x5d,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x20,0x3c,0x20,0x74,0x65,0x78,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x61,0x72,0x72,0x61,0x79,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x73,0x20,0x31,0x2f,0x32,0x2c,0x20,0x31,0x2f,0x34,0x2c,0x20,0x33,0x2f,0x34,0x20,0x2d,0x3e,0x20,0xc2,0xbd,0x2c,0x20,0xc2,0xbc,0x2c,0x20,0xc2,0xbe,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x32,0x20,0x78,0x20,0x34,0x20,0x2d,0x3e,0x20,0x32,0x20,0xc3,0x97,0x20,0x34,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x52,0x41,0x52,0x45,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x2b,0x2d,0x7c,0x5c,0x2e,0x5c,0x2e,0x7c,0x5c,0x3f,0x5c,0x3f,0x5c,0x3f,0x5c,0x3f,0x7c,0x21,0x21,0x21,0x21,0x7c,0x2c,0x2c,0x7c,0x2d,0x2d,0x2f,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x57,0x6f,0x72,0x6b,0x61,0x72,0x6f,0x75,0x6e,0x64,0x20,0x66,0x6f,0x72,0x20,0x70,0x68,0x61,0x6e,0x74,0x6f,0x6d,0x6a,0x73,0x20,0x2d,0x20,0x6e,0x65,0x65,0x64,0x20,0x72,0x65,0x67,0x65,0x78,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x2f,0x67,0x20,0x66,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x72,0x20,0x72,0x6f,0x6f,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x77,0x69,0x6c,0x6c,0x20,0x66,0x61,0x69,0x6c,0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x74,0x69,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x53,0x43,0x4f,0x50,0x45,0x44,0x5f,0x41,0x42,0x42,0x52,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x28,0x28,0x63,0x7c,0x74,0x6d,0x7c,0x72,0x29,0x5c,0x29,0x2f,0x69,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x53,0x43,0x4f,0x50,0x45,0x44,0x5f,0x41,0x42,0x42,0x52,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x28,0x28,0x63,0x7c,0x74,0x6d,0x7c,0x72,0x29,0x5c,0x29,0x2f,0x67,0x69,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x53,0x43,0x4f,0x50,0x45,0x44,0x5f,0x41,0x42,0x42,0x52,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x3a,0x20,0x22,0x5c,0x78,0x61,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x3a,0x20,0x22,0x5c,0x78,0x61,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6d,0x3a,0x20,0x22,0x5c,0x75,0x32,0x31,0x32,0x32,0x22,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x6e,0x28,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x43,0x4f,0x50,0x45,0x44,0x5f,0x41,0x42,0x42,0x52,0x5b,0x6e,0x61,0x6d,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x5f,0x73,0x63,0x6f,0x70,0x65,0x64,0x28,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x26,0x26,0x20,0x21,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x53,0x43,0x4f,0x50,0x45,0x44,0x5f,0x41,0x42,0x42,0x52,0x5f,0x52,0x45,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x5f,0x72,0x61,0x72,0x65,0x28,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x26,0x26,0x20,0x21,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x52,0x41,0x52,0x45,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x2b,0x2d,0x2f,0x67,0x2c,0x20,0x22,0x5c,0x78,0x62,0x31,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x2e,0x7b,0x32,0x2c,0x7d,0x2f,0x67,0x2c,0x20,0x22,0x5c,0x75,0x32,0x30,0x32,0x36,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5b,0x3f,0x21,0x5d,0x29,0x5c,0x75,0x32,0x30,0x32,0x36,0x2f,0x67,0x2c,0x20,0x22,0x24,0x31,0x2e,0x2e,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5b,0x3f,0x21,0x5d,0x29,0x7b,0x34,0x2c,0x7d,0x2f,0x67,0x2c,0x20,0x22,0x24,0x31,0x24,0x31,0x24,0x31,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x2c,0x7b,0x32,0x2c,0x7d,0x2f,0x67,0x2c,0x20,0x22,0x2c,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5e,0x7c,0x5b,0x5e,0x2d,0x5d,0x29,0x2d,0x2d,0x2d,0x28,0x3f,0x3d,0x5b,0x5e,0x2d,0x5d,0x7c,0x24,0x29,0x2f,0x67,0x6d,0x2c,0x20,0x22,0x24,0x31,0x5c,0x75,0x32,0x30,0x31,0x34,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5e,0x7c,0x5c,0x73,0x29,0x2d,0x2d,0x28,0x3f,0x3d,0x5c,0x73,0x7c,0x24,0x29,0x2f,0x67,0x6d,0x2c,0x20,0x22,0x24,0x31,0x5c,0x75,0x32,0x30,0x31,0x33,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5e,0x7c,0x5b,0x5e,0x2d,0x5c,0x73,0x5d,0x29,0x2d,0x2d,0x28,0x3f,0x3d,0x5b,0x5e,0x2d,0x5c,0x73,0x5d,0x7c,0x24,0x29,0x2f,0x67,0x6d,0x2c,0x20,0x22,0x24,0x31,0x5c,0x75,0x32,0x30,0x31,0x33,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x5f,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x6b,0x49,0x64,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x62,0x6c,0x6b,0x49,0x64,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x62,0x6c,0x6b,0x49,0x64,0x78,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x62,0x6c,0x6b,0x49,0x64,0x78,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x53,0x43,0x4f,0x50,0x45,0x44,0x5f,0x41,0x42,0x42,0x52,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x5f,0x73,0x63,0x6f,0x70,0x65,0x64,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x52,0x41,0x52,0x45,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x5f,0x72,0x61,0x72,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x51,0x55,0x4f,0x54,0x45,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x27,0x22,0x5d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x51,0x55,0x4f,0x54,0x45,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x27,0x22,0x5d,0x2f,0x67,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x41,0x50,0x4f,0x53,0x54,0x52,0x4f,0x50,0x48,0x45,0x20,0x3d,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x3b,0x0a,0x20,0x2f,0x2a,0x20,0xe2,0x80,0x99,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x73,0x74,0x72,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x2b,0x20,0x63,0x68,0x20,0x2b,0x20,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x74,0x65,0x78,0x74,0x2c,0x20,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x74,0x68,0x69,0x73,0x4c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x69,0x74,0x65,0x6d,0x2c,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x2c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x2c,0x20,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x2c,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x2c,0x20,0x6a,0x2c,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x2c,0x20,0x73,0x74,0x61,0x63,0x6b,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x51,0x75,0x6f,0x74,0x65,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x51,0x75,0x6f,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x6a,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x6a,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3c,0x3d,0x20,0x74,0x68,0x69,0x73,0x4c,0x65,0x76,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6a,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x6e,0x6f,0x2d,0x6c,0x61,0x62,0x65,0x6c,0x73,0x3a,0x30,0x2c,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x63,0x6f,0x70,0x65,0x64,0x2d,0x76,0x61,0x72,0x3a,0x30,0x2a,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x55,0x54,0x45,0x52,0x3a,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x51,0x55,0x4f,0x54,0x45,0x5f,0x52,0x45,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x20,0x3d,0x20,0x51,0x55,0x4f,0x54,0x45,0x5f,0x52,0x45,0x2e,0x65,0x78,0x65,0x63,0x28,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x3d,0x20,0x74,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x27,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x64,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x6f,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x31,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x69,0x20,0x2d,0x20,0x31,0x3b,0x20,0x6a,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6f,0x66,0x74,0x62,0x72,0x65,0x61,0x6b,0x22,0x20,0x7c,0x7c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x68,0x61,0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0x22,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x20,0x30,0x78,0x32,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x73,0x6b,0x69,0x70,0x20,0x61,0x6c,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x27,0x74,0x65,0x78,0x74,0x27,0x2c,0x20,0x27,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x27,0x20,0x6f,0x72,0x20,0x27,0x63,0x6f,0x64,0x65,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x64,0x20,0x6e,0x65,0x78,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x6f,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x69,0x20,0x2b,0x20,0x31,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6f,0x66,0x74,0x62,0x72,0x65,0x61,0x6b,0x22,0x20,0x7c,0x7c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x68,0x61,0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0x22,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x20,0x30,0x78,0x32,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x73,0x6b,0x69,0x70,0x20,0x61,0x6c,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x27,0x74,0x65,0x78,0x74,0x27,0x2c,0x20,0x27,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x27,0x20,0x6f,0x72,0x20,0x27,0x63,0x6f,0x64,0x65,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x24,0x31,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x24,0x31,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x24,0x31,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x24,0x31,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x34,0x20,0x2f,0x2a,0x20,0x22,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x74,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x22,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x3e,0x3d,0x20,0x34,0x38,0x20,0x2f,0x2a,0x20,0x30,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x3c,0x3d,0x20,0x35,0x37,0x20,0x2f,0x2a,0x20,0x39,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x63,0x61,0x73,0x65,0x3a,0x20,0x31,0x22,0x22,0x20,0x2d,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x61,0x73,0x20,0x61,0x6e,0x20,0x69,0x6e,0x63,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x26,0x26,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x20,0x6f,0x66,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2c,0x20,0x62,0x75,0x74,0x20,0x6e,0x6f,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x77,0x6f,0x72,0x64,0x73,0x2c,0x20,0x69,0x2e,0x65,0x2e,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x2e,0x20,0x66,0x6f,0x6f,0x20,0x22,0x20,0x62,0x61,0x72,0x20,0x22,0x20,0x62,0x61,0x7a,0x20,0x2d,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x32,0x2e,0x20,0x66,0x6f,0x6f,0x2d,0x22,0x2d,0x62,0x61,0x72,0x2d,0x22,0x2d,0x62,0x61,0x7a,0x20,0x2d,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x33,0x2e,0x20,0x66,0x6f,0x6f,0x22,0x62,0x61,0x72,0x22,0x62,0x61,0x7a,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x20,0x26,0x26,0x20,0x21,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x20,0x6f,0x66,0x20,0x77,0x6f,0x72,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x41,0x50,0x4f,0x53,0x54,0x52,0x4f,0x50,0x48,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x71,0x75,0x6f,0x74,0x65,0x2c,0x20,0x72,0x65,0x77,0x69,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x63,0x6b,0x20,0x74,0x6f,0x20,0x67,0x65,0x74,0x20,0x61,0x20,0x6d,0x61,0x74,0x63,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x6a,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x74,0x65,0x6d,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x6a,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x4c,0x65,0x76,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x74,0x65,0x6d,0x2e,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x6a,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x4c,0x65,0x76,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x74,0x65,0x6d,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x51,0x75,0x6f,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x51,0x75,0x6f,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x5b,0x33,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x51,0x75,0x6f,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x51,0x75,0x6f,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x74,0x65,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x2c,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x79,0x20,0x61,0x72,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x69,0x6e,0x67,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x6d,0x65,0x73,0x73,0x20,0x75,0x70,0x20,0x69,0x6e,0x64,0x69,0x63,0x65,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x51,0x75,0x6f,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x74,0x65,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x74,0x65,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x69,0x74,0x65,0x6d,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x51,0x75,0x6f,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x51,0x75,0x6f,0x74,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x74,0x65,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x51,0x75,0x6f,0x74,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x20,0x4f,0x55,0x54,0x45,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x4f,0x70,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3a,0x20,0x69,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x3a,0x20,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x3a,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x3a,0x20,0x74,0x68,0x69,0x73,0x4c,0x65,0x76,0x65,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x41,0x74,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x41,0x50,0x4f,0x53,0x54,0x52,0x4f,0x50,0x48,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x6d,0x61,0x78,0x2d,0x64,0x65,0x70,0x74,0x68,0x3a,0x30,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x6b,0x49,0x64,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x62,0x6c,0x6b,0x49,0x64,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x62,0x6c,0x6b,0x49,0x64,0x78,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x62,0x6c,0x6b,0x49,0x64,0x78,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x20,0x7c,0x7c,0x20,0x21,0x51,0x55,0x4f,0x54,0x45,0x5f,0x54,0x45,0x53,0x54,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x62,0x6c,0x6b,0x49,0x64,0x78,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4a,0x6f,0x69,0x6e,0x20,0x72,0x61,0x77,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6a,0x2c,0x20,0x6c,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x63,0x75,0x72,0x72,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x6c,0x61,0x73,0x74,0x2c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x75,0x72,0x72,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x75,0x72,0x72,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x5f,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x75,0x72,0x72,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x75,0x72,0x72,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x74,0x77,0x6f,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x20,0x74,0x65,0x78,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x61,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6c,0x61,0x73,0x74,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x61,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x61,0x6e,0x64,0x20,0x66,0x69,0x6c,0x6c,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x74,0x79,0x70,0x65,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x79,0x70,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x65,0x2e,0x67,0x2e,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x29,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x74,0x61,0x67,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x68,0x74,0x6d,0x6c,0x20,0x74,0x61,0x67,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x65,0x2e,0x67,0x2e,0x20,0x22,0x70,0x22,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x61,0x67,0x20,0x3d,0x20,0x74,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x61,0x74,0x74,0x72,0x73,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x48,0x74,0x6d,0x6c,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x2e,0x20,0x46,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x60,0x5b,0x20,0x5b,0x20,0x6e,0x61,0x6d,0x65,0x31,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x31,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x6e,0x61,0x6d,0x65,0x32,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x32,0x20,0x5d,0x20,0x5d,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x6d,0x61,0x70,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x6d,0x61,0x70,0x20,0x69,0x6e,0x66,0x6f,0x2e,0x20,0x46,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x60,0x5b,0x20,0x6c,0x69,0x6e,0x65,0x5f,0x62,0x65,0x67,0x69,0x6e,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x5f,0x65,0x6e,0x64,0x20,0x5d,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x2d,0x3e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4c,0x65,0x76,0x65,0x6c,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x28,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x69,0x6e,0x20,0x7b,0x2d,0x31,0x2c,0x20,0x30,0x2c,0x20,0x31,0x7d,0x20,0x73,0x65,0x74,0x29,0x2c,0x20,0x77,0x68,0x65,0x72,0x65,0x3a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x20,0x60,0x31,0x60,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x67,0x20,0x69,0x73,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x20,0x60,0x30,0x60,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x67,0x20,0x69,0x73,0x20,0x73,0x65,0x6c,0x66,0x2d,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x60,0x2d,0x31,0x60,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x67,0x20,0x69,0x73,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x6c,0x65,0x76,0x65,0x6c,0x20,0x2d,0x3e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x73,0x20,0x60,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x41,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6e,0x6f,0x64,0x65,0x73,0x20,0x28,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x61,0x6e,0x64,0x20,0x69,0x6d,0x67,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x49,0x6e,0x20,0x61,0x20,0x63,0x61,0x73,0x65,0x20,0x6f,0x66,0x20,0x73,0x65,0x6c,0x66,0x2d,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x20,0x28,0x63,0x6f,0x64,0x65,0x2c,0x20,0x68,0x74,0x6d,0x6c,0x2c,0x20,0x66,0x65,0x6e,0x63,0x65,0x2c,0x20,0x65,0x74,0x63,0x2e,0x29,0x2c,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x69,0x74,0x20,0x68,0x61,0x73,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x74,0x61,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x27,0x2a,0x27,0x20,0x6f,0x72,0x20,0x27,0x5f,0x27,0x20,0x66,0x6f,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2c,0x20,0x66,0x65,0x6e,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x2c,0x20,0x65,0x74,0x63,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x69,0x6e,0x66,0x6f,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x41,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x49,0x6e,0x66,0x6f,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x22,0x66,0x65,0x6e,0x63,0x65,0x22,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x54,0x68,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x20,0x66,0x6f,0x72,0x20,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x20,0x61,0x6e,0x64,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x54,0x68,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x69,0x74,0x65,0x6d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x2d,0x6c,0x69,0x73,0x74,0x20,0x22,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,0x6d,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x6d,0x65,0x74,0x61,0x20,0x2d,0x3e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x41,0x20,0x70,0x6c,0x61,0x63,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x20,0x74,0x6f,0x20,0x73,0x74,0x6f,0x72,0x65,0x20,0x61,0x6e,0x20,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x20,0x64,0x61,0x74,0x61,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x2d,0x3e,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x72,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x6c,0x65,0x76,0x65,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x66,0x6f,0x72,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x55,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x20,0x6c,0x69,0x6e,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x23,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x2d,0x3e,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x49,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2e,0x20,0x55,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x69,0x67,0x68,0x74,0x20,0x6c,0x69,0x73,0x74,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x74,0x6f,0x20,0x68,0x69,0x64,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x2d,0x3e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x62,0x79,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6c,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x50,0x75,0x73,0x68,0x28,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x64,0x64,0x20,0x60,0x5b,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x5d,0x60,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x74,0x6f,0x20,0x6c,0x69,0x73,0x74,0x2e,0x20,0x49,0x6e,0x69,0x74,0x20,0x61,0x74,0x74,0x72,0x73,0x20,0x69,0x66,0x20,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x74,0x74,0x72,0x50,0x75,0x73,0x68,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x72,0x50,0x75,0x73,0x68,0x28,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x53,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x74,0x20,0x60,0x6e,0x61,0x6d,0x65,0x60,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x74,0x6f,0x20,0x60,0x76,0x61,0x6c,0x75,0x65,0x60,0x2e,0x20,0x4f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x6f,0x6c,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x66,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x74,0x74,0x72,0x53,0x65,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x72,0x53,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x6e,0x61,0x6d,0x65,0x29,0x2c,0x20,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x20,0x3d,0x20,0x5b,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x50,0x75,0x73,0x68,0x28,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x64,0x78,0x5d,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x44,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x47,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x47,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x66,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x60,0x6e,0x61,0x6d,0x65,0x60,0x2c,0x20,0x6f,0x72,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x74,0x74,0x72,0x47,0x65,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x72,0x47,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x6e,0x61,0x6d,0x65,0x29,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x78,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x64,0x78,0x5d,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x4a,0x6f,0x69,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4a,0x6f,0x69,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x74,0x6f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x76,0x69,0x61,0x20,0x73,0x70,0x61,0x63,0x65,0x2e,0x20,0x4f,0x72,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x6e,0x65,0x77,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x69,0x66,0x20,0x6e,0x6f,0x74,0x0a,0x09,0x20,0x2a,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2e,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x20,0x74,0x6f,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x74,0x74,0x72,0x4a,0x6f,0x69,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x72,0x4a,0x6f,0x69,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x64,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x49,0x6e,0x64,0x65,0x78,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x50,0x75,0x73,0x68,0x28,0x5b,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x64,0x78,0x5d,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x73,0x5b,0x69,0x64,0x78,0x5d,0x5b,0x31,0x5d,0x20,0x2b,0x20,0x22,0x20,0x22,0x20,0x2b,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x74,0x61,0x74,0x65,0x43,0x6f,0x72,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x73,0x72,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x76,0x20,0x3d,0x20,0x65,0x6e,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x64,0x20,0x3d,0x20,0x6d,0x64,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x74,0x6f,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x2d,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x69,0x6e,0x20,0x63,0x6f,0x72,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x43,0x6f,0x72,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x5f,0x63,0x6f,0x72,0x65,0x20,0x3d,0x20,0x53,0x74,0x61,0x74,0x65,0x43,0x6f,0x72,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x32,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x22,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x22,0x2c,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x24,0x31,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x22,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x22,0x2c,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x5d,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x60,0x20,0x66,0x69,0x6e,0x64,0x73,0x20,0x60,0x74,0x65,0x78,0x74,0x5f,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x60,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x28,0x66,0x6f,0x72,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x29,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x6a,0x6f,0x69,0x6e,0x73,0x20,0x74,0x68,0x65,0x6d,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x5b,0x20,0x22,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x22,0x2c,0x20,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x43,0x6f,0x72,0x65,0x28,0x29,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x6f,0x72,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x43,0x6f,0x72,0x65,0x23,0x72,0x75,0x6c,0x65,0x72,0x20,0x2d,0x3e,0x20,0x52,0x75,0x6c,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x5d,0x5d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x20,0x4b,0x65,0x65,0x70,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x63,0x6f,0x72,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x32,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x32,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x72,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x45,0x78,0x65,0x63,0x75,0x74,0x65,0x73,0x20,0x63,0x6f,0x72,0x65,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x43,0x6f,0x72,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x43,0x6f,0x72,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x5f,0x63,0x6f,0x72,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x5f,0x63,0x6f,0x72,0x65,0x20,0x3d,0x20,0x43,0x6f,0x72,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x61,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x70,0x6c,0x69,0x74,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x63,0x68,0x2c,0x20,0x69,0x73,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x20,0x3d,0x20,0x30,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x34,0x20,0x2f,0x2a,0x20,0x7c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x69,0x70,0x65,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x63,0x65,0x6c,0x6c,0x73,0x2c,0x20,0x27,0x7c,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x2b,0x20,0x73,0x74,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x2c,0x20,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x70,0x69,0x70,0x65,0x2c,0x20,0x27,0x5c,0x7c,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x73,0x74,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x2c,0x20,0x70,0x6f,0x73,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x3d,0x20,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x2b,0x20,0x73,0x74,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x61,0x73,0x74,0x50,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x61,0x62,0x6c,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x2c,0x20,0x74,0x2c,0x20,0x74,0x61,0x62,0x6c,0x65,0x4c,0x69,0x6e,0x65,0x73,0x2c,0x20,0x74,0x62,0x6f,0x64,0x79,0x4c,0x69,0x6e,0x65,0x73,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2c,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x2c,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x74,0x77,0x6f,0x20,0x6c,0x69,0x6e,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x32,0x20,0x3e,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x6c,0x69,0x6e,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x27,0x7c,0x27,0x2c,0x20,0x27,0x2d,0x27,0x2c,0x20,0x27,0x3a,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x6e,0x6f,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x61,0x72,0x65,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x62,0x75,0x74,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x61,0x73,0x69,0x63,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x2f,0x5e,0x5b,0x2d,0x3a,0x7c,0x5d,0x5b,0x2d,0x3a,0x7c,0x5c,0x73,0x5d,0x2a,0x24,0x2f,0x20,0x72,0x65,0x67,0x65,0x78,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x34,0x20,0x2f,0x2a,0x20,0x7c,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x20,0x21,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x20,0x21,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x34,0x20,0x2f,0x2a,0x20,0x7c,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x20,0x21,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x20,0x21,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x61,0x28,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x69,0x73,0x20,0x27,0x2d,0x27,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x6d,0x75,0x73,0x74,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x61,0x6d,0x62,0x69,0x67,0x75,0x69,0x74,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6c,0x69,0x73,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x61,0x28,0x73,0x65,0x63,0x6f,0x6e,0x64,0x43,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x34,0x20,0x2f,0x2a,0x20,0x7c,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x61,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x7c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x61,0x6e,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x2c,0x20,0x62,0x75,0x74,0x20,0x6e,0x6f,0x74,0x20,0x69,0x6e,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x2e,0x67,0x2e,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x60,0x20,0x7c,0x2d,0x2d,0x2d,0x7c,0x20,0x60,0x2c,0x20,0x64,0x69,0x73,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x60,0x20,0x2d,0x2d,0x2d,0x7c,0x7c,0x2d,0x2d,0x2d,0x20,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2f,0x5e,0x3a,0x3f,0x2d,0x2b,0x3a,0x3f,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x20,0x3f,0x20,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x20,0x3a,0x20,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x65,0x66,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x7c,0x22,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x3d,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x70,0x6c,0x69,0x74,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x72,0x6f,0x77,0x20,0x77,0x69,0x6c,0x6c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x61,0x6e,0x20,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x6f,0x66,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x74,0x69,0x72,0x65,0x20,0x74,0x61,0x62,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x61,0x6c,0x69,0x67,0x6e,0x20,0x72,0x6f,0x77,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x28,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x72,0x6f,0x77,0x73,0x20,0x63,0x61,0x6e,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x27,0x20,0x6c,0x69,0x73,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x27,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x6d,0x6f,0x73,0x74,0x20,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x20,0x74,0x6f,0x20,0x74,0x61,0x62,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x61,0x62,0x6c,0x65,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x74,0x61,0x62,0x6c,0x65,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x30,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x68,0x65,0x61,0x64,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x68,0x65,0x61,0x64,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x72,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x72,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x68,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x68,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x69,0x67,0x6e,0x73,0x5b,0x69,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x20,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x22,0x20,0x2b,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x5b,0x69,0x5d,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x68,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x68,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x72,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x72,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x68,0x65,0x61,0x64,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x68,0x65,0x61,0x64,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x32,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x3d,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x70,0x6c,0x69,0x74,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x62,0x6f,0x64,0x79,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x62,0x6f,0x64,0x79,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x74,0x62,0x6f,0x64,0x79,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x32,0x2c,0x20,0x30,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x72,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x72,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x64,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x74,0x64,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x69,0x67,0x6e,0x73,0x5b,0x69,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x20,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x22,0x20,0x2b,0x20,0x61,0x6c,0x69,0x67,0x6e,0x73,0x5b,0x69,0x5d,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x69,0x5d,0x20,0x3f,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x64,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x64,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x72,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x72,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x62,0x6f,0x64,0x79,0x4c,0x69,0x6e,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x62,0x6f,0x64,0x79,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x62,0x6f,0x64,0x79,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x62,0x6f,0x64,0x79,0x4c,0x69,0x6e,0x65,0x73,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x61,0x62,0x6c,0x65,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x4c,0x69,0x6e,0x65,0x73,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x28,0x34,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x70,0x61,0x64,0x64,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x64,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x2f,0x2a,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6c,0x61,0x73,0x74,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3c,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x63,0x6f,0x64,0x65,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x63,0x6f,0x64,0x65,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6c,0x61,0x73,0x74,0x2c,0x20,0x34,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x2b,0x20,0x22,0x5c,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x66,0x65,0x6e,0x63,0x65,0x73,0x20,0x28,0x60,0x60,0x60,0x20,0x6c,0x61,0x6e,0x67,0x2c,0x20,0x7e,0x7e,0x7e,0x20,0x6c,0x61,0x6e,0x67,0x29,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x65,0x6e,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x6c,0x65,0x6e,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6d,0x65,0x6d,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x75,0x70,0x2c,0x20,0x68,0x61,0x76,0x65,0x45,0x6e,0x64,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x33,0x20,0x3e,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x36,0x20,0x2f,0x2a,0x20,0x7e,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x63,0x61,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x6d,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2d,0x20,0x6d,0x65,0x6d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x20,0x3c,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6d,0x65,0x6d,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x29,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6e,0x63,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x69,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2c,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x72,0x65,0x70,0x6f,0x72,0x74,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x68,0x65,0x72,0x65,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x3b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3e,0x3d,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x75,0x74,0x6f,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x73,0x6f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x73,0x65,0x65,0x6d,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x75,0x74,0x6f,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6d,0x65,0x6d,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x73,0x74,0x6f,0x70,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x73,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x74,0x65,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x66,0x65,0x6e,0x63,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6c,0x65,0x73,0x73,0x20,0x74,0x68,0x61,0x6e,0x20,0x34,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x63,0x6f,0x64,0x65,0x20,0x66,0x65,0x6e,0x63,0x65,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x61,0x73,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x6d,0x65,0x6d,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x61,0x69,0x6c,0x20,0x68,0x61,0x73,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x76,0x65,0x45,0x6e,0x64,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x75,0x6e,0x64,0x21,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x61,0x20,0x66,0x65,0x6e,0x63,0x65,0x20,0x68,0x61,0x73,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x74,0x68,0x65,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x69,0x74,0x73,0x20,0x69,0x6e,0x6e,0x65,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x28,0x68,0x61,0x76,0x65,0x45,0x6e,0x64,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x66,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x63,0x6f,0x64,0x65,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6c,0x65,0x6e,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x75,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x39,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x64,0x6a,0x75,0x73,0x74,0x54,0x61,0x62,0x2c,0x20,0x63,0x68,0x2c,0x20,0x69,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2c,0x20,0x6c,0x2c,0x20,0x6c,0x61,0x73,0x74,0x4c,0x69,0x6e,0x65,0x45,0x6d,0x70,0x74,0x79,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x42,0x4d,0x61,0x72,0x6b,0x73,0x2c,0x20,0x6f,0x6c,0x64,0x42,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x2c,0x20,0x73,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x69,0x73,0x4f,0x75,0x74,0x64,0x65,0x6e,0x74,0x65,0x64,0x2c,0x20,0x6f,0x6c,0x64,0x4c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x36,0x32,0x20,0x2f,0x2a,0x20,0x3e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x20,0x6b,0x6e,0x6f,0x77,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x27,0x73,0x20,0x67,0x6f,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x6e,0x6f,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x74,0x72,0x79,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x66,0x69,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x69,0x74,0x20,0x69,0x6e,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x20,0x6d,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x4d,0x61,0x72,0x6b,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x53,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x65,0x6e,0x64,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x31,0x2e,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x20,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x3e,0x20,0x74,0x65,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x32,0x2e,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x3e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x33,0x2e,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x74,0x61,0x67,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x3e,0x20,0x74,0x65,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x2d,0x20,0x2d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x6f,0x75,0x74,0x64,0x65,0x6e,0x74,0x65,0x64,0x2c,0x20,0x69,0x2e,0x65,0x2e,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x20,0x61,0x6e,0x64,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x65,0x73,0x73,0x20,0x74,0x68,0x61,0x6e,0x20,0x73,0x61,0x69,0x64,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x2e,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x3e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x32,0x2e,0x20,0x63,0x68,0x65,0x63,0x6b,0x69,0x6e,0x67,0x20,0x74,0x68,0x69,0x73,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4f,0x75,0x74,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x73,0x65,0x20,0x31,0x3a,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2c,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x2f,0x2a,0x20,0x3e,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4f,0x75,0x74,0x64,0x65,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x73,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x70,0x61,0x73,0x74,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x22,0x3e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6b,0x69,0x70,0x20,0x6f,0x6e,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x27,0x3e,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x20,0x2f,0x2a,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x20,0x3e,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x20,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x5e,0x20,0x2d,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x6c,0x69,0x6e,0x65,0x20,0x68,0x65,0x72,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x6a,0x75,0x73,0x74,0x54,0x61,0x62,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x20,0x2f,0x2a,0x20,0x74,0x61,0x62,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x29,0x20,0x25,0x20,0x34,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x20,0x20,0x3e,0x5c,0x74,0x20,0x20,0x74,0x65,0x73,0x74,0x20,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x20,0x2d,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x6c,0x69,0x6e,0x65,0x20,0x68,0x65,0x72,0x65,0x20,0x28,0x74,0x61,0x62,0x20,0x68,0x61,0x73,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x6a,0x75,0x73,0x74,0x54,0x61,0x62,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x20,0x3e,0x5c,0x74,0x20,0x20,0x74,0x65,0x73,0x74,0x20,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x5e,0x20,0x2d,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x6c,0x69,0x6e,0x65,0x20,0x68,0x65,0x72,0x65,0x20,0x2b,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x73,0x6c,0x69,0x67,0x68,0x74,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x65,0x78,0x74,0x72,0x61,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x6a,0x75,0x73,0x74,0x54,0x61,0x62,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x39,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x3d,0x20,0x34,0x20,0x2d,0x20,0x28,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x28,0x61,0x64,0x6a,0x75,0x73,0x74,0x54,0x61,0x62,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x30,0x29,0x29,0x20,0x25,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x4c,0x69,0x6e,0x65,0x45,0x6d,0x70,0x74,0x79,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x31,0x20,0x2b,0x20,0x28,0x73,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x73,0x65,0x20,0x32,0x3a,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2c,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x77,0x61,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x73,0x74,0x4c,0x69,0x6e,0x65,0x45,0x6d,0x70,0x74,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x73,0x65,0x20,0x33,0x3a,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x74,0x61,0x67,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x51,0x75,0x69,0x72,0x6b,0x20,0x74,0x6f,0x20,0x65,0x6e,0x66,0x6f,0x72,0x63,0x65,0x20,0x22,0x68,0x61,0x72,0x64,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x22,0x20,0x66,0x6f,0x72,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x6c,0x79,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6c,0x6c,0x20,0x60,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6c,0x6f,0x6f,0x6b,0x20,0x62,0x65,0x6c,0x6f,0x77,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x69,0x66,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x20,0x69,0x73,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x74,0x61,0x67,0x2c,0x20,0x74,0x68,0x65,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x6e,0x2d,0x7a,0x65,0x72,0x6f,0x2c,0x20,0x77,0x65,0x20,0x6e,0x6f,0x77,0x20,0x73,0x65,0x74,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x7a,0x65,0x72,0x6f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x2d,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x20,0x61,0x6c,0x6c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x20,0x74,0x6f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x20,0x61,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x77,0x61,0x73,0x6e,0x27,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x42,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x20,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x30,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x4c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x74,0x6f,0x72,0x65,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x74,0x53,0x68,0x69,0x66,0x74,0x3b,0x20,0x74,0x68,0x69,0x73,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x68,0x65,0x72,0x65,0x2c,0x20,0x62,0x75,0x74,0x20,0x6a,0x75,0x73,0x74,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x64,0x6f,0x20,0x74,0x68,0x61,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x69,0x20,0x2b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x42,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x69,0x20,0x2b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x69,0x20,0x2b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x69,0x20,0x2b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x42,0x53,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x38,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x72,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x63,0x6e,0x74,0x2c,0x20,0x63,0x68,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x68,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x32,0x20,0x2f,0x2a,0x20,0x2a,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x39,0x35,0x20,0x2f,0x2a,0x20,0x5f,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x6d,0x69,0x78,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x33,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6e,0x74,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x38,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6e,0x74,0x20,0x3c,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x72,0x22,0x2c,0x20,0x22,0x68,0x72,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x6e,0x74,0x20,0x2b,0x20,0x31,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x37,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x20,0x60,0x5b,0x2d,0x2b,0x2a,0x5d,0x5b,0x5c,0x6e,0x20,0x5d,0x60,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x6e,0x65,0x78,0x74,0x20,0x70,0x6f,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x72,0x20,0x2d,0x31,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x2e,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x42,0x75,0x6c,0x6c,0x65,0x74,0x4c,0x69,0x73,0x74,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x62,0x75,0x6c,0x6c,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x32,0x20,0x2f,0x2a,0x20,0x2a,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x33,0x20,0x2f,0x2a,0x20,0x2b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x37,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x22,0x20,0x2d,0x74,0x65,0x73,0x74,0x20,0x22,0x20,0x2d,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x20,0x60,0x5c,0x64,0x2b,0x5b,0x2e,0x29,0x5d,0x5b,0x5c,0x6e,0x20,0x5d,0x60,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x6e,0x65,0x78,0x74,0x20,0x70,0x6f,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x72,0x20,0x2d,0x31,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x2e,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x4c,0x69,0x73,0x74,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x32,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x28,0x64,0x69,0x67,0x69,0x74,0x20,0x2b,0x20,0x64,0x6f,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3c,0x20,0x34,0x38,0x20,0x2f,0x2a,0x20,0x30,0x20,0x2a,0x2f,0x20,0x7c,0x7c,0x20,0x63,0x68,0x20,0x3e,0x20,0x35,0x37,0x20,0x2f,0x2a,0x20,0x39,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x3b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x4f,0x4c,0x20,0x2d,0x3e,0x20,0x66,0x61,0x69,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3e,0x3d,0x20,0x34,0x38,0x20,0x2f,0x2a,0x20,0x30,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x63,0x68,0x20,0x3c,0x3d,0x20,0x35,0x37,0x20,0x2f,0x2a,0x20,0x39,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x68,0x61,0x76,0x65,0x20,0x6e,0x6f,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x39,0x20,0x64,0x69,0x67,0x69,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x20,0x69,0x6e,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3e,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x31,0x20,0x2f,0x2a,0x20,0x29,0x20,0x2a,0x2f,0x20,0x7c,0x7c,0x20,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x36,0x20,0x2f,0x2a,0x20,0x2e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x37,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x22,0x20,0x31,0x2e,0x74,0x65,0x73,0x74,0x20,0x22,0x20,0x2d,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x54,0x69,0x67,0x68,0x74,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x69,0x64,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x2b,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x69,0x64,0x78,0x20,0x2b,0x20,0x32,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x32,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x20,0x2b,0x20,0x32,0x5d,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x2b,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x69,0x73,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x69,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2c,0x20,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x2c,0x20,0x69,0x74,0x65,0x6d,0x4c,0x69,0x6e,0x65,0x73,0x2c,0x20,0x6c,0x2c,0x20,0x6c,0x69,0x73,0x74,0x4c,0x69,0x6e,0x65,0x73,0x2c,0x20,0x6c,0x69,0x73,0x74,0x54,0x6f,0x6b,0x49,0x64,0x78,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x4c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x54,0x69,0x67,0x68,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x70,0x74,0x79,0x45,0x6e,0x64,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x69,0x73,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6e,0x67,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x63,0x61,0x73,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x69,0x74,0x65,0x6d,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x2d,0x20,0x69,0x74,0x65,0x6d,0x20,0x32,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x2d,0x20,0x69,0x74,0x65,0x6d,0x20,0x33,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x69,0x74,0x65,0x6d,0x20,0x34,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x74,0x68,0x69,0x73,0x20,0x6f,0x6e,0x65,0x20,0x69,0x73,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6d,0x69,0x74,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x6c,0x69,0x73,0x74,0x20,0x63,0x61,0x6e,0x20,0x69,0x6e,0x74,0x65,0x72,0x72,0x75,0x70,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x28,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x65,0x78,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x6f,0x64,0x65,0x20,0x63,0x61,0x6e,0x20,0x66,0x61,0x69,0x6c,0x20,0x69,0x66,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x20,0x75,0x73,0x65,0x20,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x61,0x73,0x20,0x77,0x65,0x6c,0x6c,0x20,0x61,0x73,0x20,0x6c,0x69,0x73,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x49,0x20,0x68,0x6f,0x70,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x70,0x65,0x63,0x20,0x67,0x65,0x74,0x73,0x20,0x66,0x69,0x78,0x65,0x64,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6e,0x67,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x74,0x65,0x63,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x61,0x6e,0x64,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x6b,0x69,0x70,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x4c,0x69,0x73,0x74,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x29,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x2d,0x20,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x27,0x72,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x61,0x20,0x6e,0x65,0x77,0x20,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x6c,0x69,0x73,0x74,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x31,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6e,0x67,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x6b,0x69,0x70,0x42,0x75,0x6c,0x6c,0x65,0x74,0x4c,0x69,0x73,0x74,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x29,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x27,0x72,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x61,0x20,0x6e,0x65,0x77,0x20,0x75,0x6e,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x6c,0x69,0x73,0x74,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x2c,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6e,0x67,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x29,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x2e,0x20,0x52,0x65,0x6d,0x65,0x6d,0x62,0x65,0x72,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6f,0x6e,0x65,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x72,0x74,0x20,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x54,0x6f,0x6b,0x49,0x64,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x5f,0x6c,0x69,0x73,0x74,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x6f,0x6c,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x62,0x75,0x6c,0x6c,0x65,0x74,0x5f,0x6c,0x69,0x73,0x74,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x75,0x6c,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x6c,0x69,0x73,0x74,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x5b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x30,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x74,0x65,0x72,0x61,0x74,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x73,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x70,0x74,0x79,0x45,0x6e,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x6c,0x69,0x73,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x20,0x3d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x2d,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x3d,0x20,0x34,0x20,0x2d,0x20,0x28,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x25,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x69,0x6d,0x6d,0x69,0x6e,0x67,0x20,0x73,0x70,0x61,0x63,0x65,0x20,0x69,0x6e,0x20,0x22,0x2d,0x20,0x20,0x20,0x20,0x5c,0x6e,0x20,0x20,0x33,0x22,0x20,0x63,0x61,0x73,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x31,0x20,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x34,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x74,0x20,0x69,0x73,0x20,0x6a,0x75,0x73,0x74,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x6e,0x74,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3e,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x22,0x20,0x20,0x2d,0x20,0x20,0x74,0x65,0x73,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x2d,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x74,0x61,0x6c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x74,0x68,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x20,0x2b,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x75,0x6e,0x20,0x73,0x75,0x62,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x26,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,0x6d,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x6c,0x69,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x69,0x74,0x65,0x6d,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x5b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x30,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x20,0x69,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x73,0x75,0x62,0x63,0x61,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x20,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5e,0x20,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x5e,0x20,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x4c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x6f,0x72,0x6b,0x61,0x72,0x6f,0x75,0x6e,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x20,0x69,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x2c,0x20,0x6c,0x69,0x73,0x74,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x73,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x22,0x66,0x6f,0x6f,0x22,0x29,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x2d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x32,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x61,0x6e,0x79,0x20,0x6f,0x66,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x20,0x69,0x73,0x20,0x74,0x69,0x67,0x68,0x74,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x20,0x6c,0x69,0x73,0x74,0x20,0x61,0x73,0x20,0x74,0x69,0x67,0x68,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x69,0x67,0x68,0x74,0x20,0x7c,0x7c,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x70,0x74,0x79,0x45,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x74,0x65,0x6d,0x20,0x62,0x65,0x63,0x6f,0x6d,0x65,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x20,0x69,0x66,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x20,0x6c,0x61,0x73,0x74,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x6c,0x69,0x73,0x74,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x70,0x74,0x79,0x45,0x6e,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x2d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3e,0x20,0x31,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x4c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x54,0x53,0x68,0x69,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x53,0x43,0x6f,0x75,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x54,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x73,0x74,0x5f,0x69,0x74,0x65,0x6d,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x6c,0x69,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x74,0x65,0x6d,0x4c,0x69,0x6e,0x65,0x73,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3e,0x3d,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x79,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x73,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x64,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x69,0x6c,0x20,0x69,0x66,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6e,0x67,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x69,0x6c,0x20,0x69,0x66,0x20,0x6c,0x69,0x73,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x6b,0x69,0x70,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x4c,0x69,0x73,0x74,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x6b,0x69,0x70,0x42,0x75,0x6c,0x6c,0x65,0x74,0x4c,0x69,0x73,0x74,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x41,0x66,0x74,0x65,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x2d,0x20,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x20,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x72,0x64,0x65,0x72,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x5f,0x6c,0x69,0x73,0x74,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x6f,0x6c,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x62,0x75,0x6c,0x6c,0x65,0x74,0x5f,0x6c,0x69,0x73,0x74,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x75,0x6c,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x4c,0x69,0x6e,0x65,0x73,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x72,0x6b,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x20,0x74,0x69,0x67,0x68,0x74,0x20,0x69,0x66,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x67,0x68,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x54,0x69,0x67,0x68,0x74,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6c,0x69,0x73,0x74,0x54,0x6f,0x6b,0x49,0x64,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x24,0x32,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x36,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x5f,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x50,0x6f,0x73,0x2c,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x4e,0x6f,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x68,0x72,0x65,0x66,0x2c,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x73,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x73,0x74,0x72,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2c,0x20,0x74,0x69,0x74,0x6c,0x65,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x30,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6d,0x70,0x6c,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x6f,0x20,0x71,0x75,0x69,0x63,0x6b,0x6c,0x79,0x20,0x69,0x6e,0x74,0x65,0x72,0x72,0x75,0x70,0x74,0x20,0x73,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x75,0x72,0x6c,0x29,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x6c,0x69,0x6e,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x66,0x75,0x6c,0x20,0x6f,0x6e,0x20,0x70,0x72,0x61,0x63,0x74,0x69,0x63,0x65,0x3a,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x69,0x73,0x73,0x75,0x65,0x73,0x2f,0x35,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x2b,0x2b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x33,0x20,0x2f,0x2a,0x20,0x5d,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x31,0x29,0x20,0x21,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3d,0x3d,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x20,0x21,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6a,0x75,0x6d,0x70,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x79,0x2d,0x6c,0x69,0x6e,0x65,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6f,0x6e,0x65,0x20,0x6f,0x72,0x20,0x45,0x4f,0x46,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x62,0x75,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x27,0x73,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x65,0x64,0x20,0x61,0x20,0x6c,0x61,0x7a,0x79,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x61,0x72,0x64,0x6c,0x65,0x73,0x73,0x20,0x6f,0x66,0x20,0x77,0x68,0x61,0x74,0x27,0x73,0x20,0x74,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x71,0x75,0x69,0x72,0x6b,0x20,0x66,0x6f,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x20,0x6c,0x69,0x6e,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6f,0x6d,0x65,0x20,0x74,0x61,0x67,0x73,0x20,0x63,0x61,0x6e,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x70,0x6f,0x73,0x20,0x3d,0x20,0x31,0x3b,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x33,0x20,0x2f,0x2a,0x20,0x5d,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x20,0x2f,0x2a,0x20,0x5c,0x6e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x29,0x20,0x21,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x61,0x62,0x65,0x6c,0x5d,0x3a,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x20,0x20,0x27,0x74,0x69,0x74,0x6c,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x32,0x3b,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x36,0x28,0x63,0x68,0x29,0x29,0x20,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x61,0x62,0x65,0x6c,0x5d,0x3a,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x20,0x20,0x27,0x74,0x69,0x74,0x6c,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x72,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x72,0x65,0x73,0x2e,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x68,0x72,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x2b,0x3d,0x20,0x72,0x65,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x61,0x76,0x65,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x77,0x65,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x74,0x6f,0x20,0x72,0x6f,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x6c,0x61,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x50,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x4e,0x6f,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x61,0x62,0x65,0x6c,0x5d,0x3a,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x20,0x20,0x27,0x74,0x69,0x74,0x6c,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x36,0x28,0x63,0x68,0x29,0x29,0x20,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x61,0x62,0x65,0x6c,0x5d,0x3a,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x20,0x20,0x27,0x74,0x69,0x74,0x6c,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x28,0x73,0x74,0x72,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x21,0x3d,0x3d,0x20,0x70,0x6f,0x73,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x2b,0x3d,0x20,0x72,0x65,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x4e,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6b,0x69,0x70,0x20,0x74,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x36,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x74,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x61,0x72,0x62,0x61,0x67,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x74,0x69,0x74,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x72,0x6f,0x6c,0x6c,0x20,0x62,0x61,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x64,0x65,0x73,0x74,0x45,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x4e,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x36,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x61,0x72,0x62,0x61,0x67,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x24,0x32,0x28,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x61,0x62,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x4d,0x61,0x72,0x6b,0x20,0x30,0x2e,0x32,0x30,0x20,0x64,0x69,0x73,0x61,0x6c,0x6c,0x6f,0x77,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x61,0x62,0x65,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x63,0x61,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x69,0x73,0x20,0x66,0x6f,0x72,0x20,0x73,0x61,0x66,0x65,0x74,0x79,0x20,0x6f,0x6e,0x6c,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x69,0x73,0x74,0x61,0x6e,0x62,0x75,0x6c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x69,0x66,0x2a,0x2f,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x5b,0x6c,0x61,0x62,0x65,0x6c,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x5b,0x6c,0x61,0x62,0x65,0x6c,0x5d,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x3a,0x20,0x74,0x69,0x74,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x3a,0x20,0x68,0x72,0x65,0x66,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x68,0x74,0x6d,0x6c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2c,0x20,0x61,0x63,0x63,0x6f,0x72,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x20,0x73,0x70,0x65,0x63,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x20,0x3d,0x20,0x5b,0x20,0x22,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x22,0x2c,0x20,0x22,0x61,0x72,0x74,0x69,0x63,0x6c,0x65,0x22,0x2c,0x20,0x22,0x61,0x73,0x69,0x64,0x65,0x22,0x2c,0x20,0x22,0x62,0x61,0x73,0x65,0x22,0x2c,0x20,0x22,0x62,0x61,0x73,0x65,0x66,0x6f,0x6e,0x74,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x22,0x62,0x6f,0x64,0x79,0x22,0x2c,0x20,0x22,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x20,0x22,0x63,0x6f,0x6c,0x22,0x2c,0x20,0x22,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x22,0x2c,0x20,0x22,0x64,0x64,0x22,0x2c,0x20,0x22,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x22,0x2c,0x20,0x22,0x64,0x69,0x61,0x6c,0x6f,0x67,0x22,0x2c,0x20,0x22,0x64,0x69,0x72,0x22,0x2c,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x20,0x22,0x64,0x6c,0x22,0x2c,0x20,0x22,0x64,0x74,0x22,0x2c,0x20,0x22,0x66,0x69,0x65,0x6c,0x64,0x73,0x65,0x74,0x22,0x2c,0x20,0x22,0x66,0x69,0x67,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x66,0x69,0x67,0x75,0x72,0x65,0x22,0x2c,0x20,0x22,0x66,0x6f,0x6f,0x74,0x65,0x72,0x22,0x2c,0x20,0x22,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x20,0x22,0x66,0x72,0x61,0x6d,0x65,0x22,0x2c,0x20,0x22,0x66,0x72,0x61,0x6d,0x65,0x73,0x65,0x74,0x22,0x2c,0x20,0x22,0x68,0x31,0x22,0x2c,0x20,0x22,0x68,0x32,0x22,0x2c,0x20,0x22,0x68,0x33,0x22,0x2c,0x20,0x22,0x68,0x34,0x22,0x2c,0x20,0x22,0x68,0x35,0x22,0x2c,0x20,0x22,0x68,0x36,0x22,0x2c,0x20,0x22,0x68,0x65,0x61,0x64,0x22,0x2c,0x20,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x2c,0x20,0x22,0x68,0x72,0x22,0x2c,0x20,0x22,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x69,0x66,0x72,0x61,0x6d,0x65,0x22,0x2c,0x20,0x22,0x6c,0x65,0x67,0x65,0x6e,0x64,0x22,0x2c,0x20,0x22,0x6c,0x69,0x22,0x2c,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x20,0x22,0x6d,0x61,0x69,0x6e,0x22,0x2c,0x20,0x22,0x6d,0x65,0x6e,0x75,0x22,0x2c,0x20,0x22,0x6d,0x65,0x6e,0x75,0x69,0x74,0x65,0x6d,0x22,0x2c,0x20,0x22,0x6e,0x61,0x76,0x22,0x2c,0x20,0x22,0x6e,0x6f,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x2c,0x20,0x22,0x6f,0x6c,0x22,0x2c,0x20,0x22,0x6f,0x70,0x74,0x67,0x72,0x6f,0x75,0x70,0x22,0x2c,0x20,0x22,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x70,0x22,0x2c,0x20,0x22,0x70,0x61,0x72,0x61,0x6d,0x22,0x2c,0x20,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x2c,0x20,0x22,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x22,0x2c,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x2c,0x20,0x22,0x74,0x62,0x6f,0x64,0x79,0x22,0x2c,0x20,0x22,0x74,0x64,0x22,0x2c,0x20,0x22,0x74,0x66,0x6f,0x6f,0x74,0x22,0x2c,0x20,0x22,0x74,0x68,0x22,0x2c,0x20,0x22,0x74,0x68,0x65,0x61,0x64,0x22,0x2c,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x2c,0x20,0x22,0x74,0x72,0x22,0x2c,0x20,0x22,0x74,0x72,0x61,0x63,0x6b,0x22,0x2c,0x20,0x22,0x75,0x6c,0x22,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x67,0x65,0x78,0x70,0x73,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x68,0x74,0x6d,0x6c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x74,0x74,0x72,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x5f,0x3a,0x5d,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x3a,0x2e,0x5f,0x2d,0x5d,0x2a,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x6e,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x3d,0x20,0x22,0x5b,0x5e,0x5c,0x22,0x27,0x3d,0x3c,0x3e,0x60,0x5c,0x5c,0x78,0x30,0x30,0x2d,0x5c,0x5c,0x78,0x32,0x30,0x5d,0x2b,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x5f,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x3d,0x20,0x22,0x27,0x5b,0x5e,0x27,0x5d,0x2a,0x27,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x6f,0x75,0x62,0x6c,0x65,0x5f,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x3d,0x20,0x27,0x22,0x5b,0x5e,0x22,0x5d,0x2a,0x22,0x27,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x74,0x74,0x72,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x75,0x6e,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x5f,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x64,0x6f,0x75,0x62,0x6c,0x65,0x5f,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x5c,0x5c,0x73,0x2b,0x22,0x20,0x2b,0x20,0x61,0x74,0x74,0x72,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x22,0x28,0x3f,0x3a,0x5c,0x5c,0x73,0x2a,0x3d,0x5c,0x5c,0x73,0x2a,0x22,0x20,0x2b,0x20,0x61,0x74,0x74,0x72,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x2b,0x20,0x22,0x29,0x3f,0x29,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x70,0x65,0x6e,0x5f,0x74,0x61,0x67,0x20,0x3d,0x20,0x22,0x3c,0x5b,0x41,0x2d,0x5a,0x61,0x2d,0x7a,0x5d,0x5b,0x41,0x2d,0x5a,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x5c,0x5c,0x2d,0x5d,0x2a,0x22,0x20,0x2b,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x2b,0x20,0x22,0x2a,0x5c,0x5c,0x73,0x2a,0x5c,0x5c,0x2f,0x3f,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x6f,0x73,0x65,0x5f,0x74,0x61,0x67,0x20,0x3d,0x20,0x22,0x3c,0x5c,0x5c,0x2f,0x5b,0x41,0x2d,0x5a,0x61,0x2d,0x7a,0x5d,0x5b,0x41,0x2d,0x5a,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x5c,0x5c,0x2d,0x5d,0x2a,0x5c,0x5c,0x73,0x2a,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x5c,0x78,0x33,0x63,0x21,0x2d,0x2d,0x2d,0x2d,0x5c,0x78,0x33,0x65,0x7c,0x5c,0x78,0x33,0x63,0x21,0x2d,0x2d,0x28,0x3f,0x3a,0x2d,0x3f,0x5b,0x5e,0x3e,0x2d,0x5d,0x29,0x28,0x3f,0x3a,0x2d,0x3f,0x5b,0x5e,0x2d,0x5d,0x29,0x2a,0x2d,0x2d,0x5c,0x78,0x33,0x65,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x3d,0x20,0x22,0x3c,0x5b,0x3f,0x5d,0x5b,0x5c,0x5c,0x73,0x5c,0x5c,0x53,0x5d,0x2a,0x3f,0x5b,0x3f,0x5d,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x22,0x3c,0x21,0x5b,0x41,0x2d,0x5a,0x5d,0x2b,0x5c,0x5c,0x73,0x2b,0x5b,0x5e,0x3e,0x5d,0x2a,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x22,0x3c,0x21,0x5c,0x5c,0x5b,0x43,0x44,0x41,0x54,0x41,0x5c,0x5c,0x5b,0x5b,0x5c,0x5c,0x73,0x5c,0x5c,0x53,0x5d,0x2a,0x3f,0x5c,0x5c,0x5d,0x5c,0x5c,0x5d,0x3e,0x22,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x24,0x31,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x6f,0x70,0x65,0x6e,0x5f,0x74,0x61,0x67,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x5f,0x74,0x61,0x67,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x63,0x64,0x61,0x74,0x61,0x20,0x2b,0x20,0x22,0x29,0x22,0x29,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x24,0x31,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x6f,0x70,0x65,0x6e,0x5f,0x74,0x61,0x67,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x5f,0x74,0x61,0x67,0x20,0x2b,0x20,0x22,0x29,0x22,0x29,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x5f,0x31,0x20,0x3d,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x24,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x5f,0x31,0x20,0x3d,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x24,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x72,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x3a,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x5f,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x3a,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x5f,0x31,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x20,0x3d,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x72,0x65,0x2e,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x72,0x72,0x65,0x73,0x70,0x6f,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x68,0x74,0x6d,0x6c,0x20,0x74,0x61,0x67,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x61,0x73,0x74,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x73,0x20,0x77,0x68,0x65,0x74,0x68,0x65,0x72,0x20,0x69,0x74,0x20,0x63,0x61,0x6e,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x6f,0x72,0x20,0x6e,0x6f,0x74,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x2f,0x5e,0x3c,0x28,0x73,0x63,0x72,0x69,0x70,0x74,0x7c,0x70,0x72,0x65,0x7c,0x73,0x74,0x79,0x6c,0x65,0x7c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x29,0x28,0x3f,0x3d,0x28,0x5c,0x73,0x7c,0x3e,0x7c,0x24,0x29,0x29,0x2f,0x69,0x2c,0x20,0x2f,0x3c,0x5c,0x2f,0x28,0x73,0x63,0x72,0x69,0x70,0x74,0x7c,0x70,0x72,0x65,0x7c,0x73,0x74,0x79,0x6c,0x65,0x7c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x29,0x3e,0x2f,0x69,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x2f,0x5e,0x3c,0x21,0x2d,0x2d,0x2f,0x2c,0x20,0x2f,0x2d,0x2d,0x3e,0x2f,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x2f,0x5e,0x3c,0x5c,0x3f,0x2f,0x2c,0x20,0x2f,0x5c,0x3f,0x3e,0x2f,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x2f,0x5e,0x3c,0x21,0x5b,0x41,0x2d,0x5a,0x5d,0x2f,0x2c,0x20,0x2f,0x3e,0x2f,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x2f,0x5e,0x3c,0x21,0x5c,0x5b,0x43,0x44,0x41,0x54,0x41,0x5c,0x5b,0x2f,0x2c,0x20,0x2f,0x5c,0x5d,0x5c,0x5d,0x3e,0x2f,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x3c,0x2f,0x3f,0x28,0x22,0x20,0x2b,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x20,0x2b,0x20,0x22,0x29,0x28,0x3f,0x3d,0x28,0x5c,0x5c,0x73,0x7c,0x2f,0x3f,0x3e,0x7c,0x24,0x29,0x29,0x22,0x2c,0x20,0x22,0x69,0x22,0x29,0x2c,0x20,0x2f,0x5e,0x24,0x2f,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x4f,0x50,0x45,0x4e,0x5f,0x43,0x4c,0x4f,0x53,0x45,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x73,0x2a,0x24,0x22,0x29,0x2c,0x20,0x2f,0x5e,0x24,0x2f,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x2e,0x74,0x65,0x73,0x74,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x75,0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x61,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x6f,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x5b,0x69,0x5d,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x20,0x61,0x72,0x65,0x20,0x68,0x65,0x72,0x65,0x20,0x2d,0x20,0x77,0x65,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x65,0x74,0x27,0x73,0x20,0x72,0x6f,0x6c,0x6c,0x20,0x64,0x6f,0x77,0x6e,0x20,0x74,0x69,0x6c,0x6c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x65,0x6e,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x2e,0x74,0x65,0x73,0x74,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x53,0x45,0x51,0x55,0x45,0x4e,0x43,0x45,0x53,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x2e,0x74,0x65,0x73,0x74,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x65,0x54,0x65,0x78,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x35,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x74,0x6d,0x70,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x33,0x35,0x20,0x2f,0x2a,0x20,0x23,0x20,0x2a,0x2f,0x20,0x7c,0x7c,0x20,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x6c,0x65,0x76,0x65,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x2b,0x2b,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x35,0x20,0x2f,0x2a,0x20,0x23,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3c,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x2b,0x2b,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3e,0x20,0x36,0x20,0x7c,0x7c,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x35,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x65,0x74,0x27,0x73,0x20,0x63,0x75,0x74,0x20,0x74,0x61,0x69,0x6c,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x27,0x20,0x20,0x20,0x20,0x23,0x23,0x23,0x20,0x20,0x27,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x42,0x61,0x63,0x6b,0x28,0x6d,0x61,0x78,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x42,0x61,0x63,0x6b,0x28,0x6d,0x61,0x78,0x2c,0x20,0x33,0x35,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x23,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6d,0x70,0x20,0x3e,0x20,0x70,0x6f,0x73,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x35,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x6d,0x70,0x20,0x2d,0x20,0x31,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x68,0x22,0x20,0x2b,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x65,0x76,0x65,0x6c,0x29,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x68,0x22,0x20,0x2b,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x65,0x76,0x65,0x6c,0x29,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x28,0x2d,0x2d,0x2d,0x2c,0x20,0x3d,0x3d,0x3d,0x29,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x2f,0x2a,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x65,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x20,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6a,0x75,0x6d,0x70,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x79,0x2d,0x6c,0x69,0x6e,0x65,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6f,0x6e,0x65,0x20,0x6f,0x72,0x20,0x45,0x4f,0x46,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x62,0x75,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x27,0x73,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x65,0x64,0x20,0x61,0x20,0x6c,0x61,0x7a,0x79,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x61,0x72,0x64,0x6c,0x65,0x73,0x73,0x20,0x6f,0x66,0x20,0x77,0x68,0x61,0x74,0x27,0x73,0x20,0x74,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x20,0x69,0x6e,0x20,0x73,0x65,0x74,0x65,0x78,0x74,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x7c,0x7c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x2f,0x2a,0x20,0x3d,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x2f,0x2a,0x20,0x3d,0x20,0x2a,0x2f,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x71,0x75,0x69,0x72,0x6b,0x20,0x66,0x6f,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x20,0x6c,0x69,0x6e,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6f,0x6d,0x65,0x20,0x74,0x61,0x67,0x73,0x20,0x63,0x61,0x6e,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x65,0x76,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x69,0x64,0x6e,0x27,0x74,0x20,0x66,0x69,0x6e,0x64,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x68,0x22,0x20,0x2b,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x65,0x76,0x65,0x6c,0x29,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x2d,0x20,0x31,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x68,0x22,0x20,0x2b,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x65,0x76,0x65,0x6c,0x29,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x2c,0x20,0x69,0x2c,0x20,0x6c,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x2c,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6a,0x75,0x6d,0x70,0x20,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x79,0x2d,0x6c,0x69,0x6e,0x65,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6f,0x6e,0x65,0x20,0x6f,0x72,0x20,0x45,0x4f,0x46,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x29,0x3b,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x62,0x75,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x27,0x73,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x65,0x64,0x20,0x61,0x20,0x6c,0x61,0x7a,0x79,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x61,0x72,0x64,0x6c,0x65,0x73,0x73,0x20,0x6f,0x66,0x20,0x77,0x68,0x61,0x74,0x27,0x73,0x20,0x74,0x68,0x65,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x2d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x71,0x75,0x69,0x72,0x6b,0x20,0x66,0x6f,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x20,0x6c,0x69,0x6e,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6f,0x6d,0x65,0x20,0x74,0x61,0x67,0x73,0x20,0x63,0x61,0x6e,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x52,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x70,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x5b,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x70,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x34,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x73,0x72,0x63,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x73,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6c,0x65,0x6e,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x5f,0x66,0x6f,0x75,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x73,0x72,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x74,0x6f,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x64,0x20,0x3d,0x20,0x6d,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x76,0x20,0x3d,0x20,0x65,0x6e,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x76,0x61,0x72,0x74,0x69,0x61,0x62,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6e,0x65,0x20,0x62,0x65,0x67,0x69,0x6e,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x66,0x61,0x73,0x74,0x20,0x6a,0x75,0x6d,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6e,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x66,0x61,0x73,0x74,0x20,0x6a,0x75,0x6d,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x2d,0x73,0x70,0x61,0x63,0x65,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x28,0x74,0x61,0x62,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x65,0x61,0x63,0x68,0x20,0x6c,0x69,0x6e,0x65,0x20,0x28,0x74,0x61,0x62,0x73,0x20,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6e,0x20,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x6f,0x66,0x20,0x76,0x69,0x72,0x74,0x75,0x61,0x6c,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x28,0x74,0x61,0x62,0x73,0x20,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x29,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x66,0x20,0x65,0x61,0x63,0x68,0x20,0x6c,0x69,0x6e,0x65,0x20,0x28,0x62,0x4d,0x61,0x72,0x6b,0x73,0x29,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x61,0x6c,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x74,0x68,0x61,0x74,0x20,0x6c,0x69,0x6e,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x61,0x73,0x20,0x61,0x20,0x68,0x61,0x63,0x6b,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x62,0x4d,0x61,0x72,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x74,0x27,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x77,0x68,0x65,0x6e,0x20,0x65,0x78,0x70,0x61,0x6e,0x64,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x73,0x2c,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x74,0x68,0x69,0x6e,0x6b,0x20,0x61,0x62,0x6f,0x75,0x74,0x20,0x69,0x74,0x20,0x61,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x20,0x74,0x61,0x62,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x65,0x2e,0x67,0x2e,0x20,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x32,0x31,0x20,0x61,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x60,0x5c,0x74,0x31,0x32,0x33,0x60,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x74,0x61,0x62,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x34,0x2d,0x32,0x31,0x25,0x34,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x28,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x61,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x61,0x20,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x74,0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x69,0x73,0x74,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6e,0x65,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x69,0x6e,0x20,0x73,0x72,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x63,0x6f,0x75,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x2f,0x74,0x69,0x67,0x68,0x74,0x20,0x6d,0x6f,0x64,0x65,0x20,0x66,0x6f,0x72,0x20,0x6c,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x64,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x64,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x28,0x2d,0x31,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x6e,0x27,0x74,0x20,0x61,0x6e,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x28,0x2d,0x31,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x6e,0x27,0x74,0x20,0x61,0x6e,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x27,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x27,0x2c,0x20,0x27,0x6c,0x69,0x73,0x74,0x27,0x2c,0x20,0x27,0x72,0x6f,0x6f,0x74,0x27,0x2c,0x20,0x27,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x27,0x20,0x6f,0x72,0x20,0x27,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x27,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x6c,0x69,0x73,0x74,0x73,0x20,0x74,0x6f,0x20,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x79,0x20,0x69,0x6e,0x74,0x65,0x72,0x72,0x75,0x70,0x74,0x20,0x61,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x63,0x61,0x63,0x68,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x5f,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x64,0x65,0x6e,0x74,0x5f,0x66,0x6f,0x75,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x34,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x3d,0x20,0x34,0x20,0x2d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x25,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x5f,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x20,0x7c,0x7c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x6c,0x65,0x6e,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x6e,0x64,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x5f,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x73,0x68,0x20,0x66,0x61,0x6b,0x65,0x20,0x65,0x6e,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x73,0x69,0x6d,0x70,0x6c,0x69,0x66,0x79,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x6c,0x61,0x73,0x74,0x20,0x66,0x61,0x6b,0x65,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x73,0x68,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x74,0x6f,0x20,0x22,0x73,0x74,0x72,0x65,0x61,0x6d,0x22,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x75,0x73,0x68,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3c,0x20,0x30,0x29,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x20,0x3e,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6b,0x69,0x70,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x28,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x3b,0x20,0x66,0x72,0x6f,0x6d,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x66,0x72,0x6f,0x6d,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x66,0x72,0x6f,0x6d,0x5d,0x20,0x2b,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x66,0x72,0x6f,0x6d,0x5d,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x66,0x72,0x6f,0x6d,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x28,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x34,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x42,0x61,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x53,0x70,0x61,0x63,0x65,0x73,0x42,0x61,0x63,0x6b,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x3d,0x20,0x6d,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x20,0x6d,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x34,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x2d,0x2d,0x70,0x6f,0x73,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x63,0x68,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x28,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x63,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x63,0x68,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x73,0x20,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x42,0x61,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6b,0x69,0x70,0x43,0x68,0x61,0x72,0x73,0x42,0x61,0x63,0x6b,0x28,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6d,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x3d,0x20,0x6d,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x20,0x6d,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x2d,0x2d,0x70,0x6f,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x63,0x75,0x74,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x4c,0x69,0x6e,0x65,0x73,0x28,0x62,0x65,0x67,0x69,0x6e,0x2c,0x20,0x65,0x6e,0x64,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x65,0x65,0x70,0x4c,0x61,0x73,0x74,0x4c,0x46,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x63,0x68,0x2c,0x20,0x66,0x69,0x72,0x73,0x74,0x2c,0x20,0x6c,0x61,0x73,0x74,0x2c,0x20,0x71,0x75,0x65,0x75,0x65,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x62,0x65,0x67,0x69,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x65,0x67,0x69,0x6e,0x20,0x3e,0x3d,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x6e,0x64,0x20,0x2d,0x20,0x62,0x65,0x67,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x3b,0x20,0x6c,0x69,0x6e,0x65,0x2b,0x2b,0x2c,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x65,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x65,0x6e,0x64,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x65,0x70,0x4c,0x61,0x73,0x74,0x4c,0x46,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x20,0x6e,0x65,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x66,0x61,0x6b,0x65,0x20,0x65,0x6e,0x74,0x72,0x79,0x20,0x6f,0x6e,0x20,0x74,0x61,0x69,0x6c,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x4d,0x61,0x72,0x6b,0x73,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x66,0x69,0x72,0x73,0x74,0x20,0x3c,0x20,0x6c,0x61,0x73,0x74,0x20,0x26,0x26,0x20,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x66,0x69,0x72,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x34,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x34,0x20,0x2d,0x20,0x28,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x2b,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x25,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x66,0x69,0x72,0x73,0x74,0x20,0x2d,0x20,0x6c,0x69,0x6e,0x65,0x53,0x74,0x61,0x72,0x74,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x53,0x68,0x69,0x66,0x74,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x74,0x53,0x68,0x69,0x66,0x74,0x20,0x6d,0x61,0x73,0x6b,0x65,0x64,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x6f,0x6b,0x20,0x6c,0x69,0x6b,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x28,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x73,0x2c,0x20,0x6c,0x69,0x73,0x74,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x72,0x73,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x3e,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x74,0x69,0x61,0x6c,0x6c,0x79,0x20,0x65,0x78,0x70,0x61,0x6e,0x64,0x69,0x6e,0x67,0x20,0x74,0x61,0x62,0x73,0x20,0x69,0x6e,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2c,0x20,0x65,0x2e,0x67,0x20,0x27,0x5c,0x74,0x5c,0x74,0x66,0x6f,0x6f,0x62,0x61,0x72,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x74,0x68,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x3d,0x32,0x20,0x62,0x65,0x63,0x6f,0x6d,0x65,0x73,0x20,0x27,0x20,0x20,0x5c,0x74,0x66,0x6f,0x6f,0x62,0x61,0x72,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x6e,0x74,0x20,0x2d,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x2b,0x20,0x31,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x20,0x2b,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x66,0x69,0x72,0x73,0x74,0x2c,0x20,0x6c,0x61,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x66,0x69,0x72,0x73,0x74,0x2c,0x20,0x6c,0x61,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x2d,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x69,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x53,0x74,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x31,0x20,0x3d,0x20,0x5b,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x72,0x73,0x74,0x20,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x2d,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x26,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x20,0x53,0x65,0x63,0x6f,0x6e,0x64,0x61,0x72,0x79,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x69,0x73,0x20,0x6f,0x6e,0x65,0x2e,0x0a,0x20,0x20,0x5b,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x2c,0x20,0x74,0x61,0x62,0x6c,0x65,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x63,0x6f,0x64,0x65,0x22,0x2c,0x20,0x63,0x6f,0x64,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x66,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x66,0x65,0x6e,0x63,0x65,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x68,0x72,0x22,0x2c,0x20,0x68,0x72,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x6c,0x69,0x73,0x74,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x22,0x2c,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x20,0x5d,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x6c,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x22,0x2c,0x20,0x6c,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x2c,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x23,0x72,0x75,0x6c,0x65,0x72,0x20,0x2d,0x3e,0x20,0x52,0x75,0x6c,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x5d,0x5d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x20,0x4b,0x65,0x65,0x70,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x31,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x31,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x74,0x3a,0x20,0x28,0x5f,0x72,0x75,0x6c,0x65,0x73,0x24,0x31,0x5b,0x69,0x5d,0x5b,0x32,0x5d,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x66,0x6f,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x72,0x61,0x6e,0x67,0x65,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x6b,0x2c,0x20,0x69,0x2c,0x20,0x70,0x72,0x65,0x76,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x22,0x29,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x68,0x61,0x73,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x6b,0x69,0x70,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x28,0x6c,0x69,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x65,0x20,0x3e,0x3d,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x63,0x61,0x6c,0x6c,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x65,0x73,0x74,0x65,0x64,0x20,0x63,0x61,0x6c,0x6c,0x73,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x26,0x20,0x6c,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x5b,0x6c,0x69,0x6e,0x65,0x5d,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x6c,0x6b,0x49,0x6e,0x64,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x65,0x78,0x63,0x65,0x65,0x64,0x65,0x64,0x20,0x2d,0x20,0x73,0x6b,0x69,0x70,0x20,0x74,0x61,0x69,0x6c,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x2e,0x20,0x54,0x68,0x61,0x74,0x27,0x73,0x20,0x6e,0x6f,0x74,0x20,0x6f,0x72,0x64,0x69,0x6e,0x61,0x72,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x69,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x63,0x61,0x72,0x65,0x20,0x61,0x62,0x6f,0x75,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x79,0x20,0x61,0x6c,0x6c,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x2c,0x20,0x72,0x75,0x6c,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x60,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x60,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6b,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x2c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x4c,0x69,0x6e,0x65,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x69,0x64,0x6e,0x27,0x74,0x20,0x69,0x6e,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x20,0x69,0x66,0x20,0x75,0x73,0x65,0x72,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x73,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x6b,0x29,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x6e,0x6f,0x6e,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x69,0x67,0x68,0x74,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x68,0x61,0x64,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x2e,0x65,0x2e,0x20,0x6c,0x61,0x74,0x65,0x73,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x6c,0x69,0x6e,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x21,0x68,0x61,0x73,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x22,0x65,0x61,0x74,0x22,0x20,0x6f,0x6e,0x65,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x69,0x74,0x20,0x69,0x6e,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x6c,0x69,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x2d,0x20,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x65,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x45,0x6d,0x70,0x74,0x79,0x28,0x6c,0x69,0x6e,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x45,0x6d,0x70,0x74,0x79,0x4c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x73,0x74,0x72,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x61,0x6e,0x64,0x20,0x70,0x75,0x73,0x68,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x60,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x72,0x63,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x72,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x53,0x74,0x61,0x74,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x4d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x74,0x65,0x78,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6c,0x61,0x63,0x65,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x74,0x6f,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x75,0x6c,0x65,0x20,0x74,0x6f,0x20,0x73,0x6b,0x69,0x70,0x20,0x70,0x75,0x72,0x65,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x27,0x7b,0x7d,0x24,0x25,0x40,0x7e,0x2b,0x3d,0x3a,0x27,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x21,0x2c,0x20,0x22,0x2c,0x20,0x23,0x2c,0x20,0x24,0x2c,0x20,0x25,0x2c,0x20,0x26,0x2c,0x20,0x27,0x2c,0x20,0x28,0x2c,0x20,0x29,0x2c,0x20,0x2a,0x2c,0x20,0x2b,0x2c,0x20,0x2c,0x2c,0x20,0x2d,0x2c,0x20,0x2e,0x2c,0x20,0x2f,0x2c,0x20,0x3a,0x2c,0x20,0x3b,0x2c,0x20,0x3c,0x2c,0x20,0x3d,0x2c,0x20,0x3e,0x2c,0x20,0x3f,0x2c,0x20,0x40,0x2c,0x20,0x5b,0x2c,0x20,0x5c,0x2c,0x20,0x5d,0x2c,0x20,0x5e,0x2c,0x20,0x5f,0x2c,0x20,0x60,0x2c,0x20,0x7b,0x2c,0x20,0x7c,0x2c,0x20,0x7d,0x2c,0x20,0x6f,0x72,0x20,0x7e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x21,0x21,0x21,0x21,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x63,0x6f,0x6e,0x66,0x75,0x73,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x22,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x41,0x53,0x43,0x49,0x49,0x20,0x50,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x22,0x20,0x63,0x68,0x61,0x72,0x73,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x70,0x65,0x63,0x2e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2e,0x6f,0x72,0x67,0x2f,0x30,0x2e,0x31,0x35,0x2f,0x23,0x61,0x73,0x63,0x69,0x69,0x2d,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x43,0x68,0x61,0x72,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x20,0x2f,0x2a,0x20,0x5c,0x6e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x33,0x20,0x2f,0x2a,0x20,0x21,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x35,0x20,0x2f,0x2a,0x20,0x23,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x36,0x20,0x2f,0x2a,0x20,0x24,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x37,0x20,0x2f,0x2a,0x20,0x25,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x38,0x20,0x2f,0x2a,0x20,0x26,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x32,0x20,0x2f,0x2a,0x20,0x2a,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x33,0x20,0x2f,0x2a,0x20,0x2b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x35,0x20,0x2f,0x2a,0x20,0x2d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x31,0x20,0x2f,0x2a,0x20,0x3d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x32,0x20,0x2f,0x2a,0x20,0x3e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x34,0x20,0x2f,0x2a,0x20,0x40,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x33,0x20,0x2f,0x2a,0x20,0x5d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x34,0x20,0x2f,0x2a,0x20,0x5e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x35,0x20,0x2f,0x2a,0x20,0x5f,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x33,0x20,0x2f,0x2a,0x20,0x7b,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x35,0x20,0x2f,0x2a,0x20,0x7d,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x36,0x20,0x2f,0x2a,0x20,0x7e,0x20,0x2a,0x2f,0x20,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x78,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x54,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x43,0x68,0x61,0x72,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x2b,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x6f,0x72,0x67,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x46,0x43,0x33,0x39,0x38,0x36,0x3a,0x20,0x73,0x63,0x68,0x65,0x6d,0x65,0x20,0x3d,0x20,0x41,0x4c,0x50,0x48,0x41,0x20,0x2a,0x28,0x20,0x41,0x4c,0x50,0x48,0x41,0x20,0x2f,0x20,0x44,0x49,0x47,0x49,0x54,0x20,0x2f,0x20,0x22,0x2b,0x22,0x20,0x2f,0x20,0x22,0x2d,0x22,0x20,0x2f,0x20,0x22,0x2e,0x22,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x53,0x43,0x48,0x45,0x4d,0x45,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x28,0x3f,0x3a,0x5e,0x7c,0x5b,0x5e,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x2e,0x2b,0x2d,0x5d,0x29,0x28,0x5b,0x61,0x2d,0x7a,0x5d,0x5b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x2e,0x2b,0x2d,0x5d,0x2a,0x29,0x24,0x2f,0x69,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x70,0x72,0x6f,0x74,0x6f,0x2c,0x20,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x75,0x72,0x6c,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3e,0x20,0x30,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x33,0x20,0x3e,0x20,0x6d,0x61,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x35,0x38,0x20,0x2f,0x2a,0x20,0x3a,0x20,0x2a,0x2f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x20,0x21,0x3d,0x3d,0x20,0x34,0x37,0x20,0x2f,0x2a,0x20,0x2f,0x20,0x2a,0x2f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x32,0x29,0x20,0x21,0x3d,0x3d,0x20,0x34,0x37,0x20,0x2f,0x2a,0x20,0x2f,0x20,0x2a,0x2f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x53,0x43,0x48,0x45,0x4d,0x45,0x5f,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2e,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x53,0x74,0x61,0x72,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x20,0x2d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x62,0x75,0x74,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x20,0x73,0x6f,0x6d,0x65,0x68,0x6f,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x6f,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x20,0x6c,0x6f,0x6f,0x70,0x20,0x62,0x65,0x6c,0x6f,0x77,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x72,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3c,0x3d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x64,0x69,0x73,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x27,0x2a,0x27,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x28,0x63,0x6f,0x6e,0x66,0x6c,0x69,0x63,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x2a,0x2b,0x24,0x2f,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x2d,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x68,0x72,0x65,0x66,0x22,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x33,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6d,0x61,0x78,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x77,0x73,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x20,0x2f,0x2a,0x20,0x5c,0x6e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x20,0x20,0x5c,0x6e,0x27,0x20,0x2d,0x3e,0x20,0x68,0x61,0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x6f,0x6b,0x75,0x70,0x20,0x69,0x6e,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x69,0x73,0x20,0x62,0x61,0x64,0x20,0x70,0x72,0x61,0x63,0x74,0x69,0x63,0x65,0x21,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x63,0x6f,0x70,0x79,0x20,0x74,0x6f,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x72,0x75,0x6c,0x65,0x73,0x21,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6e,0x63,0x61,0x74,0x20,0x6d,0x6f,0x64,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x65,0x64,0x20,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x63,0x61,0x75,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x66,0x6c,0x61,0x74,0x20,0x6d,0x6f,0x64,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6d,0x61,0x78,0x20,0x3e,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6d,0x61,0x78,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6d,0x61,0x78,0x20,0x3e,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6d,0x61,0x78,0x20,0x2d,0x20,0x31,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x64,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x74,0x61,0x69,0x6c,0x20,0x6f,0x66,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x72,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x73,0x20,0x3d,0x20,0x70,0x6d,0x61,0x78,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x77,0x73,0x20,0x3e,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x77,0x73,0x20,0x2d,0x20,0x31,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x77,0x73,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x77,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x61,0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0x22,0x2c,0x20,0x22,0x62,0x72,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x73,0x6f,0x66,0x74,0x62,0x72,0x65,0x61,0x6b,0x22,0x2c,0x20,0x22,0x62,0x72,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x73,0x6f,0x66,0x74,0x62,0x72,0x65,0x61,0x6b,0x22,0x2c,0x20,0x22,0x62,0x72,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6b,0x69,0x70,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x6e,0x65,0x78,0x74,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x33,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x32,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x45,0x53,0x43,0x41,0x50,0x45,0x44,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x32,0x35,0x36,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x45,0x53,0x43,0x41,0x50,0x45,0x44,0x2e,0x70,0x75,0x73,0x68,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x22,0x5c,0x5c,0x21,0x5c,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2e,0x2f,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x5b,0x5d,0x5e,0x5f,0x60,0x7b,0x7c,0x7d,0x7e,0x2d,0x22,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x22,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x45,0x53,0x43,0x41,0x50,0x45,0x44,0x5b,0x63,0x68,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x5d,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x31,0x2c,0x20,0x63,0x68,0x32,0x2c,0x20,0x6f,0x72,0x69,0x67,0x53,0x74,0x72,0x2c,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x74,0x72,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x39,0x32,0x20,0x2f,0x2a,0x20,0x5c,0x20,0x2a,0x2f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x5c,0x27,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x31,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x31,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x61,0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0x22,0x2c,0x20,0x22,0x62,0x72,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6b,0x69,0x70,0x20,0x6c,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6e,0x65,0x78,0x74,0x20,0x6c,0x69,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x31,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x32,0x28,0x63,0x68,0x31,0x29,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x74,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x5b,0x70,0x6f,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x31,0x20,0x3e,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x26,0x26,0x20,0x63,0x68,0x31,0x20,0x3c,0x3d,0x20,0x35,0x36,0x33,0x31,0x39,0x20,0x26,0x26,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x32,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x32,0x20,0x3e,0x3d,0x20,0x35,0x36,0x33,0x32,0x30,0x20,0x26,0x26,0x20,0x63,0x68,0x32,0x20,0x3c,0x3d,0x20,0x35,0x37,0x33,0x34,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x74,0x72,0x20,0x2b,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x5b,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x72,0x69,0x67,0x53,0x74,0x72,0x20,0x3d,0x20,0x22,0x5c,0x5c,0x22,0x20,0x2b,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x5f,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x31,0x20,0x3c,0x20,0x32,0x35,0x36,0x20,0x26,0x26,0x20,0x45,0x53,0x43,0x41,0x50,0x45,0x44,0x5b,0x63,0x68,0x31,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x53,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6f,0x72,0x69,0x67,0x53,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x6f,0x72,0x69,0x67,0x53,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x65,0x73,0x63,0x61,0x70,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x63,0x61,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x53,0x63,0x61,0x6e,0x6e,0x65,0x64,0x20,0x26,0x26,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x5d,0x20,0x7c,0x7c,0x20,0x30,0x29,0x20,0x3c,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x2b,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x63,0x68,0x65,0x2c,0x20,0x73,0x63,0x61,0x6e,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x20,0x28,0x6f,0x72,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x69,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x28,0x6d,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x60,0x22,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x29,0x29,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x63,0x61,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x36,0x20,0x2f,0x2a,0x20,0x60,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x20,0x2d,0x20,0x6d,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x6f,0x73,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x75,0x6e,0x64,0x20,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x63,0x6f,0x64,0x65,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x63,0x6f,0x64,0x65,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x72,0x74,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x6e,0x2f,0x67,0x2c,0x20,0x22,0x20,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x20,0x28,0x2e,0x2b,0x29,0x20,0x24,0x2f,0x2c,0x20,0x22,0x24,0x31,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x45,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6f,0x6d,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2c,0x20,0x70,0x75,0x74,0x20,0x69,0x74,0x20,0x69,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x61,0x73,0x20,0x75,0x70,0x70,0x65,0x72,0x20,0x6c,0x69,0x6d,0x69,0x74,0x20,0x6f,0x66,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x5b,0x63,0x6c,0x6f,0x73,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x5d,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x63,0x61,0x6e,0x6e,0x65,0x64,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x2c,0x20,0x64,0x69,0x64,0x6e,0x27,0x74,0x20,0x66,0x69,0x6e,0x64,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x53,0x63,0x61,0x6e,0x6e,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x2b,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x7e,0x7e,0x73,0x74,0x72,0x69,0x6b,0x65,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x7e,0x7e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x73,0x65,0x72,0x74,0x20,0x65,0x61,0x63,0x68,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x61,0x73,0x20,0x61,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x61,0x6e,0x64,0x20,0x61,0x64,0x64,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x24,0x31,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6c,0x65,0x6e,0x2c,0x20,0x63,0x68,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x36,0x20,0x2f,0x2a,0x20,0x7e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x63,0x61,0x6e,0x44,0x65,0x6c,0x69,0x6d,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x20,0x3c,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x20,0x25,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x20,0x2b,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x68,0x20,0x2b,0x20,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x3a,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x22,0x72,0x75,0x6c,0x65,0x20,0x6f,0x66,0x20,0x33,0x22,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x20,0x6d,0x65,0x61,0x6e,0x74,0x20,0x66,0x6f,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3a,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x3a,0x20,0x2d,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x3a,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x24,0x31,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x6a,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2c,0x20,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x6e,0x65,0x4d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x36,0x20,0x2f,0x2a,0x20,0x7e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x73,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x20,0x3d,0x20,0x22,0x73,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x7e,0x7e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x73,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x20,0x3d,0x20,0x22,0x73,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x7e,0x7e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x7e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6e,0x65,0x4d,0x61,0x72,0x6b,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x61,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x68,0x61,0x73,0x20,0x61,0x6e,0x20,0x6f,0x64,0x64,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x2c,0x20,0x69,0x74,0x27,0x73,0x20,0x73,0x70,0x6c,0x69,0x74,0x74,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x6b,0x65,0x20,0x74,0x68,0x69,0x73,0x3a,0x20,0x60,0x7e,0x7e,0x7e,0x7e,0x7e,0x60,0x20,0x2d,0x3e,0x20,0x60,0x7e,0x60,0x20,0x2b,0x20,0x60,0x7e,0x7e,0x60,0x20,0x2b,0x20,0x60,0x7e,0x7e,0x60,0x2c,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6f,0x2c,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x6d,0x6f,0x76,0x65,0x20,0x61,0x6c,0x6c,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x73,0x75,0x62,0x73,0x65,0x71,0x75,0x65,0x6e,0x74,0x20,0x73,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x20,0x74,0x61,0x67,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6c,0x6f,0x6e,0x65,0x4d,0x61,0x72,0x6b,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x3d,0x20,0x6c,0x6f,0x6e,0x65,0x4d,0x61,0x72,0x6b,0x65,0x72,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x20,0x3d,0x20,0x69,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6a,0x20,0x3c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x21,0x3d,0x3d,0x20,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6a,0x5d,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x57,0x61,0x6c,0x6b,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6c,0x69,0x73,0x74,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x61,0x67,0x73,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x31,0x24,0x31,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x75,0x72,0x72,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x24,0x31,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x75,0x72,0x72,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x75,0x72,0x72,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x24,0x31,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x3a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x24,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x3a,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x31,0x24,0x31,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x2a,0x74,0x68,0x69,0x73,0x2a,0x20,0x61,0x6e,0x64,0x20,0x5f,0x74,0x68,0x61,0x74,0x5f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x73,0x65,0x72,0x74,0x20,0x65,0x61,0x63,0x68,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x61,0x73,0x20,0x61,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x61,0x6e,0x64,0x20,0x61,0x64,0x64,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x39,0x35,0x20,0x2f,0x2a,0x20,0x5f,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x32,0x20,0x2f,0x2a,0x20,0x2a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x63,0x61,0x6e,0x44,0x65,0x6c,0x69,0x6d,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x61,0x72,0x20,0x63,0x6f,0x64,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x28,0x6e,0x75,0x6d,0x62,0x65,0x72,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x3a,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x6f,0x74,0x61,0x6c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x65,0x72,0x69,0x65,0x73,0x20,0x6f,0x66,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x63,0x6f,0x72,0x72,0x65,0x73,0x70,0x6f,0x6e,0x64,0x73,0x20,0x74,0x6f,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3a,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x69,0x73,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x61,0x73,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2c,0x20,0x60,0x65,0x6e,0x64,0x60,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x71,0x75,0x61,0x6c,0x20,0x74,0x6f,0x20,0x69,0x74,0x73,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6f,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x60,0x2d,0x31,0x60,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x3a,0x20,0x2d,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x20,0x66,0x6c,0x61,0x67,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x6f,0x70,0x65,0x6e,0x20,0x6f,0x72,0x20,0x63,0x6c,0x6f,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x3a,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x73,0x63,0x61,0x6e,0x6e,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2c,0x20,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x63,0x68,0x2c,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x6d,0x61,0x78,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x39,0x35,0x20,0x2f,0x2a,0x20,0x5f,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x34,0x32,0x20,0x2f,0x2a,0x20,0x2a,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x61,0x6e,0x64,0x20,0x69,0x73,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x6f,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x65,0x72,0x67,0x65,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x69,0x6e,0x74,0x6f,0x20,0x6f,0x6e,0x65,0x20,0x73,0x74,0x72,0x6f,0x6e,0x67,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x3c,0x65,0x6d,0x3e,0x3c,0x65,0x6d,0x3e,0x77,0x68,0x61,0x74,0x65,0x76,0x65,0x72,0x3c,0x2f,0x65,0x6d,0x3e,0x3c,0x2f,0x65,0x6d,0x3e,0x60,0x20,0x2d,0x3e,0x20,0x60,0x3c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x77,0x68,0x61,0x74,0x65,0x76,0x65,0x72,0x3c,0x2f,0x73,0x74,0x72,0x6f,0x6e,0x67,0x3e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3d,0x20,0x69,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x20,0x2b,0x20,0x31,0x20,0x26,0x26,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x68,0x61,0x74,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x74,0x77,0x6f,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x6e,0x64,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x26,0x26,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x2d,0x20,0x31,0x20,0x26,0x26,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x68,0x61,0x74,0x20,0x6c,0x61,0x73,0x74,0x20,0x74,0x77,0x6f,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x61,0x72,0x65,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x20,0x28,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x73,0x61,0x66,0x65,0x6c,0x79,0x20,0x61,0x73,0x73,0x75,0x6d,0x65,0x20,0x74,0x68,0x65,0x79,0x20,0x6d,0x61,0x74,0x63,0x68,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3f,0x20,0x22,0x73,0x74,0x72,0x6f,0x6e,0x67,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x20,0x3a,0x20,0x22,0x65,0x6d,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3f,0x20,0x22,0x73,0x74,0x72,0x6f,0x6e,0x67,0x22,0x20,0x3a,0x20,0x22,0x65,0x6d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3f,0x20,0x63,0x68,0x20,0x2b,0x20,0x63,0x68,0x20,0x3a,0x20,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x65,0x6e,0x64,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3f,0x20,0x22,0x73,0x74,0x72,0x6f,0x6e,0x67,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x20,0x3a,0x20,0x22,0x65,0x6d,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x74,0x61,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3f,0x20,0x22,0x73,0x74,0x72,0x6f,0x6e,0x67,0x22,0x20,0x3a,0x20,0x22,0x65,0x6d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x20,0x3f,0x20,0x63,0x68,0x20,0x2b,0x20,0x63,0x68,0x20,0x3a,0x20,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x6f,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x73,0x74,0x61,0x72,0x74,0x44,0x65,0x6c,0x69,0x6d,0x2e,0x65,0x6e,0x64,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x57,0x61,0x6c,0x6b,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6c,0x69,0x73,0x74,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x61,0x67,0x73,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x31,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x75,0x72,0x72,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x75,0x72,0x72,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x75,0x72,0x72,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x3a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x3a,0x20,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x31,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x72,0x65,0x73,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x69,0x6e,0x64,0x20,0x27,0x5d,0x27,0x2c,0x20,0x73,0x6f,0x20,0x69,0x74,0x27,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x30,0x20,0x2f,0x2a,0x20,0x28,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x73,0x68,0x6f,0x72,0x74,0x63,0x75,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x72,0x65,0x73,0x2e,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x68,0x72,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x74,0x69,0x74,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x21,0x3d,0x3d,0x20,0x70,0x6f,0x73,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x24,0x31,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x20,0x7c,0x7c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x34,0x31,0x20,0x2f,0x2a,0x20,0x29,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x73,0x68,0x6f,0x72,0x74,0x63,0x75,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x2c,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x6f,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x76,0x65,0x72,0x73,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x27,0x20,0x61,0x6e,0x64,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x64,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x72,0x74,0x63,0x75,0x74,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x69,0x76,0x65,0x6c,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x61,0x62,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x24,0x31,0x28,0x6c,0x61,0x62,0x65,0x6c,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x72,0x65,0x66,0x2e,0x68,0x72,0x65,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x72,0x65,0x66,0x2e,0x74,0x69,0x74,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x61,0x6e,0x64,0x20,0x6b,0x6e,0x6f,0x77,0x20,0x66,0x6f,0x72,0x20,0x61,0x20,0x66,0x61,0x63,0x74,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x61,0x6c,0x6c,0x20,0x74,0x68,0x61,0x74,0x27,0x73,0x20,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x20,0x64,0x6f,0x20,0x69,0x73,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x68,0x72,0x65,0x66,0x22,0x2c,0x20,0x68,0x72,0x65,0x66,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x74,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x2c,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x20,0x3d,0x20,0x6d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6d,0x61,0x67,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x72,0x65,0x73,0x2c,0x20,0x74,0x69,0x74,0x6c,0x65,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x33,0x33,0x20,0x2f,0x2a,0x20,0x21,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x20,0x21,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x69,0x6e,0x64,0x20,0x27,0x5d,0x27,0x2c,0x20,0x73,0x6f,0x20,0x69,0x74,0x27,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x30,0x20,0x2f,0x2a,0x20,0x28,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x64,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x44,0x65,0x73,0x74,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x72,0x65,0x73,0x2e,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x68,0x72,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x74,0x69,0x74,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x69,0x74,0x6c,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x21,0x3d,0x3d,0x20,0x70,0x6f,0x73,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x2e,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x5d,0x28,0x20,0x20,0x3c,0x68,0x72,0x65,0x66,0x3e,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5e,0x5e,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x20,0x7c,0x7c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x34,0x31,0x20,0x2f,0x2a,0x20,0x29,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x31,0x20,0x2f,0x2a,0x20,0x5b,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4c,0x69,0x6e,0x6b,0x4c,0x61,0x62,0x65,0x6c,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x76,0x65,0x72,0x73,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x27,0x20,0x61,0x6e,0x64,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x64,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x72,0x74,0x63,0x75,0x74,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x69,0x76,0x65,0x6c,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x61,0x62,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2e,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x73,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x28,0x6c,0x61,0x62,0x65,0x6c,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x72,0x65,0x66,0x2e,0x68,0x72,0x65,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x3d,0x20,0x72,0x65,0x66,0x2e,0x74,0x69,0x74,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x61,0x6e,0x64,0x20,0x6b,0x6e,0x6f,0x77,0x20,0x66,0x6f,0x72,0x20,0x61,0x20,0x66,0x61,0x63,0x74,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x61,0x6c,0x6c,0x20,0x74,0x68,0x61,0x74,0x27,0x73,0x20,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x20,0x64,0x6f,0x20,0x69,0x73,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6c,0x61,0x62,0x65,0x6c,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x6c,0x61,0x62,0x65,0x6c,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x65,0x6e,0x76,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x20,0x22,0x69,0x6d,0x67,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x73,0x72,0x63,0x22,0x2c,0x20,0x68,0x72,0x65,0x66,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x61,0x6c,0x74,0x22,0x2c,0x20,0x22,0x22,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x74,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x2c,0x20,0x74,0x69,0x74,0x6c,0x65,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x20,0x3d,0x20,0x6d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x27,0x3c,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x3a,0x2e,0x2e,0x2e,0x3e,0x27,0x0a,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x6d,0x61,0x78,0x2d,0x6c,0x65,0x6e,0x3a,0x30,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x45,0x4d,0x41,0x49,0x4c,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x2e,0x21,0x23,0x24,0x25,0x26,0x27,0x2a,0x2b,0x5c,0x2f,0x3d,0x3f,0x5e,0x5f,0x60,0x7b,0x7c,0x7d,0x7e,0x2d,0x5d,0x2b,0x40,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x5d,0x28,0x3f,0x3a,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x2d,0x5d,0x7b,0x30,0x2c,0x36,0x31,0x7d,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x5d,0x29,0x3f,0x28,0x3f,0x3a,0x5c,0x2e,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x5d,0x28,0x3f,0x3a,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x2d,0x5d,0x7b,0x30,0x2c,0x36,0x31,0x7d,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x5d,0x29,0x3f,0x29,0x2a,0x29,0x24,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x41,0x55,0x54,0x4f,0x4c,0x49,0x4e,0x4b,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x5d,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x2b,0x2e,0x5c,0x2d,0x5d,0x7b,0x31,0x2c,0x33,0x31,0x7d,0x29,0x3a,0x28,0x5b,0x5e,0x3c,0x3e,0x5c,0x78,0x30,0x30,0x2d,0x5c,0x78,0x32,0x30,0x5d,0x2a,0x29,0x24,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x72,0x6c,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x63,0x68,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x3b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2b,0x2b,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x2f,0x2a,0x20,0x3e,0x20,0x2a,0x2f,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x31,0x2c,0x20,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x41,0x55,0x54,0x4f,0x4c,0x49,0x4e,0x4b,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x75,0x72,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x68,0x72,0x65,0x66,0x22,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x45,0x4d,0x41,0x49,0x4c,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x75,0x72,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x20,0x2b,0x20,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x68,0x72,0x65,0x66,0x22,0x2c,0x20,0x66,0x75,0x6c,0x6c,0x55,0x72,0x6c,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x6c,0x69,0x6e,0x6b,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x22,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x20,0x3d,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x72,0x65,0x2e,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x4f,0x70,0x65,0x6e,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2f,0x5e,0x3c,0x61,0x5b,0x3e,0x5c,0x73,0x5d,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x43,0x6c,0x6f,0x73,0x65,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2f,0x5e,0x3c,0x5c,0x2f,0x61,0x5c,0x73,0x2a,0x3e,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4c,0x65,0x74,0x74,0x65,0x72,0x28,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x20,0x6e,0x6f,0x2d,0x62,0x69,0x74,0x77,0x69,0x73,0x65,0x3a,0x30,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x63,0x20,0x3d,0x20,0x63,0x68,0x20,0x7c,0x20,0x33,0x32,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x77,0x65,0x72,0x20,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x63,0x20,0x3e,0x3d,0x20,0x39,0x37,0x20,0x2f,0x2a,0x20,0x61,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6c,0x63,0x20,0x3c,0x3d,0x20,0x31,0x32,0x32,0x20,0x2f,0x2a,0x20,0x7a,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x6d,0x61,0x78,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x68,0x65,0x63,0x6b,0x20,0x73,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x36,0x30,0x20,0x2f,0x2a,0x20,0x3c,0x20,0x2a,0x2f,0x20,0x7c,0x7c,0x20,0x70,0x6f,0x73,0x20,0x2b,0x20,0x32,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x51,0x75,0x69,0x63,0x6b,0x20,0x66,0x61,0x69,0x6c,0x20,0x6f,0x6e,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x63,0x68,0x61,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x33,0x33,0x20,0x2f,0x2a,0x20,0x21,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x36,0x33,0x20,0x2f,0x2a,0x20,0x3f,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x63,0x68,0x20,0x21,0x3d,0x3d,0x20,0x34,0x37,0x20,0x2f,0x2a,0x20,0x2f,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4c,0x65,0x74,0x74,0x65,0x72,0x28,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x5f,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x4f,0x70,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x69,0x6e,0x6b,0x43,0x6c,0x6f,0x73,0x65,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x61,0x73,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x68,0x61,0x73,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x44,0x49,0x47,0x49,0x54,0x41,0x4c,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x26,0x23,0x28,0x28,0x3f,0x3a,0x78,0x5b,0x61,0x2d,0x66,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x36,0x7d,0x7c,0x5b,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x37,0x7d,0x29,0x29,0x3b,0x2f,0x69,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x4e,0x41,0x4d,0x45,0x44,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x26,0x28,0x5b,0x61,0x2d,0x7a,0x5d,0x5b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x33,0x31,0x7d,0x29,0x3b,0x2f,0x69,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6e,0x74,0x69,0x74,0x79,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x74,0x69,0x74,0x79,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x20,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x21,0x3d,0x3d,0x20,0x33,0x38,0x20,0x2f,0x2a,0x20,0x26,0x20,0x2a,0x2f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x35,0x20,0x2f,0x2a,0x20,0x23,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x44,0x49,0x47,0x49,0x54,0x41,0x4c,0x5f,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x5b,0x30,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x78,0x22,0x20,0x3f,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x20,0x31,0x36,0x29,0x20,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x2c,0x20,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x5f,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x45,0x6e,0x74,0x69,0x74,0x79,0x43,0x6f,0x64,0x65,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x3f,0x20,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x28,0x63,0x6f,0x64,0x65,0x29,0x20,0x3a,0x20,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x28,0x36,0x35,0x35,0x33,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x65,0x6e,0x74,0x69,0x74,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x4e,0x41,0x4d,0x45,0x44,0x5f,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x28,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x2c,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6c,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x74,0x65,0x78,0x74,0x5f,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x5b,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x22,0x65,0x6e,0x74,0x69,0x74,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x65,0x61,0x63,0x68,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x66,0x69,0x6e,0x64,0x20,0x61,0x20,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2c,0x20,0x6d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x2c,0x20,0x6e,0x65,0x77,0x4d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x2c,0x20,0x69,0x73,0x4f,0x64,0x64,0x4d,0x61,0x74,0x63,0x68,0x2c,0x20,0x6c,0x61,0x73,0x74,0x4a,0x75,0x6d,0x70,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x73,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x49,0x64,0x78,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x28,0x77,0x68,0x65,0x72,0x65,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x20,0x69,0x73,0x29,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x72,0x75,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x61,0x73,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x49,0x64,0x78,0x20,0x3d,0x20,0x2d,0x32,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x61,0x6e,0x79,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6c,0x6f,0x77,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x2d,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6a,0x75,0x6d,0x70,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x75,0x6d,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x62,0x65,0x6c,0x6f,0x6e,0x67,0x20,0x74,0x6f,0x20,0x73,0x61,0x6d,0x65,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x72,0x75,0x6e,0x20,0x69,0x66,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x74,0x68,0x65,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x41,0x4e,0x44,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x61,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x68,0x65,0x61,0x64,0x65,0x72,0x49,0x64,0x78,0x5d,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x7c,0x7c,0x20,0x6c,0x61,0x73,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x49,0x64,0x78,0x20,0x21,0x3d,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x49,0x64,0x78,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x22,0x72,0x75,0x6c,0x65,0x20,0x6f,0x66,0x20,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x6e,0x6f,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x28,0x69,0x6e,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x6f,0x72,0x20,0x33,0x72,0x64,0x20,0x70,0x61,0x72,0x74,0x79,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x30,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x6c,0x79,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x64,0x20,0x6c,0x6f,0x77,0x65,0x72,0x20,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x28,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x66,0x61,0x69,0x6c,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x65,0x61,0x63,0x68,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x20,0x65,0x61,0x63,0x68,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x6f,0x20,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x66,0x6f,0x72,0x20,0x77,0x68,0x65,0x74,0x68,0x65,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2f,0x63,0x6d,0x61,0x72,0x6b,0x2f,0x63,0x6f,0x6d,0x6d,0x69,0x74,0x2f,0x33,0x34,0x32,0x35,0x30,0x65,0x31,0x32,0x63,0x63,0x65,0x62,0x64,0x63,0x36,0x33,0x37,0x32,0x62,0x38,0x62,0x34,0x39,0x63,0x34,0x34,0x66,0x61,0x62,0x35,0x37,0x63,0x37,0x32,0x34,0x34,0x33,0x34,0x36,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x65,0x6e,0x65,0x72,0x73,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x73,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x5b,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x5d,0x20,0x3d,0x20,0x5b,0x20,0x2d,0x31,0x2c,0x20,0x2d,0x31,0x2c,0x20,0x2d,0x31,0x2c,0x20,0x2d,0x31,0x2c,0x20,0x2d,0x31,0x2c,0x20,0x2d,0x31,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x73,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x5b,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x5d,0x5b,0x28,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x20,0x3f,0x20,0x33,0x20,0x3a,0x20,0x30,0x29,0x20,0x2b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x25,0x20,0x33,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x49,0x64,0x78,0x20,0x2d,0x20,0x6a,0x75,0x6d,0x70,0x73,0x5b,0x68,0x65,0x61,0x64,0x65,0x72,0x49,0x64,0x78,0x5d,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x4d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x3e,0x20,0x6d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x3b,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x2d,0x3d,0x20,0x6a,0x75,0x6d,0x70,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x5d,0x20,0x2b,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x21,0x3d,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x20,0x26,0x26,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x65,0x6e,0x64,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4f,0x64,0x64,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x72,0x6f,0x6d,0x20,0x73,0x70,0x65,0x63,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x6f,0x6e,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x6f,0x74,0x68,0x20,0x6f,0x70,0x65,0x6e,0x20,0x61,0x6e,0x64,0x20,0x63,0x6c,0x6f,0x73,0x65,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x75,0x6d,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x72,0x75,0x6e,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x61,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x6d,0x75,0x73,0x74,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x6f,0x66,0x20,0x33,0x20,0x75,0x6e,0x6c,0x65,0x73,0x73,0x20,0x62,0x6f,0x74,0x68,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x72,0x65,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x73,0x20,0x6f,0x66,0x20,0x33,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x25,0x20,0x33,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x25,0x20,0x33,0x20,0x21,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x25,0x20,0x33,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4f,0x64,0x64,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4f,0x64,0x64,0x4d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2c,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x73,0x61,0x66,0x65,0x6c,0x79,0x20,0x73,0x6b,0x69,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x74,0x69,0x72,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x69,0x6e,0x20,0x66,0x75,0x74,0x75,0x72,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x75,0x72,0x65,0x20,0x61,0x6c,0x67,0x6f,0x72,0x69,0x74,0x68,0x6d,0x20,0x68,0x61,0x73,0x20,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,0x69,0x74,0x79,0x20,0x28,0x73,0x65,0x65,0x20,0x2a,0x5f,0x2a,0x5f,0x2a,0x5f,0x2a,0x5f,0x2a,0x5f,0x2e,0x2e,0x2e,0x20,0x63,0x61,0x73,0x65,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x4a,0x75,0x6d,0x70,0x20,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x21,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x6f,0x70,0x65,0x6e,0x20,0x3f,0x20,0x6a,0x75,0x6d,0x70,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x2d,0x20,0x31,0x5d,0x20,0x2b,0x20,0x31,0x20,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x75,0x6d,0x70,0x73,0x5b,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x5d,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x20,0x2d,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x2b,0x20,0x6c,0x61,0x73,0x74,0x4a,0x75,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x75,0x6d,0x70,0x73,0x5b,0x6f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x5d,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x4a,0x75,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x72,0x49,0x64,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x4d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x65,0x61,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x61,0x73,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x73,0x20,0x73,0x6b,0x69,0x70,0x73,0x20,0x69,0x6e,0x20,0x2a,0x2a,0x3c,0x2e,0x2e,0x2e,0x3e,0x2a,0x2a,0x61,0x2a,0x2a,0x3c,0x2e,0x2e,0x2e,0x3e,0x2a,0x2a,0x20,0x70,0x61,0x74,0x68,0x6f,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x20,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x49,0x64,0x78,0x20,0x3d,0x20,0x2d,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x4d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x72,0x75,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x2c,0x20,0x77,0x65,0x20,0x77,0x61,0x6e,0x74,0x20,0x74,0x6f,0x20,0x73,0x65,0x74,0x20,0x6c,0x6f,0x77,0x65,0x72,0x20,0x62,0x6f,0x75,0x6e,0x64,0x20,0x66,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x75,0x74,0x75,0x72,0x65,0x20,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x61,0x6c,0x67,0x6f,0x72,0x69,0x74,0x68,0x6d,0x20,0x68,0x61,0x73,0x20,0x6c,0x69,0x6e,0x65,0x61,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,0x69,0x74,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x65,0x65,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x68,0x65,0x72,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2f,0x63,0x6d,0x61,0x72,0x6b,0x2f,0x69,0x73,0x73,0x75,0x65,0x73,0x2f,0x31,0x37,0x38,0x23,0x69,0x73,0x73,0x75,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2d,0x32,0x37,0x30,0x34,0x31,0x37,0x34,0x34,0x32,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x65,0x72,0x73,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x5b,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x65,0x72,0x5d,0x5b,0x28,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x20,0x3f,0x20,0x33,0x20,0x3a,0x20,0x30,0x29,0x20,0x2b,0x20,0x28,0x63,0x6c,0x6f,0x73,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x30,0x29,0x20,0x25,0x20,0x33,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x77,0x4d,0x69,0x6e,0x4f,0x70,0x65,0x6e,0x65,0x72,0x49,0x64,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x5f,0x70,0x61,0x69,0x72,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x5f,0x70,0x61,0x69,0x72,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x75,0x72,0x72,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x75,0x72,0x72,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x75,0x72,0x72,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x20,0x75,0x70,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x20,0x61,0x6e,0x64,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x70,0x6f,0x73,0x74,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x3a,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5f,0x6a,0x6f,0x69,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5f,0x6a,0x6f,0x69,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x75,0x72,0x72,0x2c,0x20,0x6c,0x61,0x73,0x74,0x2c,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x2c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x30,0x3b,0x20,0x63,0x75,0x72,0x72,0x20,0x3c,0x20,0x6d,0x61,0x78,0x3b,0x20,0x63,0x75,0x72,0x72,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x2d,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x20,0x6c,0x65,0x76,0x65,0x6c,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2f,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x74,0x75,0x72,0x6e,0x73,0x20,0x73,0x6f,0x6d,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x74,0x6f,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x2f,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3c,0x20,0x30,0x29,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x74,0x77,0x6f,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x20,0x74,0x65,0x78,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x61,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6c,0x61,0x73,0x74,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x63,0x75,0x72,0x72,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x61,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x74,0x61,0x74,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x20,0x3d,0x20,0x73,0x72,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x76,0x20,0x3d,0x20,0x65,0x6e,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x64,0x20,0x3d,0x20,0x6d,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x3d,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x6f,0x72,0x65,0x73,0x20,0x7b,0x20,0x73,0x74,0x61,0x72,0x74,0x3a,0x20,0x65,0x6e,0x64,0x20,0x7d,0x20,0x70,0x61,0x69,0x72,0x73,0x2e,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x74,0x72,0x61,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x70,0x61,0x69,0x72,0x73,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x28,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2c,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x73,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x66,0x6f,0x72,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x63,0x6b,0x20,0x6f,0x66,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x6c,0x69,0x73,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x75,0x70,0x70,0x65,0x72,0x20,0x6c,0x65,0x76,0x65,0x6c,0x20,0x74,0x61,0x67,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x65,0x76,0x5f,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3e,0x20,0x6c,0x61,0x73,0x74,0x20,0x73,0x65,0x65,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x53,0x63,0x61,0x6e,0x6e,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2d,0x69,0x74,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x3c,0x61,0x3e,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x6b,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6c,0x75,0x73,0x68,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x75,0x73,0x68,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x28,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x22,0x22,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x75,0x73,0x68,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x74,0x6f,0x20,0x22,0x73,0x74,0x72,0x65,0x61,0x6d,0x22,0x2e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x74,0x65,0x78,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x20,0x2d,0x20,0x66,0x6c,0x75,0x73,0x68,0x20,0x69,0x74,0x20,0x61,0x73,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x75,0x73,0x68,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x75,0x73,0x68,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x5f,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x65,0x76,0x5f,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x74,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x65,0x76,0x5f,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x5f,0x6d,0x65,0x74,0x61,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4c,0x65,0x76,0x65,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5f,0x6d,0x65,0x74,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x5f,0x6d,0x65,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x24,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x63,0x61,0x6e,0x20,0x61,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x77,0x68,0x65,0x74,0x68,0x65,0x72,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x20,0x63,0x61,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x6f,0x72,0x20,0x65,0x6e,0x64,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x73,0x63,0x61,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x20,0x28,0x69,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x61,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x20,0x2d,0x20,0x63,0x61,0x6e,0x53,0x70,0x6c,0x69,0x74,0x57,0x6f,0x72,0x64,0x20,0x2d,0x20,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x61,0x20,0x77,0x6f,0x72,0x64,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x63,0x61,0x6e,0x44,0x65,0x6c,0x69,0x6d,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x63,0x61,0x6e,0x53,0x70,0x6c,0x69,0x74,0x57,0x6f,0x72,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x2c,0x20,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x2c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x2c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x2c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x2c,0x20,0x6c,0x65,0x66,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6d,0x61,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x65,0x61,0x74,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x20,0x61,0x73,0x20,0x61,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x31,0x29,0x20,0x3a,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x2d,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x65,0x61,0x74,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6e,0x65,0x20,0x61,0x73,0x20,0x61,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x70,0x6f,0x73,0x20,0x3c,0x20,0x6d,0x61,0x78,0x20,0x3f,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x72,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x70,0x6f,0x73,0x29,0x20,0x3a,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x20,0x3d,0x20,0x69,0x73,0x4d,0x64,0x41,0x73,0x63,0x69,0x69,0x50,0x75,0x6e,0x63,0x74,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x28,0x6c,0x61,0x73,0x74,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x66,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x61,0x73,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x69,0x73,0x4e,0x65,0x78,0x74,0x57,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x61,0x6e,0x53,0x70,0x6c,0x69,0x74,0x57,0x6f,0x72,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x6c,0x65,0x66,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x28,0x21,0x72,0x69,0x67,0x68,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4c,0x61,0x73,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x72,0x69,0x67,0x68,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x28,0x21,0x6c,0x65,0x66,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4e,0x65,0x78,0x74,0x50,0x75,0x6e,0x63,0x74,0x43,0x68,0x61,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x6c,0x65,0x66,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x72,0x69,0x67,0x68,0x74,0x5f,0x66,0x6c,0x61,0x6e,0x6b,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x3a,0x20,0x63,0x61,0x6e,0x5f,0x6f,0x70,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x20,0x63,0x61,0x6e,0x5f,0x63,0x6c,0x6f,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x63,0x6f,0x75,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x2d,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x69,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x53,0x74,0x61,0x74,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x20,0x74,0x65,0x78,0x74,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x22,0x2c,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x65,0x73,0x63,0x61,0x70,0x65,0x22,0x2c,0x20,0x5f,0x65,0x73,0x63,0x61,0x70,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x22,0x2c,0x20,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x22,0x2c,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x22,0x2c,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x20,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x65,0x6e,0x74,0x69,0x74,0x79,0x22,0x2c,0x20,0x65,0x6e,0x74,0x69,0x74,0x79,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x72,0x75,0x6c,0x65,0x32,0x60,0x20,0x72,0x75,0x6c,0x65,0x73,0x65,0x74,0x20,0x77,0x61,0x73,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2f,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x70,0x6f,0x73,0x74,0x2d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x79,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x66,0x75,0x74,0x75,0x72,0x65,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x66,0x6f,0x72,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x70,0x61,0x69,0x72,0x73,0x20,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x20,0x77,0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x60,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x5f,0x70,0x61,0x69,0x72,0x73,0x60,0x29,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x32,0x20,0x3d,0x20,0x5b,0x20,0x5b,0x20,0x22,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x5f,0x70,0x61,0x69,0x72,0x73,0x22,0x2c,0x20,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x5f,0x70,0x61,0x69,0x72,0x73,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x22,0x2c,0x20,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x2e,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x5d,0x2c,0x20,0x5b,0x20,0x22,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x22,0x2c,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2e,0x70,0x6f,0x73,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x5d,0x2c,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x70,0x61,0x69,0x72,0x73,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x27,0x2a,0x2a,0x27,0x20,0x69,0x6e,0x74,0x6f,0x20,0x69,0x74,0x73,0x20,0x6f,0x77,0x6e,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x6d,0x61,0x79,0x20,0x62,0x65,0x20,0x6c,0x65,0x66,0x74,0x20,0x75,0x6e,0x75,0x73,0x65,0x64,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x75,0x6c,0x65,0x20,0x62,0x65,0x6c,0x6f,0x77,0x20,0x6d,0x65,0x72,0x67,0x65,0x73,0x20,0x75,0x6e,0x75,0x73,0x65,0x64,0x20,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x5b,0x20,0x22,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5f,0x6a,0x6f,0x69,0x6e,0x22,0x2c,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5f,0x6a,0x6f,0x69,0x6e,0x20,0x5d,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x29,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x23,0x72,0x75,0x6c,0x65,0x72,0x20,0x2d,0x3e,0x20,0x52,0x75,0x6c,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x5d,0x5d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x20,0x4b,0x65,0x65,0x70,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x23,0x72,0x75,0x6c,0x65,0x72,0x32,0x20,0x2d,0x3e,0x20,0x52,0x75,0x6c,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x52,0x75,0x6c,0x65,0x72,0x5d,0x5d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x20,0x53,0x65,0x63,0x6f,0x6e,0x64,0x20,0x72,0x75,0x6c,0x65,0x72,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x70,0x6f,0x73,0x74,0x2d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x28,0x65,0x2e,0x67,0x2e,0x20,0x69,0x6e,0x20,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x29,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x32,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x32,0x2e,0x70,0x75,0x73,0x68,0x28,0x5f,0x72,0x75,0x6c,0x65,0x73,0x32,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x2c,0x20,0x5f,0x72,0x75,0x6c,0x65,0x73,0x32,0x5b,0x69,0x5d,0x5b,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x6b,0x69,0x70,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x62,0x79,0x20,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x61,0x6c,0x6c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x69,0x66,0x20,0x61,0x6e,0x79,0x20,0x72,0x75,0x6c,0x65,0x20,0x72,0x65,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6b,0x69,0x70,0x54,0x6f,0x6b,0x65,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x6b,0x2c,0x20,0x69,0x2c,0x20,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x22,0x29,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x70,0x6f,0x73,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x70,0x6f,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3c,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x61,0x6e,0x64,0x20,0x64,0x65,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x20,0x69,0x74,0x20,0x6c,0x61,0x74,0x65,0x72,0x20,0x74,0x6f,0x20,0x6c,0x69,0x6d,0x69,0x74,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x74,0x27,0x73,0x20,0x68,0x61,0x72,0x6d,0x6c,0x65,0x73,0x73,0x20,0x74,0x6f,0x20,0x64,0x6f,0x20,0x68,0x65,0x72,0x65,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x6e,0x6f,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x61,0x72,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x2e,0x20,0x42,0x75,0x74,0x20,0x69,0x64,0x65,0x61,0x6c,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x27,0x64,0x20,0x6e,0x65,0x65,0x64,0x20,0x61,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x75,0x72,0x70,0x6f,0x73,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6b,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x69,0x64,0x6e,0x27,0x74,0x20,0x69,0x6e,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x6f,0x6f,0x20,0x6d,0x75,0x63,0x68,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x6a,0x75,0x73,0x74,0x20,0x73,0x6b,0x69,0x70,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x4f,0x54,0x45,0x3a,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x68,0x61,0x76,0x65,0x20,0x69,0x6e,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x69,0x6e,0x67,0x20,0x63,0x61,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x65,0x6e,0x20,0x61,0x6e,0x20,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x6f,0x66,0x20,0x60,0x5b,0x60,0x20,0x69,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x65,0x71,0x75,0x61,0x6c,0x20,0x74,0x6f,0x20,0x60,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x2b,0x20,0x31,0x60,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x66,0x6f,0x6f,0x5d,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x6f,0x72,0x6b,0x61,0x72,0x6f,0x75,0x6e,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x43,0x4d,0x20,0x73,0x74,0x61,0x6e,0x64,0x61,0x72,0x64,0x20,0x77,0x69,0x6c,0x6c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x69,0x74,0x20,0x62,0x79,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x70,0x6f,0x73,0x5d,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x66,0x6f,0x72,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x72,0x61,0x6e,0x67,0x65,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x6b,0x2c,0x20,0x69,0x2c,0x20,0x70,0x72,0x65,0x76,0x50,0x6f,0x73,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x22,0x29,0x2c,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x4d,0x61,0x78,0x2c,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x6d,0x64,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x79,0x20,0x61,0x6c,0x6c,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x2c,0x20,0x72,0x75,0x6c,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x60,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x60,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x50,0x6f,0x73,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x6c,0x65,0x76,0x65,0x6c,0x20,0x3c,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6b,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x50,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x69,0x64,0x6e,0x27,0x74,0x20,0x69,0x6e,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x2b,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x73,0x72,0x63,0x5b,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x6f,0x73,0x2b,0x2b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x70,0x75,0x73,0x68,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x73,0x74,0x72,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x61,0x6e,0x64,0x20,0x70,0x75,0x73,0x68,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x60,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x72,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x2c,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x20,0x6c,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x53,0x74,0x61,0x74,0x65,0x28,0x73,0x74,0x72,0x2c,0x20,0x6d,0x64,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x6f,0x75,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x72,0x32,0x2e,0x67,0x65,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x73,0x20,0x3d,0x20,0x6f,0x70,0x74,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x60,0x72,0x65,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x60,0x20,0x74,0x6f,0x20,0x72,0x65,0x64,0x75,0x73,0x65,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x69,0x66,0x69,0x65,0x64,0x20,0x73,0x69,0x7a,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x41,0x6e,0x79,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x33,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x43,0x63,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x32,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x50,0x20,0x3d,0x20,0x72,0x65,0x67,0x65,0x78,0x24,0x34,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5c,0x70,0x7b,0x5c,0x5a,0x5c,0x50,0x5c,0x43,0x63,0x5c,0x43,0x46,0x7d,0x20,0x28,0x77,0x68,0x69,0x74,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x2b,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x2b,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x2b,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x3d,0x20,0x5b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x2c,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x50,0x2c,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x43,0x63,0x20,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x5c,0x70,0x7b,0x5c,0x5a,0x5c,0x43,0x63,0x7d,0x20,0x28,0x77,0x68,0x69,0x74,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x2b,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x3d,0x20,0x5b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x2c,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x43,0x63,0x20,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x2e,0x20,0x4c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x63,0x68,0x61,0x72,0x73,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x6c,0x79,0x20,0x70,0x72,0x6f,0x68,0x69,0x62,0x69,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x63,0x61,0x6e,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x69,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x70,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x65,0x78,0x74,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x20,0x3d,0x20,0x22,0x5b,0x3e,0x3c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x6c,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x77,0x6f,0x72,0x64,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x28,0x65,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x26,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x76,0x69,0x61,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x26,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x74,0x6f,0x20,0x73,0x61,0x76,0x65,0x20,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x73,0x6f,0x6d,0x65,0x74,0x68,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6b,0x65,0x20,0x5c,0x70,0x7b,0x5c,0x4c,0x5c,0x4e,0x5c,0x53,0x5c,0x4d,0x7d,0x20,0x28,0x5c,0x77,0x20,0x62,0x75,0x74,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x60,0x5f,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x41,0x6e,0x79,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x73,0x20,0x61,0x62,0x6f,0x74,0x68,0x65,0x20,0x62,0x75,0x74,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x5b,0x30,0x2d,0x39,0x5d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x61,0x72,0x20,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x5f,0x6e,0x6f,0x6e,0x5f,0x64,0x20,0x3d,0x20,0x27,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x5b,0x30,0x2d,0x39,0x5d,0x7c,0x27,0x20,0x2b,0x20,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x27,0x29,0x27,0x20,0x2b,0x20,0x73,0x72,0x63,0x5f,0x41,0x6e,0x79,0x20,0x2b,0x20,0x27,0x29,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x69,0x70,0x34,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x28,0x32,0x35,0x5b,0x30,0x2d,0x35,0x5d,0x7c,0x32,0x5b,0x30,0x2d,0x34,0x5d,0x5b,0x30,0x2d,0x39,0x5d,0x7c,0x5b,0x30,0x31,0x5d,0x3f,0x5b,0x30,0x2d,0x39,0x5d,0x5b,0x30,0x2d,0x39,0x5d,0x3f,0x29,0x5c,0x5c,0x2e,0x29,0x7b,0x33,0x7d,0x28,0x32,0x35,0x5b,0x30,0x2d,0x35,0x5d,0x7c,0x32,0x5b,0x30,0x2d,0x34,0x5d,0x5b,0x30,0x2d,0x39,0x5d,0x7c,0x5b,0x30,0x31,0x5d,0x3f,0x5b,0x30,0x2d,0x39,0x5d,0x5b,0x30,0x2d,0x39,0x5d,0x3f,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x50,0x72,0x6f,0x68,0x69,0x62,0x69,0x74,0x20,0x61,0x6e,0x79,0x20,0x6f,0x66,0x20,0x22,0x40,0x2f,0x5b,0x5d,0x28,0x29,0x22,0x20,0x69,0x6e,0x20,0x75,0x73,0x65,0x72,0x2f,0x70,0x61,0x73,0x73,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x77,0x72,0x6f,0x6e,0x67,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x66,0x65,0x74,0x63,0x68,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x61,0x75,0x74,0x68,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x40,0x2f,0x5c,0x5c,0x5b,0x5c,0x5c,0x5d,0x28,0x29,0x5d,0x29,0x2e,0x29,0x2b,0x40,0x29,0x3f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x3a,0x28,0x3f,0x3a,0x36,0x28,0x3f,0x3a,0x5b,0x30,0x2d,0x34,0x5d,0x5c,0x5c,0x64,0x7b,0x33,0x7d,0x7c,0x35,0x28,0x3f,0x3a,0x5b,0x30,0x2d,0x34,0x5d,0x5c,0x5c,0x64,0x7b,0x32,0x7d,0x7c,0x35,0x28,0x3f,0x3a,0x5b,0x30,0x2d,0x32,0x5d,0x5c,0x5c,0x64,0x7c,0x33,0x5b,0x30,0x2d,0x35,0x5d,0x29,0x29,0x29,0x7c,0x5b,0x31,0x2d,0x35,0x5d,0x3f,0x5c,0x5c,0x64,0x7b,0x31,0x2c,0x34,0x7d,0x29,0x29,0x3f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3d,0x24,0x7c,0x22,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x22,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x28,0x6f,0x70,0x74,0x73,0x5b,0x22,0x2d,0x2d,0x2d,0x22,0x5d,0x20,0x3f,0x20,0x22,0x2d,0x28,0x3f,0x21,0x2d,0x2d,0x29,0x7c,0x22,0x20,0x3a,0x20,0x22,0x2d,0x7c,0x22,0x29,0x20,0x2b,0x20,0x22,0x5f,0x7c,0x3a,0x5c,0x5c,0x64,0x7c,0x5c,0x5c,0x2e,0x2d,0x7c,0x5c,0x5c,0x2e,0x28,0x3f,0x21,0x24,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x61,0x74,0x68,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x22,0x5b,0x2f,0x3f,0x23,0x5d,0x22,0x20,0x2b,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x22,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x28,0x29,0x5b,0x5c,0x5c,0x5d,0x7b,0x7d,0x2e,0x2c,0x5c,0x22,0x27,0x3f,0x21,0x5c,0x5c,0x2d,0x3b,0x5d,0x29,0x2e,0x7c,0x22,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x5b,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5c,0x5c,0x5d,0x29,0x2e,0x29,0x2a,0x5c,0x5c,0x5d,0x7c,0x22,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x28,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x29,0x5d,0x29,0x2e,0x29,0x2a,0x5c,0x5c,0x29,0x7c,0x22,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x7b,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x7d,0x5d,0x29,0x2e,0x29,0x2a,0x5c,0x5c,0x7d,0x7c,0x22,0x20,0x2b,0x20,0x27,0x5c,0x5c,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x27,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x27,0x7c,0x5b,0x22,0x5d,0x29,0x2e,0x29,0x2b,0x5c,0x5c,0x22,0x7c,0x27,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x27,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x27,0x5d,0x29,0x2e,0x29,0x2b,0x5c,0x5c,0x27,0x7c,0x22,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x27,0x28,0x3f,0x3d,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x2d,0x5d,0x29,0x7c,0x22,0x20,0x2b,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x60,0x49,0x27,0x6d,0x5f,0x6b,0x69,0x6e,0x67,0x60,0x20,0x69,0x66,0x20,0x6e,0x6f,0x20,0x70,0x61,0x69,0x72,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x22,0x5c,0x5c,0x2e,0x7b,0x32,0x2c,0x7d,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x25,0x2f,0x26,0x5d,0x7c,0x22,0x20,0x2b,0x20,0x2f,0x2f,0x20,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x20,0x68,0x61,0x73,0x20,0x6d,0x61,0x6e,0x79,0x20,0x64,0x6f,0x74,0x73,0x20,0x69,0x6e,0x20,0x22,0x67,0x6f,0x6f,0x67,0x6c,0x65,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x22,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x28,0x23,0x36,0x36,0x2c,0x20,0x23,0x38,0x31,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x69,0x74,0x68,0x75,0x62,0x20,0x68,0x61,0x73,0x20,0x2e,0x2e,0x2e,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x6d,0x69,0x74,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x74,0x6f,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x65,0x6e,0x67,0x6c,0x69,0x73,0x68,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6f,0x66,0x20,0x66,0x69,0x6c,0x65,0x20,0x70,0x61,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x6d,0x6f,0x72,0x65,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x22,0x5c,0x5c,0x2e,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x2e,0x5d,0x7c,0x24,0x29,0x7c,0x22,0x20,0x2b,0x20,0x28,0x6f,0x70,0x74,0x73,0x5b,0x22,0x2d,0x2d,0x2d,0x22,0x5d,0x20,0x3f,0x20,0x22,0x5c,0x5c,0x2d,0x28,0x3f,0x21,0x2d,0x2d,0x28,0x3f,0x3a,0x5b,0x5e,0x2d,0x5d,0x7c,0x24,0x29,0x29,0x28,0x3f,0x3a,0x2d,0x2a,0x29,0x7c,0x22,0x20,0x3a,0x20,0x22,0x5c,0x5c,0x2d,0x2b,0x7c,0x22,0x29,0x20,0x2b,0x20,0x22,0x2c,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x24,0x29,0x7c,0x22,0x20,0x2b,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x60,0x2c,0x2c,0x2c,0x60,0x20,0x69,0x6e,0x20,0x70,0x61,0x74,0x68,0x73,0x0a,0x20,0x20,0x20,0x20,0x22,0x3b,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x24,0x29,0x7c,0x22,0x20,0x2b,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x60,0x3b,0x60,0x20,0x69,0x66,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x70,0x61,0x63,0x65,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x63,0x68,0x61,0x72,0x0a,0x20,0x20,0x20,0x20,0x22,0x5c,0x5c,0x21,0x2b,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x21,0x5d,0x7c,0x24,0x29,0x7c,0x22,0x20,0x2b,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x60,0x21,0x21,0x21,0x60,0x20,0x69,0x6e,0x20,0x70,0x61,0x74,0x68,0x73,0x2c,0x20,0x62,0x75,0x74,0x20,0x6e,0x6f,0x74,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x0a,0x20,0x20,0x20,0x20,0x22,0x5c,0x5c,0x3f,0x28,0x3f,0x21,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x5b,0x3f,0x5d,0x7c,0x24,0x29,0x22,0x20,0x2b,0x20,0x22,0x29,0x2b,0x22,0x20,0x2b,0x20,0x22,0x7c,0x5c,0x5c,0x2f,0x22,0x20,0x2b,0x20,0x22,0x29,0x3f,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x6c,0x6f,0x77,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x20,0x69,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x73,0x70,0x65,0x63,0x2c,0x20,0x66,0x6f,0x72,0x62,0x69,0x64,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x28,0x22,0x29,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x65,0x6d,0x61,0x69,0x6c,0x73,0x20,0x65,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x66,0x61,0x72,0x20,0x6d,0x6f,0x72,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x27,0x5b,0x5c,0x5c,0x2d,0x3b,0x3a,0x26,0x3d,0x5c,0x5c,0x2b,0x5c,0x5c,0x24,0x2c,0x5c,0x5c,0x2e,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x5f,0x5d,0x5b,0x5c,0x5c,0x2d,0x3b,0x3a,0x26,0x3d,0x5c,0x5c,0x2b,0x5c,0x5c,0x24,0x2c,0x5c,0x5c,0x22,0x5c,0x5c,0x2e,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x5f,0x5d,0x2a,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x78,0x6e,0x20,0x3d,0x20,0x22,0x78,0x6e,0x2d,0x2d,0x5b,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x5c,0x5c,0x2d,0x5d,0x7b,0x31,0x2c,0x35,0x39,0x7d,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x6f,0x72,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x61,0x64,0x20,0x61,0x62,0x6f,0x75,0x74,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x65,0x72,0x76,0x65,0x72,0x66,0x61,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x73,0x2f,0x36,0x33,0x38,0x32,0x36,0x30,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x5f,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x6c,0x6f,0x77,0x20,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x20,0x26,0x20,0x64,0x69,0x67,0x69,0x74,0x73,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x74,0x65,0x73,0x74,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x78,0x6e,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x2b,0x20,0x22,0x7b,0x31,0x2c,0x36,0x33,0x7d,0x22,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x78,0x6e,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x2b,0x20,0x22,0x28,0x3f,0x3a,0x2d,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x2b,0x20,0x22,0x29,0x7b,0x30,0x2c,0x36,0x31,0x7d,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x73,0x65,0x75,0x64,0x6f,0x5f,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x49,0x50,0x20,0x63,0x68,0x65,0x63,0x6b,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x64,0x69,0x67,0x69,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x69,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x20,0x73,0x72,0x63,0x5f,0x69,0x70,0x34,0x20,0x2b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x7c,0x27,0x20,0x2b,0x0a,0x20,0x20,0x20,0x20,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x2b,0x20,0x22,0x29,0x5c,0x5c,0x2e,0x29,0x2a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x2f,0x2a,0x5f,0x72,0x6f,0x6f,0x74,0x2a,0x2f,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x69,0x70,0x34,0x20,0x2b,0x20,0x22,0x7c,0x22,0x20,0x2b,0x20,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x2b,0x20,0x22,0x29,0x5c,0x5c,0x2e,0x29,0x2b,0x28,0x3f,0x3a,0x25,0x54,0x4c,0x44,0x53,0x25,0x29,0x29,0x22,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x2b,0x20,0x22,0x29,0x5c,0x5c,0x2e,0x29,0x2b,0x28,0x3f,0x3a,0x25,0x54,0x4c,0x44,0x53,0x25,0x29,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x3d,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x3d,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x70,0x6f,0x72,0x74,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x3d,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x6f,0x72,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x70,0x6f,0x72,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x3d,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x6f,0x72,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x70,0x6f,0x72,0x74,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x3d,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x6f,0x72,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x69,0x6e,0x20,0x72,0x75,0x6c,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x75,0x64,0x65,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x75,0x7a,0x7a,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x62,0x79,0x20,0x68,0x6f,0x73,0x74,0x2c,0x20,0x66,0x6f,0x72,0x20,0x71,0x75,0x69,0x63,0x6b,0x20,0x64,0x65,0x6e,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x74,0x65,0x73,0x74,0x20,0x3d,0x20,0x22,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x7c,0x77,0x77,0x77,0x5c,0x5c,0x2e,0x7c,0x5c,0x5c,0x2e,0x5c,0x5c,0x64,0x7b,0x31,0x2c,0x33,0x7d,0x5c,0x5c,0x2e,0x7c,0x28,0x3f,0x3a,0x5c,0x5c,0x2e,0x28,0x3f,0x3a,0x25,0x54,0x4c,0x44,0x53,0x25,0x29,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x7c,0x3e,0x7c,0x24,0x29,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x22,0x28,0x5e,0x7c,0x22,0x20,0x2b,0x20,0x74,0x65,0x78,0x74,0x5f,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x20,0x2b,0x20,0x27,0x7c,0x22,0x7c,0x5c,0x5c,0x28,0x7c,0x27,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x22,0x28,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x22,0x40,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x75,0x7a,0x7a,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x62,0x65,0x20,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x2e,0x3a,0x2f,0x5c,0x2d,0x20,0x61,0x6e,0x64,0x20,0x6e,0x6f,0x6e,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x63,0x61,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x3e,0x20,0x28,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x22,0x28,0x5e,0x7c,0x28,0x3f,0x21,0x5b,0x2e,0x3a,0x2f,0x5c,0x5c,0x2d,0x5f,0x40,0x5d,0x29,0x28,0x3f,0x3a,0x5b,0x24,0x2b,0x3c,0x3d,0x3e,0x5e,0x60,0x7c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x29,0x22,0x20,0x2b,0x20,0x22,0x28,0x28,0x3f,0x21,0x5b,0x24,0x2b,0x3c,0x3d,0x3e,0x5e,0x60,0x7c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x29,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x70,0x6f,0x72,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x61,0x74,0x68,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x75,0x7a,0x7a,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x62,0x65,0x20,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x2e,0x3a,0x2f,0x5c,0x2d,0x20,0x61,0x6e,0x64,0x20,0x6e,0x6f,0x6e,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x63,0x61,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x3e,0x20,0x28,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x22,0x28,0x5e,0x7c,0x28,0x3f,0x21,0x5b,0x2e,0x3a,0x2f,0x5c,0x5c,0x2d,0x5f,0x40,0x5d,0x29,0x28,0x3f,0x3a,0x5b,0x24,0x2b,0x3c,0x3d,0x3e,0x5e,0x60,0x7c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x29,0x22,0x20,0x2b,0x20,0x22,0x28,0x28,0x3f,0x21,0x5b,0x24,0x2b,0x3c,0x3d,0x3e,0x5e,0x60,0x7c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x29,0x22,0x20,0x2b,0x20,0x72,0x65,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x70,0x6f,0x72,0x74,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x2b,0x20,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x61,0x74,0x68,0x20,0x2b,0x20,0x22,0x29,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x65,0x72,0x67,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x6f,0x62,0x6a,0x20,0x2f,0x2a,0x66,0x72,0x6f,0x6d,0x31,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x32,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x33,0x2c,0x20,0x2e,0x2e,0x2e,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x62,0x6a,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x62,0x6a,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x6f,0x62,0x6a,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x6c,0x61,0x73,0x73,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x45,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x2e,0x3f,0x2a,0x2b,0x5e,0x24,0x5b,0x5c,0x5d,0x5c,0x5c,0x28,0x29,0x7b,0x7d,0x7c,0x2d,0x5d,0x2f,0x67,0x2c,0x20,0x22,0x5c,0x5c,0x24,0x26,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x7a,0x7a,0x79,0x4c,0x69,0x6e,0x6b,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x7a,0x7a,0x79,0x45,0x6d,0x61,0x69,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x7a,0x7a,0x79,0x49,0x50,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x4f,0x62,0x6a,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x6f,0x62,0x6a,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x29,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x63,0x63,0x2c,0x20,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x63,0x63,0x20,0x7c,0x7c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x22,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x68,0x74,0x74,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x20,0x6c,0x61,0x7a,0x69,0x6c,0x79,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x22,0x68,0x6f,0x73,0x74,0x22,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x63,0x61,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x6f,0x6e,0x20,0x74,0x6c,0x64,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x68,0x74,0x74,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x5c,0x5c,0x2f,0x5c,0x5c,0x2f,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x61,0x75,0x74,0x68,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x70,0x6f,0x72,0x74,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x61,0x74,0x68,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x68,0x74,0x74,0x70,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x61,0x69,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x69,0x6c,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x68,0x74,0x74,0x70,0x29,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x22,0x3a,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x74,0x70,0x3a,0x22,0x3a,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x2f,0x2f,0x22,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6e,0x6f,0x5f,0x68,0x74,0x74,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x20,0x6c,0x61,0x7a,0x69,0x6c,0x79,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x22,0x68,0x6f,0x73,0x74,0x22,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x63,0x61,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x6f,0x6e,0x20,0x74,0x6c,0x64,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6e,0x6f,0x5f,0x68,0x74,0x74,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x61,0x75,0x74,0x68,0x20,0x2b,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x2d,0x6c,0x65,0x76,0x65,0x6c,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x73,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x6f,0x66,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x27,0x2f,0x2f,0x74,0x65,0x73,0x74,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x74,0x68,0x20,0x63,0x6f,0x64,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x28,0x3f,0x3a,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x7c,0x28,0x3f,0x3a,0x28,0x3f,0x3a,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x2b,0x20,0x22,0x29,0x5c,0x5c,0x2e,0x29,0x2b,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x5f,0x72,0x6f,0x6f,0x74,0x20,0x2b,0x20,0x22,0x29,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x6f,0x72,0x74,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x70,0x61,0x74,0x68,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6e,0x6f,0x5f,0x68,0x74,0x74,0x70,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x61,0x69,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x60,0x3a,0x2f,0x2f,0x60,0x20,0x26,0x20,0x60,0x2f,0x2f,0x2f,0x60,0x2c,0x20,0x74,0x68,0x61,0x74,0x20,0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x74,0x65,0x78,0x74,0x5b,0x70,0x6f,0x73,0x20,0x2d,0x20,0x33,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x3a,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x74,0x65,0x78,0x74,0x5b,0x70,0x6f,0x73,0x20,0x2d,0x20,0x33,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x69,0x6c,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6e,0x6f,0x5f,0x68,0x74,0x74,0x70,0x29,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x22,0x40,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x72,0x63,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x73,0x74,0x72,0x69,0x63,0x74,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x61,0x69,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x69,0x6c,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x29,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x6d,0x61,0x78,0x2d,0x6c,0x65,0x6e,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x45,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x66,0x6f,0x72,0x20,0x32,0x2d,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x74,0x6c,0x64,0x73,0x20,0x28,0x61,0x75,0x74,0x6f,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x2e,0x2f,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x2f,0x74,0x6c,0x64,0x73,0x5f,0x32,0x63,0x68,0x61,0x72,0x5f,0x67,0x65,0x6e,0x2e,0x6a,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6c,0x64,0x73,0x5f,0x32,0x63,0x68,0x5f,0x73,0x72,0x63,0x5f,0x72,0x65,0x20,0x3d,0x20,0x22,0x61,0x5b,0x63,0x64,0x65,0x66,0x67,0x69,0x6c,0x6d,0x6e,0x6f,0x71,0x72,0x73,0x74,0x75,0x77,0x78,0x7a,0x5d,0x7c,0x62,0x5b,0x61,0x62,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6d,0x6e,0x6f,0x72,0x73,0x74,0x76,0x77,0x79,0x7a,0x5d,0x7c,0x63,0x5b,0x61,0x63,0x64,0x66,0x67,0x68,0x69,0x6b,0x6c,0x6d,0x6e,0x6f,0x72,0x75,0x76,0x77,0x78,0x79,0x7a,0x5d,0x7c,0x64,0x5b,0x65,0x6a,0x6b,0x6d,0x6f,0x7a,0x5d,0x7c,0x65,0x5b,0x63,0x65,0x67,0x72,0x73,0x74,0x75,0x5d,0x7c,0x66,0x5b,0x69,0x6a,0x6b,0x6d,0x6f,0x72,0x5d,0x7c,0x67,0x5b,0x61,0x62,0x64,0x65,0x66,0x67,0x68,0x69,0x6c,0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x77,0x79,0x5d,0x7c,0x68,0x5b,0x6b,0x6d,0x6e,0x72,0x74,0x75,0x5d,0x7c,0x69,0x5b,0x64,0x65,0x6c,0x6d,0x6e,0x6f,0x71,0x72,0x73,0x74,0x5d,0x7c,0x6a,0x5b,0x65,0x6d,0x6f,0x70,0x5d,0x7c,0x6b,0x5b,0x65,0x67,0x68,0x69,0x6d,0x6e,0x70,0x72,0x77,0x79,0x7a,0x5d,0x7c,0x6c,0x5b,0x61,0x62,0x63,0x69,0x6b,0x72,0x73,0x74,0x75,0x76,0x79,0x5d,0x7c,0x6d,0x5b,0x61,0x63,0x64,0x65,0x67,0x68,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5d,0x7c,0x6e,0x5b,0x61,0x63,0x65,0x66,0x67,0x69,0x6c,0x6f,0x70,0x72,0x75,0x7a,0x5d,0x7c,0x6f,0x6d,0x7c,0x70,0x5b,0x61,0x65,0x66,0x67,0x68,0x6b,0x6c,0x6d,0x6e,0x72,0x73,0x74,0x77,0x79,0x5d,0x7c,0x71,0x61,0x7c,0x72,0x5b,0x65,0x6f,0x73,0x75,0x77,0x5d,0x7c,0x73,0x5b,0x61,0x62,0x63,0x64,0x65,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x72,0x74,0x75,0x76,0x78,0x79,0x7a,0x5d,0x7c,0x74,0x5b,0x63,0x64,0x66,0x67,0x68,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x72,0x74,0x76,0x77,0x7a,0x5d,0x7c,0x75,0x5b,0x61,0x67,0x6b,0x73,0x79,0x7a,0x5d,0x7c,0x76,0x5b,0x61,0x63,0x65,0x67,0x69,0x6e,0x75,0x5d,0x7c,0x77,0x5b,0x66,0x73,0x5d,0x7c,0x79,0x5b,0x65,0x74,0x5d,0x7c,0x7a,0x5b,0x61,0x6d,0x77,0x5d,0x22,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x44,0x4f,0x4e,0x27,0x54,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x50,0x52,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x2e,0x20,0x45,0x78,0x74,0x65,0x6e,0x64,0x20,0x54,0x4c,0x44,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x74,0x6c,0x64,0x73,0x28,0x29,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6c,0x64,0x73,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x62,0x69,0x7a,0x7c,0x63,0x6f,0x6d,0x7c,0x65,0x64,0x75,0x7c,0x67,0x6f,0x76,0x7c,0x6e,0x65,0x74,0x7c,0x6f,0x72,0x67,0x7c,0x70,0x72,0x6f,0x7c,0x77,0x65,0x62,0x7c,0x78,0x78,0x78,0x7c,0x61,0x65,0x72,0x6f,0x7c,0x61,0x73,0x69,0x61,0x7c,0x63,0x6f,0x6f,0x70,0x7c,0x69,0x6e,0x66,0x6f,0x7c,0x6d,0x75,0x73,0x65,0x75,0x6d,0x7c,0x6e,0x61,0x6d,0x65,0x7c,0x73,0x68,0x6f,0x70,0x7c,0x5c,0x75,0x30,0x34,0x34,0x30,0x5c,0x75,0x30,0x34,0x34,0x34,0x22,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x7c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x6d,0x61,0x78,0x2d,0x6c,0x65,0x6e,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x63,0x61,0x6e,0x43,0x61,0x63,0x68,0x65,0x28,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x28,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x61,0x69,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x69,0x6c,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x72,0x65,0x29,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x63,0x68,0x65,0x6d,0x61,0x73,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2e,0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x72,0x65,0x67,0x65,0x78,0x70,0x73,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4c,0x6f,0x61,0x64,0x20,0x26,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x20,0x52,0x45,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x24,0x31,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x20,0x3d,0x20,0x72,0x65,0x28,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x66,0x69,0x6e,0x65,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x6c,0x64,0x73,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x5f,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x5f,0x5f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6c,0x64,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6c,0x64,0x73,0x5f,0x32,0x63,0x68,0x5f,0x73,0x72,0x63,0x5f,0x72,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x6c,0x64,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x65,0x24,0x31,0x2e,0x73,0x72,0x63,0x5f,0x78,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x24,0x31,0x2e,0x73,0x72,0x63,0x5f,0x74,0x6c,0x64,0x73,0x20,0x3d,0x20,0x74,0x6c,0x64,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6e,0x74,0x70,0x6c,0x28,0x74,0x70,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x70,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x25,0x54,0x4c,0x44,0x53,0x25,0x22,0x2c,0x20,0x72,0x65,0x24,0x31,0x2e,0x73,0x72,0x63,0x5f,0x74,0x6c,0x64,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x24,0x31,0x2e,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x75,0x6e,0x74,0x70,0x6c,0x28,0x72,0x65,0x24,0x31,0x2e,0x74,0x70,0x6c,0x5f,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x29,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x24,0x31,0x2e,0x6c,0x69,0x6e,0x6b,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x75,0x6e,0x74,0x70,0x6c,0x28,0x72,0x65,0x24,0x31,0x2e,0x74,0x70,0x6c,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x29,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x24,0x31,0x2e,0x6c,0x69,0x6e,0x6b,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x75,0x6e,0x74,0x70,0x6c,0x28,0x72,0x65,0x24,0x31,0x2e,0x74,0x70,0x6c,0x5f,0x6c,0x69,0x6e,0x6b,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x29,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x24,0x31,0x2e,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x74,0x65,0x73,0x74,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x75,0x6e,0x74,0x70,0x6c,0x28,0x72,0x65,0x24,0x31,0x2e,0x74,0x70,0x6c,0x5f,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x74,0x65,0x73,0x74,0x29,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x20,0x65,0x61,0x63,0x68,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x6c,0x69,0x61,0x73,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x28,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x29,0x20,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x22,0x27,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x27,0x22,0x3a,0x20,0x27,0x20,0x2b,0x20,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x76,0x61,0x6c,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6b,0x69,0x70,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x28,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x61,0x73,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x20,0x70,0x6f,0x73,0x74,0x70,0x6f,0x6e,0x65,0x64,0x20,0x61,0x6c,0x69,0x61,0x73,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x69,0x61,0x73,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x6c,0x69,0x61,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x5b,0x61,0x6c,0x69,0x61,0x73,0x5d,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x69,0x6c,0x65,0x6e,0x74,0x6c,0x79,0x20,0x66,0x61,0x69,0x6c,0x20,0x6f,0x6e,0x20,0x6d,0x69,0x73,0x73,0x65,0x64,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x65,0x72,0x72,0x6f,0x6e,0x73,0x20,0x6f,0x6e,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x45,0x72,0x72,0x6f,0x72,0x28,0x61,0x6c,0x69,0x61,0x73,0x2c,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x5b,0x61,0x6c,0x69,0x61,0x73,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x61,0x6c,0x69,0x61,0x73,0x5d,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x5b,0x61,0x6c,0x69,0x61,0x73,0x5d,0x5d,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x61,0x6c,0x69,0x61,0x73,0x5d,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x5b,0x61,0x6c,0x69,0x61,0x73,0x5d,0x5d,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x61,0x6b,0x65,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x20,0x66,0x6f,0x72,0x20,0x67,0x75,0x65,0x73,0x73,0x65,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x22,0x22,0x5d,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x72,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x42,0x75,0x69,0x6c,0x64,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6c,0x74,0x65,0x72,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x26,0x20,0x66,0x61,0x6b,0x65,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x45,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x3f,0x21,0x5f,0x29,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x31,0x2e,0x35,0x78,0x20,0x73,0x6c,0x6f,0x77,0x64,0x6f,0x77,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x74,0x65,0x73,0x74,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x28,0x5e,0x7c,0x28,0x3f,0x21,0x5f,0x29,0x28,0x3f,0x3a,0x5b,0x3e,0x3c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x24,0x31,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x29,0x28,0x22,0x20,0x2b,0x20,0x73,0x6c,0x69,0x73,0x74,0x20,0x2b,0x20,0x22,0x29,0x22,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x73,0x65,0x61,0x72,0x63,0x68,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x28,0x5e,0x7c,0x28,0x3f,0x21,0x5f,0x29,0x28,0x3f,0x3a,0x5b,0x3e,0x3c,0x5c,0x75,0x66,0x66,0x35,0x63,0x5d,0x7c,0x22,0x20,0x2b,0x20,0x72,0x65,0x24,0x31,0x2e,0x73,0x72,0x63,0x5f,0x5a,0x50,0x43,0x63,0x20,0x2b,0x20,0x22,0x29,0x29,0x28,0x22,0x20,0x2b,0x20,0x73,0x6c,0x69,0x73,0x74,0x20,0x2b,0x20,0x22,0x29,0x22,0x2c,0x20,0x22,0x69,0x67,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x61,0x74,0x5f,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x5e,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x73,0x65,0x61,0x72,0x63,0x68,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x70,0x72,0x65,0x74,0x65,0x73,0x74,0x20,0x3d,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x22,0x28,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x74,0x65,0x73,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x2b,0x20,0x22,0x29,0x7c,0x28,0x22,0x20,0x2b,0x20,0x73,0x65,0x6c,0x66,0x2e,0x72,0x65,0x2e,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x74,0x65,0x73,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x2b,0x20,0x22,0x29,0x7c,0x40,0x22,0x2c,0x20,0x22,0x69,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x63,0x61,0x6e,0x43,0x61,0x63,0x68,0x65,0x28,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x4d,0x61,0x74,0x63,0x68,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x20,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x61,0x72,0x72,0x61,0x79,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x62,0x79,0x20,0x5b,0x5b,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x6d,0x61,0x74,0x63,0x68,0x5d,0x5d,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x61,0x74,0x63,0x68,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x73,0x68,0x69,0x66,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x2c,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x2c,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x23,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x50,0x72,0x65,0x66,0x69,0x78,0x20,0x28,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x29,0x20,0x66,0x6f,0x72,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x3d,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x23,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x3e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x46,0x69,0x72,0x73,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x73,0x68,0x69,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x23,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x2d,0x3e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4e,0x65,0x78,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x65,0x6e,0x64,0x20,0x2b,0x20,0x73,0x68,0x69,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x23,0x72,0x61,0x77,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x23,0x74,0x65,0x78,0x74,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4e,0x6f,0x74,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x6f,0x66,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x74,0x63,0x68,0x23,0x75,0x72,0x6c,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x75,0x72,0x6c,0x20,0x6f,0x66,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x75,0x72,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4d,0x61,0x74,0x63,0x68,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x73,0x68,0x69,0x66,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x74,0x63,0x68,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x73,0x68,0x69,0x66,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x6d,0x61,0x74,0x63,0x68,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5d,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6d,0x61,0x74,0x63,0x68,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x74,0x63,0x68,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2e,0x20,0x41,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x20,0x74,0x6f,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x20,0x28,0x70,0x72,0x65,0x66,0x69,0x78,0x2f,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x7b,0x20,0x66,0x75,0x7a,0x7a,0x79,0x4c,0x69,0x6e,0x6b,0x7c,0x66,0x75,0x7a,0x7a,0x79,0x45,0x6d,0x61,0x69,0x6c,0x7c,0x66,0x75,0x7a,0x7a,0x79,0x49,0x50,0x3a,0x20,0x74,0x72,0x75,0x65,0x7c,0x66,0x61,0x6c,0x73,0x65,0x20,0x7d,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x73,0x20,0x6e,0x65,0x77,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x69,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x60,0x6e,0x65,0x77,0x60,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x20,0x66,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x76,0x65,0x6e,0x69,0x65,0x6e,0x63,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x42,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x75,0x6e,0x64,0x65,0x72,0x73,0x74,0x61,0x6e,0x64,0x73,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x60,0x68,0x74,0x74,0x70,0x28,0x73,0x29,0x3a,0x2f,0x2f,0x2e,0x2e,0x2e,0x60,0x20,0x2c,0x20,0x60,0x66,0x74,0x70,0x3a,0x2f,0x2f,0x2e,0x2e,0x2e,0x60,0x2c,0x20,0x60,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x2e,0x2e,0x2e,0x60,0x20,0x26,0x20,0x60,0x2f,0x2f,0x2e,0x2e,0x2e,0x60,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x22,0x66,0x75,0x7a,0x7a,0x79,0x22,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x61,0x6e,0x64,0x20,0x65,0x6d,0x61,0x69,0x6c,0x73,0x20,0x28,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x2c,0x20,0x66,0x6f,0x6f,0x40,0x62,0x61,0x72,0x2e,0x63,0x6f,0x6d,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x60,0x20,0x69,0x73,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x77,0x68,0x65,0x72,0x65,0x20,0x65,0x61,0x63,0x68,0x20,0x6b,0x65,0x79,0x2f,0x76,0x61,0x6c,0x75,0x65,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x62,0x65,0x73,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x2f,0x72,0x75,0x6c,0x65,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x6b,0x65,0x79,0x5f,0x5f,0x20,0x2d,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x28,0x75,0x73,0x75,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x60,0x3a,0x60,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x2c,0x20,0x60,0x73,0x6b,0x79,0x70,0x65,0x3a,0x60,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x29,0x2e,0x20,0x60,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2d,0x69,0x74,0x60,0x20,0x6d,0x61,0x6b,0x65,0x73,0x20,0x73,0x68,0x75,0x72,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x70,0x72,0x65,0x63,0x65,0x65,0x64,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x61,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x68,0x61,0x72,0x20,0x61,0x6e,0x64,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x76,0x61,0x6c,0x75,0x65,0x5f,0x5f,0x20,0x2d,0x20,0x72,0x75,0x6c,0x65,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x61,0x69,0x6c,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x2d,0x20,0x5f,0x53,0x74,0x72,0x69,0x6e,0x67,0x5f,0x20,0x2d,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x6c,0x69,0x61,0x73,0x20,0x74,0x6f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x72,0x75,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x2d,0x20,0x5f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x5f,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x5f,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x5f,0x20,0x2d,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x29,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x72,0x20,0x60,0x52,0x65,0x67,0x45,0x78,0x70,0x60,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x2d,0x20,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x5f,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x26,0x20,0x75,0x72,0x6c,0x20,0x6f,0x66,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x66,0x6f,0x72,0x20,0x40,0x74,0x77,0x69,0x74,0x74,0x65,0x72,0x20,0x6d,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x73,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x60,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x4c,0x69,0x6e,0x6b,0x5f,0x5f,0x20,0x2d,0x20,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x67,0x65,0x20,0x55,0x52,0x4c,0x2d,0x73,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x60,0x68,0x74,0x74,0x70,0x28,0x73,0x29,0x3a,0x60,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x2e,0x20,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x49,0x50,0x5f,0x5f,0x20,0x2d,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x49,0x50,0x73,0x20,0x69,0x6e,0x20,0x66,0x75,0x7a,0x7a,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x61,0x62,0x6f,0x76,0x65,0x2e,0x20,0x43,0x61,0x6e,0x20,0x63,0x6f,0x6e,0x66,0x6c,0x69,0x63,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x6f,0x6d,0x65,0x20,0x74,0x65,0x78,0x74,0x73,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x6c,0x69,0x6b,0x65,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x2e,0x20,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x45,0x6d,0x61,0x69,0x6c,0x5f,0x5f,0x20,0x2d,0x20,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x7a,0x65,0x20,0x65,0x6d,0x61,0x69,0x6c,0x73,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x60,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x60,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x74,0x68,0x69,0x73,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x4f,0x62,0x6a,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x63,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x65,0x64,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x20,0x55,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x6b,0x69,0x70,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x73,0x74,0x65,0x70,0x73,0x20,0x6f,0x6e,0x20,0x6e,0x65,0x78,0x74,0x20,0x60,0x6d,0x61,0x74,0x63,0x68,0x60,0x20,0x63,0x61,0x6c,0x6c,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x4e,0x65,0x78,0x74,0x20,0x73,0x63,0x61,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x6c,0x64,0x73,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x5f,0x5f,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x61,0x64,0x64,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x28,0x66,0x69,0x78,0x65,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x52,0x65,0x67,0x45,0x78,0x70,0x7c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x53,0x65,0x65,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x61,0x64,0x64,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x5f,0x5f,0x5b,0x73,0x63,0x68,0x65,0x6d,0x61,0x5d,0x20,0x3d,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x73,0x65,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x7b,0x20,0x66,0x75,0x7a,0x7a,0x79,0x4c,0x69,0x6e,0x6b,0x7c,0x66,0x75,0x7a,0x7a,0x79,0x45,0x6d,0x61,0x69,0x6c,0x7c,0x66,0x75,0x7a,0x7a,0x79,0x49,0x50,0x3a,0x20,0x74,0x72,0x75,0x65,0x7c,0x66,0x61,0x6c,0x73,0x65,0x20,0x7d,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x74,0x20,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x66,0x6f,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x65,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x74,0x65,0x73,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x2d,0x3e,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x61,0x72,0x63,0x68,0x65,0x73,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x69,0x61,0x62,0x6c,0x65,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x6f,0x6e,0x20,0x73,0x75,0x63,0x63,0x65,0x73,0x73,0x20,0x6f,0x72,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x65,0x73,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x73,0x63,0x61,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x78,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x2c,0x20,0x6d,0x6c,0x2c,0x20,0x6d,0x65,0x2c,0x20,0x6c,0x65,0x6e,0x2c,0x20,0x73,0x68,0x69,0x66,0x74,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x72,0x65,0x2c,0x20,0x74,0x6c,0x64,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x61,0x74,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x79,0x20,0x74,0x6f,0x20,0x73,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x2d,0x20,0x74,0x68,0x61,0x74,0x27,0x73,0x20,0x74,0x68,0x65,0x20,0x6d,0x6f,0x73,0x74,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x74,0x65,0x73,0x74,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x73,0x65,0x61,0x72,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x28,0x6d,0x20,0x3d,0x20,0x72,0x65,0x2e,0x65,0x78,0x65,0x63,0x28,0x74,0x65,0x78,0x74,0x29,0x29,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x73,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x41,0x74,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x6d,0x5b,0x32,0x5d,0x2c,0x20,0x72,0x65,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x6c,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x2e,0x66,0x75,0x7a,0x7a,0x79,0x4c,0x69,0x6e,0x6b,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x22,0x68,0x74,0x74,0x70,0x3a,0x22,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x75,0x65,0x73,0x73,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x6c,0x65,0x73,0x73,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6c,0x64,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x68,0x6f,0x73,0x74,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x5f,0x74,0x65,0x73,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6c,0x64,0x5f,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x74,0x6c,0x64,0x20,0x69,0x73,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x64,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x2d,0x20,0x6e,0x6f,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x66,0x75,0x7a,0x7a,0x79,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x74,0x6c,0x64,0x5f,0x70,0x6f,0x73,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x6d,0x6c,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x2e,0x66,0x75,0x7a,0x7a,0x79,0x49,0x50,0x20,0x3f,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x20,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x6c,0x69,0x6e,0x6b,0x5f,0x6e,0x6f,0x5f,0x69,0x70,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x29,0x29,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x6d,0x6c,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x6c,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x73,0x68,0x69,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x6c,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x6c,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6f,0x70,0x74,0x73,0x5f,0x5f,0x2e,0x66,0x75,0x7a,0x7a,0x79,0x45,0x6d,0x61,0x69,0x6c,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x75,0x65,0x73,0x73,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x6c,0x65,0x73,0x73,0x20,0x65,0x6d,0x61,0x69,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x40,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x5f,0x70,0x6f,0x73,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x73,0x6b,0x69,0x70,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x68,0x65,0x63,0x6b,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x61,0x73,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x39,0x32,0x2e,0x31,0x36,0x38,0x2e,0x31,0x2e,0x31,0x40,0x67,0x6d,0x61,0x69,0x6c,0x2e,0x63,0x6f,0x6d,0x2c,0x20,0x6d,0x79,0x2e,0x69,0x6e,0x40,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2e,0x63,0x6f,0x6d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x6d,0x65,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x65,0x6d,0x61,0x69,0x6c,0x5f,0x66,0x75,0x7a,0x7a,0x79,0x29,0x29,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x6d,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x65,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6d,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x65,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x7c,0x7c,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x20,0x3e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x20,0x3d,0x20,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x73,0x68,0x69,0x66,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x70,0x72,0x65,0x74,0x65,0x73,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x2d,0x3e,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x56,0x65,0x72,0x79,0x20,0x71,0x75,0x69,0x63,0x6b,0x20,0x63,0x68,0x65,0x63,0x6b,0x2c,0x20,0x74,0x68,0x61,0x74,0x20,0x63,0x61,0x6e,0x20,0x67,0x69,0x76,0x65,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x2e,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x74,0x72,0x75,0x65,0x20,0x69,0x66,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x4d,0x41,0x59,0x20,0x42,0x45,0x0a,0x09,0x20,0x2a,0x20,0x63,0x61,0x6e,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2e,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x77,0x68,0x65,0x6e,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x68,0x61,0x74,0x0a,0x09,0x20,0x2a,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x4e,0x4f,0x54,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x65,0x74,0x65,0x73,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x65,0x74,0x65,0x73,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x70,0x72,0x65,0x74,0x65,0x73,0x74,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x74,0x65,0x73,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x41,0x74,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x2d,0x3e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x74,0x65,0x78,0x74,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x20,0x73,0x63,0x61,0x6e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x28,0x73,0x63,0x68,0x65,0x6d,0x61,0x29,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x28,0x4e,0x75,0x6d,0x62,0x65,0x72,0x29,0x3a,0x20,0x74,0x65,0x78,0x74,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x66,0x72,0x6f,0x6d,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x69,0x6d,0x69,0x6c,0x61,0x72,0x20,0x74,0x6f,0x20,0x5b,0x5b,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x74,0x65,0x73,0x74,0x5d,0x5d,0x20,0x62,0x75,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x74,0x61,0x69,0x6c,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x0a,0x09,0x20,0x2a,0x20,0x61,0x74,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x6f,0x66,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x28,0x30,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x65,0x73,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x41,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x73,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x41,0x74,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x2c,0x20,0x70,0x6f,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x65,0x64,0x20,0x2d,0x20,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x73,0x63,0x68,0x65,0x6d,0x61,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x5f,0x5f,0x5b,0x73,0x63,0x68,0x65,0x6d,0x61,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x5d,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x7c,0x6e,0x75,0x6c,0x6c,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x72,0x20,0x60,0x6e,0x75,0x6c,0x6c,0x60,0x20,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x2e,0x20,0x57,0x65,0x20,0x73,0x74,0x72,0x6f,0x6e,0x67,0x6c,0x79,0x0a,0x09,0x20,0x2a,0x20,0x72,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x5b,0x5b,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x74,0x65,0x73,0x74,0x5d,0x5d,0x20,0x66,0x69,0x72,0x73,0x74,0x2c,0x20,0x66,0x6f,0x72,0x20,0x62,0x65,0x73,0x74,0x20,0x73,0x70,0x65,0x65,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x20,0x2d,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x2c,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x66,0x6f,0x72,0x20,0x66,0x75,0x7a,0x7a,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2c,0x20,0x6f,0x72,0x20,0x60,0x2f,0x2f,0x60,0x20,0x66,0x6f,0x72,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x2d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x6f,0x66,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x2d,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x6f,0x66,0x20,0x6e,0x65,0x78,0x74,0x20,0x63,0x68,0x61,0x72,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6d,0x61,0x74,0x68,0x63,0x68,0x20,0x65,0x6e,0x64,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x72,0x61,0x77,0x5f,0x5f,0x20,0x2d,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x75,0x72,0x6c,0x5f,0x5f,0x20,0x2d,0x20,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x30,0x2c,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x72,0x79,0x20,0x74,0x6f,0x20,0x74,0x61,0x6b,0x65,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x63,0x61,0x63,0x68,0x65,0x2c,0x20,0x69,0x66,0x20,0x2e,0x74,0x65,0x73,0x74,0x28,0x29,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3e,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x4d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x73,0x68,0x69,0x66,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x75,0x74,0x20,0x68,0x65,0x61,0x64,0x20,0x69,0x66,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x77,0x61,0x73,0x20,0x75,0x73,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x3f,0x20,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x68,0x69,0x66,0x74,0x29,0x20,0x3a,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x63,0x61,0x6e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x65,0x6e,0x64,0x20,0x72,0x65,0x61,0x63,0x68,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x61,0x69,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x4d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x73,0x68,0x69,0x66,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x74,0x61,0x69,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x2b,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x53,0x74,0x61,0x72,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x2d,0x3e,0x20,0x4d,0x61,0x74,0x63,0x68,0x7c,0x6e,0x75,0x6c,0x6c,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x66,0x75,0x6c,0x6c,0x79,0x2d,0x66,0x6f,0x72,0x6d,0x65,0x64,0x20,0x28,0x6e,0x6f,0x74,0x20,0x66,0x75,0x7a,0x7a,0x79,0x29,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x61,0x6e,0x64,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x6f,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x53,0x74,0x61,0x72,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x73,0x65,0x74,0x20,0x73,0x63,0x61,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x65,0x78,0x74,0x5f,0x63,0x61,0x63,0x68,0x65,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x65,0x78,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x61,0x74,0x5f,0x73,0x74,0x61,0x72,0x74,0x2e,0x65,0x78,0x65,0x63,0x28,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x73,0x74,0x53,0x63,0x68,0x65,0x6d,0x61,0x41,0x74,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x6d,0x5b,0x32,0x5d,0x2c,0x20,0x6d,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x65,0x6e,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x73,0x63,0x68,0x65,0x6d,0x61,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x69,0x6e,0x64,0x65,0x78,0x5f,0x5f,0x20,0x3d,0x20,0x6d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x6d,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x6c,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x74,0x6c,0x64,0x73,0x28,0x6c,0x69,0x73,0x74,0x20,0x5b,0x2c,0x20,0x6b,0x65,0x65,0x70,0x4f,0x6c,0x64,0x5d,0x29,0x20,0x2d,0x3e,0x20,0x74,0x68,0x69,0x73,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x28,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x6c,0x64,0x73,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6b,0x65,0x65,0x70,0x4f,0x6c,0x64,0x20,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x66,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x28,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x6f,0x61,0x64,0x20,0x28,0x6f,0x72,0x20,0x6d,0x65,0x72,0x67,0x65,0x29,0x20,0x6e,0x65,0x77,0x20,0x74,0x6c,0x64,0x73,0x20,0x6c,0x69,0x73,0x74,0x2e,0x20,0x54,0x68,0x6f,0x73,0x65,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x66,0x75,0x7a,0x7a,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x20,0x28,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x0a,0x09,0x20,0x2a,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x2e,0x20,0x42,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x61,0x6c,0x67,0x6f,0x72,0x79,0x74,0x68,0x6d,0x20,0x75,0x73,0x65,0x64,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6e,0x79,0x20,0x32,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x20,0x72,0x6f,0x6f,0x74,0x20,0x7a,0x6f,0x6e,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6f,0x6b,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x62,0x69,0x7a,0x7c,0x63,0x6f,0x6d,0x7c,0x65,0x64,0x75,0x7c,0x67,0x6f,0x76,0x7c,0x6e,0x65,0x74,0x7c,0x6f,0x72,0x67,0x7c,0x70,0x72,0x6f,0x7c,0x77,0x65,0x62,0x7c,0x78,0x78,0x78,0x7c,0x61,0x65,0x72,0x6f,0x7c,0x61,0x73,0x69,0x61,0x7c,0x63,0x6f,0x6f,0x70,0x7c,0x69,0x6e,0x66,0x6f,0x7c,0x6d,0x75,0x73,0x65,0x75,0x6d,0x7c,0x6e,0x61,0x6d,0x65,0x7c,0x73,0x68,0x6f,0x70,0x7c,0xd1,0x80,0xd1,0x84,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x61,0x72,0x65,0x20,0x6f,0x6b,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x20,0x28,0x60,0x78,0x6e,0x2d,0x2d,0x2e,0x2e,0x2e,0x60,0x29,0x20,0x72,0x6f,0x6f,0x74,0x20,0x7a,0x6f,0x6e,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6f,0x6b,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x49,0x66,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x73,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x65,0x78,0x61,0x63,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x66,0x6f,0x72,0x20,0x32,0x2d,0x63,0x68,0x61,0x72,0x73,0x20,0x72,0x6f,0x6f,0x74,0x20,0x7a,0x6f,0x6e,0x65,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6c,0x64,0x73,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6c,0x64,0x73,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x6b,0x65,0x65,0x70,0x4f,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x73,0x74,0x29,0x20,0x3f,0x20,0x6c,0x69,0x73,0x74,0x20,0x3a,0x20,0x5b,0x20,0x6c,0x69,0x73,0x74,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6b,0x65,0x65,0x70,0x4f,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x6c,0x69,0x73,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x74,0x6c,0x64,0x73,0x5f,0x5f,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x6c,0x69,0x73,0x74,0x29,0x2e,0x73,0x6f,0x72,0x74,0x28,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x6c,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x61,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x61,0x72,0x72,0x5b,0x69,0x64,0x78,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x72,0x20,0x28,0x69,0x66,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x6f,0x77,0x6e,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x20,0x6d,0x69,0x6e,0x69,0x6d,0x61,0x6c,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x20,0x4e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x20,0x66,0x65,0x65,0x64,0x62,0x61,0x63,0x6b,0x20,0x70,0x72,0x69,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x6d,0x6f,0x76,0x65,0x20,0x66,0x6f,0x72,0x77,0x61,0x72,0x64,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2d,0x69,0x74,0x2f,0x69,0x73,0x73,0x75,0x65,0x73,0x2f,0x31,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x61,0x74,0x63,0x68,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x2e,0x75,0x72,0x6c,0x20,0x3d,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x22,0x20,0x2b,0x20,0x6d,0x61,0x74,0x63,0x68,0x2e,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x2e,0x73,0x63,0x68,0x65,0x6d,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x20,0x26,0x26,0x20,0x21,0x2f,0x5e,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x6d,0x61,0x74,0x63,0x68,0x2e,0x75,0x72,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x2e,0x75,0x72,0x6c,0x20,0x3d,0x20,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x20,0x2b,0x20,0x6d,0x61,0x74,0x63,0x68,0x2e,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x23,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x74,0x6f,0x20,0x6d,0x6f,0x64,0x69,0x66,0x79,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x2d,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x29,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x20,0x3d,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x21,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6d,0x74,0x68,0x73,0x2e,0x62,0x65,0x2f,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x76,0x31,0x2e,0x34,0x2e,0x31,0x20,0x62,0x79,0x20,0x40,0x6d,0x61,0x74,0x68,0x69,0x61,0x73,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x48,0x69,0x67,0x68,0x65,0x73,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x20,0x73,0x69,0x67,0x6e,0x65,0x64,0x20,0x33,0x32,0x2d,0x62,0x69,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x61,0x78,0x49,0x6e,0x74,0x20,0x3d,0x20,0x32,0x31,0x34,0x37,0x34,0x38,0x33,0x36,0x34,0x37,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x61,0x6b,0x61,0x2e,0x20,0x30,0x78,0x37,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x20,0x6f,0x72,0x20,0x32,0x5e,0x33,0x31,0x2d,0x31,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x42,0x6f,0x6f,0x74,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x61,0x73,0x65,0x20,0x3d,0x20,0x33,0x36,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x4d,0x69,0x6e,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x74,0x4d,0x61,0x78,0x20,0x3d,0x20,0x32,0x36,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x6b,0x65,0x77,0x20,0x3d,0x20,0x33,0x38,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x61,0x6d,0x70,0x20,0x3d,0x20,0x37,0x30,0x30,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x42,0x69,0x61,0x73,0x20,0x3d,0x20,0x37,0x32,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x4e,0x20,0x3d,0x20,0x31,0x32,0x38,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x30,0x78,0x38,0x30,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x3d,0x20,0x22,0x2d,0x22,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x27,0x5c,0x78,0x32,0x44,0x27,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x73,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x2f,0x5e,0x78,0x6e,0x2d,0x2d,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x4e,0x6f,0x6e,0x41,0x53,0x43,0x49,0x49,0x20,0x3d,0x20,0x2f,0x5b,0x5e,0x5c,0x78,0x32,0x30,0x2d,0x5c,0x78,0x37,0x45,0x5d,0x2f,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x75,0x6e,0x70,0x72,0x69,0x6e,0x74,0x61,0x62,0x6c,0x65,0x20,0x41,0x53,0x43,0x49,0x49,0x20,0x63,0x68,0x61,0x72,0x73,0x20,0x2b,0x20,0x6e,0x6f,0x6e,0x2d,0x41,0x53,0x43,0x49,0x49,0x20,0x63,0x68,0x61,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x20,0x3d,0x20,0x2f,0x5b,0x5c,0x78,0x32,0x45,0x5c,0x75,0x33,0x30,0x30,0x32,0x5c,0x75,0x46,0x46,0x30,0x45,0x5c,0x75,0x46,0x46,0x36,0x31,0x5d,0x2f,0x67,0x3b,0x0a,0x20,0x2f,0x2f,0x20,0x52,0x46,0x43,0x20,0x33,0x34,0x39,0x30,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x45,0x72,0x72,0x6f,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x20,0x22,0x4f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x77,0x69,0x64,0x65,0x72,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x73,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6e,0x6f,0x74,0x2d,0x62,0x61,0x73,0x69,0x63,0x22,0x3a,0x20,0x22,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3e,0x3d,0x20,0x30,0x78,0x38,0x30,0x20,0x28,0x6e,0x6f,0x74,0x20,0x61,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x29,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2d,0x69,0x6e,0x70,0x75,0x74,0x22,0x3a,0x20,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x22,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x6e,0x69,0x65,0x6e,0x63,0x65,0x20,0x73,0x68,0x6f,0x72,0x74,0x63,0x75,0x74,0x73,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x4d,0x69,0x6e,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x20,0x2d,0x20,0x74,0x4d,0x69,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x66,0x6c,0x6f,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x20,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x74,0x79,0x70,0x65,0x20,0x54,0x68,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x74,0x79,0x70,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x45,0x72,0x72,0x6f,0x72,0x7d,0x20,0x54,0x68,0x72,0x6f,0x77,0x73,0x20,0x61,0x20,0x60,0x52,0x61,0x6e,0x67,0x65,0x45,0x72,0x72,0x6f,0x72,0x60,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x52,0x61,0x6e,0x67,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x6f,0x72,0x73,0x5b,0x74,0x79,0x70,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x20,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x60,0x41,0x72,0x72,0x61,0x79,0x23,0x6d,0x61,0x70,0x60,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x41,0x72,0x72,0x61,0x79,0x7d,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x54,0x68,0x65,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x74,0x6f,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x20,0x6f,0x76,0x65,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x7d,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x54,0x68,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x65,0x74,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x61,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x2a,0x20,0x69,0x74,0x65,0x6d,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x41,0x72,0x72,0x61,0x79,0x7d,0x20,0x41,0x20,0x6e,0x65,0x77,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x70,0x28,0x61,0x72,0x72,0x61,0x79,0x2c,0x20,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x61,0x72,0x72,0x61,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x6c,0x65,0x6e,0x67,0x74,0x68,0x5d,0x20,0x3d,0x20,0x66,0x6e,0x28,0x61,0x72,0x72,0x61,0x79,0x5b,0x6c,0x65,0x6e,0x67,0x74,0x68,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x60,0x41,0x72,0x72,0x61,0x79,0x23,0x6d,0x61,0x70,0x60,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x74,0x6f,0x20,0x77,0x6f,0x72,0x6b,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x73,0x20,0x6f,0x72,0x20,0x65,0x6d,0x61,0x69,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x65,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x54,0x68,0x65,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x7d,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x54,0x68,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x68,0x61,0x74,0x20,0x67,0x65,0x74,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x65,0x76,0x65,0x72,0x79,0x0a,0x09,0x20,0x2a,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x41,0x72,0x72,0x61,0x79,0x7d,0x20,0x41,0x20,0x6e,0x65,0x77,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x0a,0x09,0x20,0x2a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x70,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x40,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x65,0x73,0x2c,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x74,0x68,0x65,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x64,0x2e,0x20,0x4c,0x65,0x61,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x70,0x61,0x72,0x74,0x20,0x28,0x69,0x2e,0x65,0x2e,0x20,0x65,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x20,0x75,0x70,0x20,0x74,0x6f,0x20,0x60,0x40,0x60,0x29,0x20,0x69,0x6e,0x74,0x61,0x63,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x74,0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x22,0x40,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x70,0x61,0x72,0x74,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x76,0x6f,0x69,0x64,0x20,0x60,0x73,0x70,0x6c,0x69,0x74,0x28,0x72,0x65,0x67,0x65,0x78,0x29,0x60,0x20,0x66,0x6f,0x72,0x20,0x49,0x45,0x38,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x2e,0x20,0x53,0x65,0x65,0x20,0x23,0x31,0x37,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x72,0x65,0x67,0x65,0x78,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x73,0x2c,0x20,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x61,0x62,0x65,0x6c,0x73,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x20,0x3d,0x20,0x6d,0x61,0x70,0x28,0x6c,0x61,0x62,0x65,0x6c,0x73,0x2c,0x20,0x66,0x6e,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x73,0x20,0x61,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x6f,0x66,0x20,0x65,0x61,0x63,0x68,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x20,0x57,0x68,0x69,0x6c,0x65,0x20,0x4a,0x61,0x76,0x61,0x53,0x63,0x72,0x69,0x70,0x74,0x20,0x75,0x73,0x65,0x73,0x20,0x55,0x43,0x53,0x2d,0x32,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x6c,0x79,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x74,0x68,0x69,0x73,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x6c,0x6c,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x61,0x20,0x70,0x61,0x69,0x72,0x20,0x6f,0x66,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x20,0x68,0x61,0x6c,0x76,0x65,0x73,0x20,0x28,0x65,0x61,0x63,0x68,0x20,0x6f,0x66,0x20,0x77,0x68,0x69,0x63,0x68,0x0a,0x09,0x20,0x2a,0x20,0x55,0x43,0x53,0x2d,0x32,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x73,0x20,0x61,0x73,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x29,0x20,0x69,0x6e,0x74,0x6f,0x20,0x61,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x55,0x54,0x46,0x2d,0x31,0x36,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x73,0x65,0x65,0x20,0x60,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x75,0x63,0x73,0x32,0x2e,0x65,0x6e,0x63,0x6f,0x64,0x65,0x60,0x0a,0x09,0x20,0x2a,0x20,0x40,0x73,0x65,0x65,0x20,0x3c,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6d,0x61,0x74,0x68,0x69,0x61,0x73,0x62,0x79,0x6e,0x65,0x6e,0x73,0x2e,0x62,0x65,0x2f,0x6e,0x6f,0x74,0x65,0x73,0x2f,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x75,0x63,0x73,0x32,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6e,0x61,0x6d,0x65,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x54,0x68,0x65,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x28,0x55,0x43,0x53,0x2d,0x32,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x41,0x72,0x72,0x61,0x79,0x7d,0x20,0x54,0x68,0x65,0x20,0x6e,0x65,0x77,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x63,0x73,0x32,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x20,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3e,0x3d,0x20,0x35,0x35,0x32,0x39,0x36,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3c,0x3d,0x20,0x35,0x36,0x33,0x31,0x39,0x20,0x26,0x26,0x20,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x69,0x67,0x68,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x2c,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x61,0x20,0x6e,0x65,0x78,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x72,0x61,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x65,0x78,0x74,0x72,0x61,0x20,0x26,0x20,0x36,0x34,0x35,0x31,0x32,0x29,0x20,0x3d,0x3d,0x20,0x35,0x36,0x33,0x32,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x6f,0x77,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x28,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x20,0x31,0x30,0x32,0x33,0x29,0x20,0x3c,0x3c,0x20,0x31,0x30,0x29,0x20,0x2b,0x20,0x28,0x65,0x78,0x74,0x72,0x61,0x20,0x26,0x20,0x31,0x30,0x32,0x33,0x29,0x20,0x2b,0x20,0x36,0x35,0x35,0x33,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x6e,0x6d,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x3b,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x61,0x70,0x70,0x65,0x6e,0x64,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6f,0x64,0x65,0x20,0x75,0x6e,0x69,0x74,0x2c,0x20,0x69,0x6e,0x20,0x63,0x61,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x64,0x65,0x20,0x75,0x6e,0x69,0x74,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x68,0x69,0x67,0x68,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x20,0x6f,0x66,0x20,0x61,0x20,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x20,0x70,0x61,0x69,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x73,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x61,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x73,0x65,0x65,0x20,0x60,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x75,0x63,0x73,0x32,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x60,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x75,0x63,0x73,0x32,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6e,0x61,0x6d,0x65,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x41,0x72,0x72,0x61,0x79,0x7d,0x20,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x73,0x20,0x54,0x68,0x65,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x54,0x68,0x65,0x20,0x6e,0x65,0x77,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x28,0x55,0x43,0x53,0x2d,0x32,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x63,0x73,0x32,0x65,0x6e,0x63,0x6f,0x64,0x65,0x28,0x61,0x72,0x72,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x70,0x28,0x61,0x72,0x72,0x61,0x79,0x2c,0x20,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3e,0x20,0x36,0x35,0x35,0x33,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x2d,0x3d,0x20,0x36,0x35,0x35,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x2b,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3e,0x3e,0x3e,0x20,0x31,0x30,0x20,0x26,0x20,0x31,0x30,0x32,0x33,0x20,0x7c,0x20,0x35,0x35,0x32,0x39,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x35,0x36,0x33,0x32,0x30,0x20,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x20,0x31,0x30,0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x2b,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x69,0x6e,0x74,0x6f,0x20,0x61,0x20,0x64,0x69,0x67,0x69,0x74,0x2f,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x73,0x65,0x65,0x20,0x60,0x64,0x69,0x67,0x69,0x74,0x54,0x6f,0x42,0x61,0x73,0x69,0x63,0x28,0x29,0x60,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x7d,0x20,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x54,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x7d,0x20,0x54,0x68,0x65,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x66,0x20,0x61,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x28,0x66,0x6f,0x72,0x20,0x75,0x73,0x65,0x20,0x69,0x6e,0x0a,0x09,0x20,0x2a,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x73,0x29,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x60,0x30,0x60,0x20,0x74,0x6f,0x20,0x60,0x62,0x61,0x73,0x65,0x20,0x2d,0x20,0x31,0x60,0x2c,0x20,0x6f,0x72,0x20,0x60,0x62,0x61,0x73,0x65,0x60,0x20,0x69,0x66,0x0a,0x09,0x20,0x2a,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x73,0x69,0x63,0x54,0x6f,0x44,0x69,0x67,0x69,0x74,0x28,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x2d,0x20,0x34,0x38,0x20,0x3c,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x2d,0x20,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x2d,0x20,0x36,0x35,0x20,0x3c,0x20,0x32,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x2d,0x20,0x36,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x2d,0x20,0x39,0x37,0x20,0x3c,0x20,0x32,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x20,0x2d,0x20,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x64,0x69,0x67,0x69,0x74,0x2f,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x20,0x69,0x6e,0x74,0x6f,0x20,0x61,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x73,0x65,0x65,0x20,0x60,0x62,0x61,0x73,0x69,0x63,0x54,0x6f,0x44,0x69,0x67,0x69,0x74,0x28,0x29,0x60,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x7d,0x20,0x64,0x69,0x67,0x69,0x74,0x20,0x54,0x68,0x65,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x66,0x20,0x61,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x7d,0x20,0x54,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x20,0x77,0x68,0x6f,0x73,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x28,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x0a,0x09,0x20,0x2a,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x73,0x29,0x20,0x69,0x73,0x20,0x60,0x64,0x69,0x67,0x69,0x74,0x60,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6e,0x67,0x65,0x0a,0x09,0x20,0x2a,0x20,0x60,0x30,0x60,0x20,0x74,0x6f,0x20,0x60,0x62,0x61,0x73,0x65,0x20,0x2d,0x20,0x31,0x60,0x2e,0x20,0x49,0x66,0x20,0x60,0x66,0x6c,0x61,0x67,0x60,0x20,0x69,0x73,0x20,0x6e,0x6f,0x6e,0x2d,0x7a,0x65,0x72,0x6f,0x2c,0x20,0x74,0x68,0x65,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x66,0x6f,0x72,0x6d,0x20,0x69,0x73,0x0a,0x09,0x20,0x2a,0x20,0x75,0x73,0x65,0x64,0x3b,0x20,0x65,0x6c,0x73,0x65,0x2c,0x20,0x74,0x68,0x65,0x20,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x66,0x6f,0x72,0x6d,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x2e,0x20,0x54,0x68,0x65,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x20,0x69,0x73,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x0a,0x09,0x20,0x2a,0x20,0x69,0x66,0x20,0x60,0x66,0x6c,0x61,0x67,0x60,0x20,0x69,0x73,0x20,0x6e,0x6f,0x6e,0x2d,0x7a,0x65,0x72,0x6f,0x20,0x61,0x6e,0x64,0x20,0x60,0x64,0x69,0x67,0x69,0x74,0x60,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x66,0x6f,0x72,0x6d,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x67,0x69,0x74,0x54,0x6f,0x42,0x61,0x73,0x69,0x63,0x28,0x64,0x69,0x67,0x69,0x74,0x2c,0x20,0x66,0x6c,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x20,0x30,0x2e,0x2e,0x32,0x35,0x20,0x6d,0x61,0x70,0x20,0x74,0x6f,0x20,0x41,0x53,0x43,0x49,0x49,0x20,0x61,0x2e,0x2e,0x7a,0x20,0x6f,0x72,0x20,0x41,0x2e,0x2e,0x5a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x32,0x36,0x2e,0x2e,0x33,0x35,0x20,0x6d,0x61,0x70,0x20,0x74,0x6f,0x20,0x41,0x53,0x43,0x49,0x49,0x20,0x30,0x2e,0x2e,0x39,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x69,0x67,0x69,0x74,0x20,0x2b,0x20,0x32,0x32,0x20,0x2b,0x20,0x37,0x35,0x20,0x2a,0x20,0x28,0x64,0x69,0x67,0x69,0x74,0x20,0x3c,0x20,0x32,0x36,0x29,0x20,0x2d,0x20,0x28,0x28,0x66,0x6c,0x61,0x67,0x20,0x21,0x3d,0x20,0x30,0x29,0x20,0x3c,0x3c,0x20,0x35,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x42,0x69,0x61,0x73,0x20,0x61,0x64,0x61,0x70,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x20,0x70,0x65,0x72,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x33,0x2e,0x34,0x20,0x6f,0x66,0x20,0x52,0x46,0x43,0x20,0x33,0x34,0x39,0x32,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x6f,0x6f,0x6c,0x73,0x2e,0x69,0x65,0x74,0x66,0x2e,0x6f,0x72,0x67,0x2f,0x68,0x74,0x6d,0x6c,0x2f,0x72,0x66,0x63,0x33,0x34,0x39,0x32,0x23,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x33,0x2e,0x34,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x61,0x70,0x74,0x28,0x64,0x65,0x6c,0x74,0x61,0x2c,0x20,0x6e,0x75,0x6d,0x50,0x6f,0x69,0x6e,0x74,0x73,0x2c,0x20,0x66,0x69,0x72,0x73,0x74,0x54,0x69,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6b,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x69,0x72,0x73,0x74,0x54,0x69,0x6d,0x65,0x20,0x3f,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x64,0x65,0x6c,0x74,0x61,0x20,0x2f,0x20,0x64,0x61,0x6d,0x70,0x29,0x20,0x3a,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3e,0x3e,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x2b,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x64,0x65,0x6c,0x74,0x61,0x20,0x2f,0x20,0x6e,0x75,0x6d,0x50,0x6f,0x69,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x64,0x65,0x6c,0x74,0x61,0x20,0x3e,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x4d,0x69,0x6e,0x20,0x2a,0x20,0x74,0x4d,0x61,0x78,0x20,0x3e,0x3e,0x20,0x31,0x3b,0x20,0x6b,0x20,0x2b,0x3d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x64,0x65,0x6c,0x74,0x61,0x20,0x2f,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x4d,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x6b,0x20,0x2b,0x20,0x28,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x4d,0x69,0x6e,0x20,0x2b,0x20,0x31,0x29,0x20,0x2a,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x2f,0x20,0x28,0x64,0x65,0x6c,0x74,0x61,0x20,0x2b,0x20,0x73,0x6b,0x65,0x77,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x41,0x53,0x43,0x49,0x49,0x2d,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x20,0x74,0x6f,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x54,0x68,0x65,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x41,0x53,0x43,0x49,0x49,0x2d,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x54,0x68,0x65,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x69,0x6e,0x67,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x6e,0x27,0x74,0x20,0x75,0x73,0x65,0x20,0x55,0x43,0x53,0x2d,0x32,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x6f,0x75,0x74,0x2c,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x4e,0x2c,0x20,0x62,0x69,0x61,0x73,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x42,0x69,0x61,0x73,0x2c,0x20,0x62,0x61,0x73,0x69,0x63,0x2c,0x20,0x6a,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x6f,0x6c,0x64,0x69,0x2c,0x20,0x77,0x2c,0x20,0x6b,0x2c,0x20,0x64,0x69,0x67,0x69,0x74,0x2c,0x20,0x74,0x2c,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x43,0x61,0x63,0x68,0x65,0x64,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x74,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x3a,0x20,0x6c,0x65,0x74,0x20,0x60,0x62,0x61,0x73,0x69,0x63,0x60,0x20,0x62,0x65,0x20,0x74,0x68,0x65,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x2c,0x20,0x6f,0x72,0x20,0x60,0x30,0x60,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x6e,0x65,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x63,0x6f,0x70,0x79,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x69,0x63,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x62,0x61,0x73,0x69,0x63,0x3b,0x20,0x2b,0x2b,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6a,0x29,0x20,0x3e,0x3d,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6e,0x6f,0x74,0x2d,0x62,0x61,0x73,0x69,0x63,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x69,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x6f,0x70,0x3a,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x20,0x69,0x66,0x20,0x61,0x6e,0x79,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x77,0x65,0x72,0x65,0x20,0x63,0x6f,0x70,0x69,0x65,0x64,0x3b,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x2b,0x20,0x31,0x20,0x3a,0x20,0x30,0x3b,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x69,0x6e,0x64,0x65,0x78,0x60,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x78,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x65,0x63,0x6f,0x64,0x65,0x20,0x61,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x2d,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x20,0x69,0x6e,0x74,0x6f,0x20,0x60,0x64,0x65,0x6c,0x74,0x61,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x67,0x65,0x74,0x73,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x60,0x69,0x60,0x2e,0x20,0x54,0x68,0x65,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x20,0x63,0x68,0x65,0x63,0x6b,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x65,0x61,0x73,0x69,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x69,0x6e,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x60,0x69,0x60,0x20,0x61,0x73,0x20,0x77,0x65,0x20,0x67,0x6f,0x2c,0x20,0x74,0x68,0x65,0x6e,0x20,0x73,0x75,0x62,0x74,0x72,0x61,0x63,0x74,0x20,0x6f,0x66,0x66,0x20,0x69,0x74,0x73,0x20,0x73,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x74,0x6f,0x20,0x6f,0x62,0x74,0x61,0x69,0x6e,0x20,0x60,0x64,0x65,0x6c,0x74,0x61,0x60,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6f,0x6c,0x64,0x69,0x20,0x3d,0x20,0x69,0x2c,0x20,0x77,0x20,0x3d,0x20,0x31,0x2c,0x20,0x6b,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x3b,0x20,0x3b,0x6b,0x20,0x2b,0x3d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2d,0x69,0x6e,0x70,0x75,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x67,0x69,0x74,0x20,0x3d,0x20,0x62,0x61,0x73,0x69,0x63,0x54,0x6f,0x44,0x69,0x67,0x69,0x74,0x28,0x69,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x67,0x69,0x74,0x20,0x3e,0x3d,0x20,0x62,0x61,0x73,0x65,0x20,0x7c,0x7c,0x20,0x64,0x69,0x67,0x69,0x74,0x20,0x3e,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x28,0x6d,0x61,0x78,0x49,0x6e,0x74,0x20,0x2d,0x20,0x69,0x29,0x20,0x2f,0x20,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x2b,0x3d,0x20,0x64,0x69,0x67,0x69,0x74,0x20,0x2a,0x20,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x20,0x3d,0x20,0x6b,0x20,0x3c,0x3d,0x20,0x62,0x69,0x61,0x73,0x20,0x3f,0x20,0x74,0x4d,0x69,0x6e,0x20,0x3a,0x20,0x6b,0x20,0x3e,0x3d,0x20,0x62,0x69,0x61,0x73,0x20,0x2b,0x20,0x74,0x4d,0x61,0x78,0x20,0x3f,0x20,0x74,0x4d,0x61,0x78,0x20,0x3a,0x20,0x6b,0x20,0x2d,0x20,0x62,0x69,0x61,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x67,0x69,0x74,0x20,0x3c,0x20,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x20,0x2d,0x20,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x20,0x3e,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x6d,0x61,0x78,0x49,0x6e,0x74,0x20,0x2f,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x20,0x2a,0x3d,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x69,0x61,0x73,0x20,0x3d,0x20,0x61,0x64,0x61,0x70,0x74,0x28,0x69,0x20,0x2d,0x20,0x6f,0x6c,0x64,0x69,0x2c,0x20,0x6f,0x75,0x74,0x2c,0x20,0x6f,0x6c,0x64,0x69,0x20,0x3d,0x3d,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x69,0x60,0x20,0x77,0x61,0x73,0x20,0x73,0x75,0x70,0x70,0x6f,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x77,0x72,0x61,0x70,0x20,0x61,0x72,0x6f,0x75,0x6e,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x60,0x6f,0x75,0x74,0x60,0x20,0x74,0x6f,0x20,0x60,0x30,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x63,0x72,0x65,0x6d,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x60,0x6e,0x60,0x20,0x65,0x61,0x63,0x68,0x20,0x74,0x69,0x6d,0x65,0x2c,0x20,0x73,0x6f,0x20,0x77,0x65,0x27,0x6c,0x6c,0x20,0x66,0x69,0x78,0x20,0x74,0x68,0x61,0x74,0x20,0x6e,0x6f,0x77,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x20,0x2f,0x20,0x6f,0x75,0x74,0x29,0x20,0x3e,0x20,0x6d,0x61,0x78,0x49,0x6e,0x74,0x20,0x2d,0x20,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x20,0x2b,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x20,0x2f,0x20,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x20,0x25,0x3d,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x73,0x65,0x72,0x74,0x20,0x60,0x6e,0x60,0x20,0x61,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x60,0x69,0x60,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2b,0x2b,0x2c,0x20,0x30,0x2c,0x20,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x75,0x63,0x73,0x32,0x65,0x6e,0x63,0x6f,0x64,0x65,0x28,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x20,0x28,0x65,0x2e,0x67,0x2e,0x20,0x61,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6c,0x61,0x62,0x65,0x6c,0x29,0x20,0x74,0x6f,0x20,0x61,0x0a,0x09,0x20,0x2a,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x41,0x53,0x43,0x49,0x49,0x2d,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x54,0x68,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x54,0x68,0x65,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x69,0x6e,0x67,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x41,0x53,0x43,0x49,0x49,0x2d,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6e,0x2c,0x20,0x64,0x65,0x6c,0x74,0x61,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x62,0x61,0x73,0x69,0x63,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x62,0x69,0x61,0x73,0x2c,0x20,0x6a,0x2c,0x20,0x6d,0x2c,0x20,0x71,0x2c,0x20,0x6b,0x2c,0x20,0x74,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x60,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x60,0x20,0x77,0x69,0x6c,0x6c,0x20,0x68,0x6f,0x6c,0x64,0x20,0x74,0x68,0x65,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x69,0x6e,0x20,0x60,0x69,0x6e,0x70,0x75,0x74,0x60,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x43,0x61,0x63,0x68,0x65,0x64,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x50,0x6c,0x75,0x73,0x4f,0x6e,0x65,0x2c,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x2c,0x20,0x71,0x4d,0x69,0x6e,0x75,0x73,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x69,0x6e,0x20,0x55,0x43,0x53,0x2d,0x32,0x20,0x74,0x6f,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x75,0x63,0x73,0x32,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x61,0x63,0x68,0x65,0x20,0x74,0x68,0x65,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x61,0x73,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x42,0x69,0x61,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x74,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x2b,0x2b,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3c,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x62,0x61,0x73,0x69,0x63,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x60,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x62,0x65,0x65,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x62,0x61,0x73,0x69,0x63,0x4c,0x65,0x6e,0x67,0x74,0x68,0x60,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x69,0x6e,0x69,0x73,0x68,0x20,0x74,0x68,0x65,0x20,0x62,0x61,0x73,0x69,0x63,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x2d,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x2d,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x73,0x69,0x63,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x69,0x6e,0x20,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x6f,0x70,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3c,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x6c,0x6c,0x20,0x6e,0x6f,0x6e,0x2d,0x62,0x61,0x73,0x69,0x63,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x20,0x3c,0x20,0x6e,0x20,0x68,0x61,0x76,0x65,0x20,0x62,0x65,0x65,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x2e,0x20,0x46,0x69,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x6f,0x6e,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x49,0x6e,0x74,0x2c,0x20,0x6a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x2b,0x2b,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3e,0x3d,0x20,0x6e,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3c,0x20,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x60,0x64,0x65,0x6c,0x74,0x61,0x60,0x20,0x65,0x6e,0x6f,0x75,0x67,0x68,0x20,0x74,0x6f,0x20,0x61,0x64,0x76,0x61,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x27,0x73,0x20,0x3c,0x6e,0x2c,0x69,0x3e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x74,0x6f,0x20,0x3c,0x6d,0x2c,0x30,0x3e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x67,0x75,0x61,0x72,0x64,0x20,0x61,0x67,0x61,0x69,0x6e,0x73,0x74,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x50,0x6c,0x75,0x73,0x4f,0x6e,0x65,0x20,0x3d,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x20,0x2d,0x20,0x6e,0x20,0x3e,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x28,0x6d,0x61,0x78,0x49,0x6e,0x74,0x20,0x2d,0x20,0x64,0x65,0x6c,0x74,0x61,0x29,0x20,0x2f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x50,0x6c,0x75,0x73,0x4f,0x6e,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x2b,0x3d,0x20,0x28,0x6d,0x20,0x2d,0x20,0x6e,0x29,0x20,0x2a,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x50,0x6c,0x75,0x73,0x4f,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x20,0x3d,0x20,0x6d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x69,0x6e,0x70,0x75,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x2b,0x2b,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3c,0x20,0x6e,0x20,0x26,0x26,0x20,0x2b,0x2b,0x64,0x65,0x6c,0x74,0x61,0x20,0x3e,0x20,0x6d,0x61,0x78,0x49,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x61,0x73,0x20,0x61,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x2d,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x71,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2c,0x20,0x6b,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x3b,0x20,0x3b,0x6b,0x20,0x2b,0x3d,0x20,0x62,0x61,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x20,0x3d,0x20,0x6b,0x20,0x3c,0x3d,0x20,0x62,0x69,0x61,0x73,0x20,0x3f,0x20,0x74,0x4d,0x69,0x6e,0x20,0x3a,0x20,0x6b,0x20,0x3e,0x3d,0x20,0x62,0x69,0x61,0x73,0x20,0x2b,0x20,0x74,0x4d,0x61,0x78,0x20,0x3f,0x20,0x74,0x4d,0x61,0x78,0x20,0x3a,0x20,0x6b,0x20,0x2d,0x20,0x62,0x69,0x61,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x71,0x20,0x3c,0x20,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x4d,0x69,0x6e,0x75,0x73,0x54,0x20,0x3d,0x20,0x71,0x20,0x2d,0x20,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x20,0x2d,0x20,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x64,0x69,0x67,0x69,0x74,0x54,0x6f,0x42,0x61,0x73,0x69,0x63,0x28,0x74,0x20,0x2b,0x20,0x71,0x4d,0x69,0x6e,0x75,0x73,0x54,0x20,0x25,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x2c,0x20,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x71,0x4d,0x69,0x6e,0x75,0x73,0x54,0x20,0x2f,0x20,0x62,0x61,0x73,0x65,0x4d,0x69,0x6e,0x75,0x73,0x54,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x64,0x69,0x67,0x69,0x74,0x54,0x6f,0x42,0x61,0x73,0x69,0x63,0x28,0x71,0x2c,0x20,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x69,0x61,0x73,0x20,0x3d,0x20,0x61,0x64,0x61,0x70,0x74,0x28,0x64,0x65,0x6c,0x74,0x61,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x50,0x6c,0x75,0x73,0x4f,0x6e,0x65,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x3d,0x20,0x62,0x61,0x73,0x69,0x63,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2b,0x2b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x43,0x50,0x43,0x6f,0x75,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2b,0x2b,0x64,0x65,0x6c,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2b,0x2b,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x61,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x0a,0x09,0x20,0x2a,0x20,0x74,0x6f,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2e,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x74,0x68,0x65,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x64,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x65,0x64,0x2c,0x20,0x69,0x2e,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x69,0x74,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x6d,0x61,0x74,0x74,0x65,0x72,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6c,0x6c,0x20,0x69,0x74,0x20,0x6f,0x6e,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x54,0x68,0x65,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x64,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x20,0x74,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x74,0x6f,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x54,0x68,0x65,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x70,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x28,0x69,0x6e,0x70,0x75,0x74,0x2c,0x20,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x67,0x65,0x78,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x3f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x34,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x73,0x20,0x61,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x61,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x20,0x74,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x74,0x68,0x65,0x20,0x6e,0x6f,0x6e,0x2d,0x41,0x53,0x43,0x49,0x49,0x20,0x70,0x61,0x72,0x74,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x65,0x64,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x69,0x2e,0x65,0x2e,0x20,0x69,0x74,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x6d,0x61,0x74,0x74,0x65,0x72,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6c,0x6c,0x20,0x69,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x74,0x68,0x61,0x74,0x27,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x69,0x6e,0x0a,0x09,0x20,0x2a,0x20,0x41,0x53,0x43,0x49,0x49,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x70,0x61,0x72,0x61,0x6d,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x54,0x68,0x65,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x2c,0x20,0x61,0x73,0x20,0x61,0x0a,0x09,0x20,0x2a,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x20,0x54,0x68,0x65,0x20,0x50,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x64,0x6f,0x6d,0x61,0x69,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x0a,0x09,0x20,0x2a,0x20,0x65,0x6d,0x61,0x69,0x6c,0x20,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x41,0x53,0x43,0x49,0x49,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x70,0x44,0x6f,0x6d,0x61,0x69,0x6e,0x28,0x69,0x6e,0x70,0x75,0x74,0x2c,0x20,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x67,0x65,0x78,0x4e,0x6f,0x6e,0x41,0x53,0x43,0x49,0x49,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x3f,0x20,0x22,0x78,0x6e,0x2d,0x2d,0x22,0x20,0x2b,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x28,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x22,0x31,0x2e,0x34,0x2e,0x31,0x22,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x41,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x6f,0x66,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x4a,0x61,0x76,0x61,0x53,0x63,0x72,0x69,0x70,0x74,0x27,0x73,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x0a,0x09,0x20,0x2a,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x28,0x55,0x43,0x53,0x2d,0x32,0x29,0x20,0x74,0x6f,0x20,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x20,0x63,0x6f,0x64,0x65,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x62,0x61,0x63,0x6b,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x73,0x65,0x65,0x20,0x3c,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6d,0x61,0x74,0x68,0x69,0x61,0x73,0x62,0x79,0x6e,0x65,0x6e,0x73,0x2e,0x62,0x65,0x2f,0x6e,0x6f,0x74,0x65,0x73,0x2f,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x3e,0x0a,0x09,0x20,0x2a,0x20,0x40,0x6d,0x65,0x6d,0x62,0x65,0x72,0x4f,0x66,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x40,0x74,0x79,0x70,0x65,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x09,0x20,0x2a,0x2f,0x20,0x20,0x76,0x61,0x72,0x20,0x75,0x63,0x73,0x32,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x3a,0x20,0x75,0x63,0x73,0x32,0x64,0x65,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x3a,0x20,0x75,0x63,0x73,0x32,0x65,0x6e,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x24,0x31,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x63,0x73,0x32,0x3a,0x20,0x75,0x63,0x73,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x41,0x53,0x43,0x49,0x49,0x3a,0x20,0x74,0x6f,0x41,0x53,0x43,0x49,0x49,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x3a,0x20,0x74,0x6f,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x3a,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x3a,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x24,0x32,0x20,0x3d,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x65,0x65,0x7a,0x65,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x3a,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x3a,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x3a,0x20,0x74,0x6f,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x41,0x53,0x43,0x49,0x49,0x3a,0x20,0x74,0x6f,0x41,0x53,0x43,0x49,0x49,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x63,0x73,0x32,0x3a,0x20,0x75,0x63,0x73,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x24,0x31,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x48,0x54,0x4d,0x4c,0x20,0x74,0x61,0x67,0x73,0x20,0x69,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x27,0x2f,0x27,0x20,0x74,0x6f,0x20,0x63,0x6c,0x6f,0x73,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x61,0x67,0x73,0x20,0x28,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x73,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x27,0x5c,0x6e,0x27,0x20,0x69,0x6e,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x3c,0x62,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x20,0x22,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x53,0x53,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x66,0x6f,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x75,0x74,0x6f,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x55,0x52,0x4c,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x74,0x65,0x78,0x74,0x73,0x20,0x74,0x6f,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x73,0x6f,0x6d,0x65,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x2b,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x62,0x65,0x61,0x75,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x2b,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x20,0x70,0x61,0x69,0x72,0x73,0x2c,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x6f,0x6e,0x2e,0x20,0x43,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x61,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x75,0x73,0x65,0x20,0x27,0xc2,0xab,0xc2,0xbb,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0x27,0x20,0x66,0x6f,0x72,0x20,0x52,0x75,0x73,0x73,0x69,0x61,0x6e,0x2c,0x20,0x27,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0xe2,0x80,0x9a,0xe2,0x80,0x98,0x27,0x20,0x66,0x6f,0x72,0x20,0x47,0x65,0x72,0x6d,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x5b,0x27,0xc2,0xab,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xc2,0xbb,0x27,0x2c,0x20,0x27,0xe2,0x80,0xb9,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xe2,0x80,0xba,0x27,0x5d,0x20,0x66,0x6f,0x72,0x20,0x46,0x72,0x65,0x6e,0x63,0x68,0x20,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x69,0x6e,0x67,0x20,0x6e,0x62,0x73,0x70,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x63,0x5c,0x75,0x32,0x30,0x31,0x64,0x5c,0x75,0x32,0x30,0x31,0x38,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0xe2,0x80,0x9c,0xe2,0x80,0x9d,0xe2,0x80,0x98,0xe2,0x80,0x99,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x53,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x72,0x20,0x27,0x27,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x3c,0x70,0x72,0x65,0x2e,0x2e,0x2e,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x6b,0x69,0x70,0x70,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x2f,0x2a,0x73,0x74,0x72,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x2a,0x2f,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x27,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3a,0x20,0x31,0x30,0x30,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x72,0x65,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x22,0x5a,0x65,0x72,0x6f,0x22,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x2c,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x2e,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x20,0x66,0x6f,0x72,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x7a,0x65,0x72,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x48,0x54,0x4d,0x4c,0x20,0x74,0x61,0x67,0x73,0x20,0x69,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x27,0x2f,0x27,0x20,0x74,0x6f,0x20,0x63,0x6c,0x6f,0x73,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x61,0x67,0x73,0x20,0x28,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x73,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x27,0x5c,0x6e,0x27,0x20,0x69,0x6e,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x3c,0x62,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x20,0x22,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x53,0x53,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x66,0x6f,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x75,0x74,0x6f,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x55,0x52,0x4c,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x74,0x65,0x78,0x74,0x73,0x20,0x74,0x6f,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x73,0x6f,0x6d,0x65,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x2b,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x62,0x65,0x61,0x75,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x2b,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x20,0x70,0x61,0x69,0x72,0x73,0x2c,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x6f,0x6e,0x2e,0x20,0x43,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x61,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x75,0x73,0x65,0x20,0x27,0xc2,0xab,0xc2,0xbb,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0x27,0x20,0x66,0x6f,0x72,0x20,0x52,0x75,0x73,0x73,0x69,0x61,0x6e,0x2c,0x20,0x27,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0xe2,0x80,0x9a,0xe2,0x80,0x98,0x27,0x20,0x66,0x6f,0x72,0x20,0x47,0x65,0x72,0x6d,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x5b,0x27,0xc2,0xab,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xc2,0xbb,0x27,0x2c,0x20,0x27,0xe2,0x80,0xb9,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xe2,0x80,0xba,0x27,0x5d,0x20,0x66,0x6f,0x72,0x20,0x46,0x72,0x65,0x6e,0x63,0x68,0x20,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x69,0x6e,0x67,0x20,0x6e,0x62,0x73,0x70,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x63,0x5c,0x75,0x32,0x30,0x31,0x64,0x5c,0x75,0x32,0x30,0x31,0x38,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0xe2,0x80,0x9c,0xe2,0x80,0x9d,0xe2,0x80,0x98,0xe2,0x80,0x99,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x53,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x72,0x20,0x27,0x27,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x3c,0x70,0x72,0x65,0x2e,0x2e,0x2e,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x6b,0x69,0x70,0x70,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x2f,0x2a,0x73,0x74,0x72,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x2a,0x2f,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x27,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x72,0x65,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x5b,0x20,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x22,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x5b,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x5b,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x32,0x3a,0x20,0x5b,0x20,0x22,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x5f,0x70,0x61,0x69,0x72,0x73,0x22,0x2c,0x20,0x22,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5f,0x6a,0x6f,0x69,0x6e,0x22,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x48,0x54,0x4d,0x4c,0x20,0x74,0x61,0x67,0x73,0x20,0x69,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x55,0x73,0x65,0x20,0x27,0x2f,0x27,0x20,0x74,0x6f,0x20,0x63,0x6c,0x6f,0x73,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x61,0x67,0x73,0x20,0x28,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x73,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x27,0x5c,0x6e,0x27,0x20,0x69,0x6e,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x3c,0x62,0x72,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x6e,0x67,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x20,0x22,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x43,0x53,0x53,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x66,0x6f,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x75,0x74,0x6f,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x55,0x52,0x4c,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x74,0x65,0x78,0x74,0x73,0x20,0x74,0x6f,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x73,0x6f,0x6d,0x65,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x2b,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x62,0x65,0x61,0x75,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x2b,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x20,0x70,0x61,0x69,0x72,0x73,0x2c,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x6f,0x6e,0x2e,0x20,0x43,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x61,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x75,0x73,0x65,0x20,0x27,0xc2,0xab,0xc2,0xbb,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0x27,0x20,0x66,0x6f,0x72,0x20,0x52,0x75,0x73,0x73,0x69,0x61,0x6e,0x2c,0x20,0x27,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0xe2,0x80,0x9a,0xe2,0x80,0x98,0x27,0x20,0x66,0x6f,0x72,0x20,0x47,0x65,0x72,0x6d,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x5b,0x27,0xc2,0xab,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xc2,0xbb,0x27,0x2c,0x20,0x27,0xe2,0x80,0xb9,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xe2,0x80,0xba,0x27,0x5d,0x20,0x66,0x6f,0x72,0x20,0x46,0x72,0x65,0x6e,0x63,0x68,0x20,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x69,0x6e,0x67,0x20,0x6e,0x62,0x73,0x70,0x29,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x20,0x22,0x5c,0x75,0x32,0x30,0x31,0x63,0x5c,0x75,0x32,0x30,0x31,0x64,0x5c,0x75,0x32,0x30,0x31,0x38,0x5c,0x75,0x32,0x30,0x31,0x39,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0xe2,0x80,0x9c,0xe2,0x80,0x9d,0xe2,0x80,0x98,0xe2,0x80,0x99,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x48,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x53,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x72,0x20,0x27,0x27,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x3c,0x70,0x72,0x65,0x2e,0x2e,0x2e,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x6b,0x69,0x70,0x70,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x2f,0x2a,0x73,0x74,0x72,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x2a,0x2f,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x27,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3a,0x20,0x32,0x30,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x72,0x65,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x5b,0x20,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x74,0x65,0x78,0x74,0x5f,0x6a,0x6f,0x69,0x6e,0x22,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x5b,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x20,0x22,0x63,0x6f,0x64,0x65,0x22,0x2c,0x20,0x22,0x66,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x22,0x2c,0x20,0x22,0x68,0x72,0x22,0x2c,0x20,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x6c,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x22,0x2c,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x2c,0x20,0x22,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x2c,0x20,0x22,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x22,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x3a,0x20,0x5b,0x20,0x22,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x20,0x22,0x62,0x61,0x63,0x6b,0x74,0x69,0x63,0x6b,0x73,0x22,0x2c,0x20,0x22,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x22,0x2c,0x20,0x22,0x65,0x6e,0x74,0x69,0x74,0x79,0x22,0x2c,0x20,0x22,0x65,0x73,0x63,0x61,0x70,0x65,0x22,0x2c,0x20,0x22,0x68,0x74,0x6d,0x6c,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x20,0x22,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6c,0x65,0x73,0x32,0x3a,0x20,0x5b,0x20,0x22,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x5f,0x70,0x61,0x69,0x72,0x73,0x22,0x2c,0x20,0x22,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x22,0x2c,0x20,0x22,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5f,0x6a,0x6f,0x69,0x6e,0x22,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x20,0x67,0x65,0x74,0x41,0x75,0x67,0x6d,0x65,0x6e,0x74,0x65,0x64,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x24,0x32,0x29,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7a,0x65,0x72,0x6f,0x3a,0x20,0x7a,0x65,0x72,0x6f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x3a,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x63,0x61,0x6e,0x20,0x70,0x72,0x6f,0x68,0x69,0x62,0x69,0x74,0x20,0x6d,0x6f,0x72,0x65,0x20,0x74,0x68,0x61,0x6e,0x20,0x72,0x65,0x61,0x6c,0x6c,0x79,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x58,0x53,0x53,0x2e,0x20,0x49,0x74,0x27,0x73,0x20,0x61,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x61,0x64,0x65,0x6f,0x66,0x66,0x20,0x74,0x6f,0x20,0x6b,0x65,0x65,0x70,0x20,0x63,0x6f,0x64,0x65,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x61,0x6e,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x73,0x65,0x63,0x75,0x72,0x65,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x20,0x2d,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x61,0x73,0x20,0x79,0x6f,0x75,0x20,0x77,0x69,0x73,0x68,0x2e,0x20,0x4f,0x72,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x69,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x75,0x6d,0x6d,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x75,0x73,0x65,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x73,0x61,0x6e,0x69,0x74,0x69,0x7a,0x65,0x72,0x2e,0x0a,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x42,0x41,0x44,0x5f,0x50,0x52,0x4f,0x54,0x4f,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x28,0x76,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x7c,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x7c,0x66,0x69,0x6c,0x65,0x7c,0x64,0x61,0x74,0x61,0x29,0x3a,0x2f,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x47,0x4f,0x4f,0x44,0x5f,0x44,0x41,0x54,0x41,0x5f,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x5c,0x2f,0x28,0x67,0x69,0x66,0x7c,0x70,0x6e,0x67,0x7c,0x6a,0x70,0x65,0x67,0x7c,0x77,0x65,0x62,0x70,0x29,0x3b,0x2f,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x72,0x6c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x61,0x74,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x2c,0x20,0x61,0x6e,0x64,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x72,0x20,0x3d,0x20,0x75,0x72,0x6c,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x42,0x41,0x44,0x5f,0x50,0x52,0x4f,0x54,0x4f,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x20,0x3f,0x20,0x47,0x4f,0x4f,0x44,0x5f,0x44,0x41,0x54,0x41,0x5f,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x74,0x72,0x29,0x20,0x3f,0x20,0x74,0x72,0x75,0x65,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3a,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x52,0x45,0x43,0x4f,0x44,0x45,0x5f,0x48,0x4f,0x53,0x54,0x4e,0x41,0x4d,0x45,0x5f,0x46,0x4f,0x52,0x20,0x3d,0x20,0x5b,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x22,0x2c,0x20,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x22,0x2c,0x20,0x22,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x22,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x3d,0x20,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x75,0x72,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x6f,0x64,0x65,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x73,0x20,0x69,0x6e,0x20,0x75,0x72,0x6c,0x73,0x20,0x6c,0x69,0x6b,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x68,0x6f,0x73,0x74,0x2f,0x60,0x2c,0x20,0x60,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x68,0x6f,0x73,0x74,0x2f,0x60,0x2c,0x20,0x60,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x75,0x73,0x65,0x72,0x40,0x68,0x6f,0x73,0x74,0x60,0x2c,0x20,0x60,0x2f,0x2f,0x68,0x6f,0x73,0x74,0x2f,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x65,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x6d,0x65,0x74,0x68,0x69,0x6e,0x67,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x20,0x28,0x65,0x2e,0x67,0x2e,0x20,0x60,0x73,0x6b,0x79,0x70,0x65,0x3a,0x6e,0x61,0x6d,0x65,0x60,0x20,0x74,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x61,0x73,0x20,0x60,0x73,0x6b,0x79,0x70,0x65,0x3a,0x68,0x6f,0x73,0x74,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x7c,0x7c,0x20,0x52,0x45,0x43,0x4f,0x44,0x45,0x5f,0x48,0x4f,0x53,0x54,0x4e,0x41,0x4d,0x45,0x5f,0x46,0x4f,0x52,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x29,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x74,0x6f,0x41,0x53,0x43,0x49,0x49,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x29,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x65,0x6e,0x63,0x6f,0x64,0x65,0x28,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x75,0x72,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x3d,0x20,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x75,0x72,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x6e,0x63,0x6f,0x64,0x65,0x20,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x73,0x20,0x69,0x6e,0x20,0x75,0x72,0x6c,0x73,0x20,0x6c,0x69,0x6b,0x65,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x60,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x68,0x6f,0x73,0x74,0x2f,0x60,0x2c,0x20,0x60,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x68,0x6f,0x73,0x74,0x2f,0x60,0x2c,0x20,0x60,0x6d,0x61,0x69,0x6c,0x74,0x6f,0x3a,0x75,0x73,0x65,0x72,0x40,0x68,0x6f,0x73,0x74,0x60,0x2c,0x20,0x60,0x2f,0x2f,0x68,0x6f,0x73,0x74,0x2f,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x57,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x65,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x6d,0x65,0x74,0x68,0x69,0x6e,0x67,0x20,0x77,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x6e,0x27,0x74,0x20,0x28,0x65,0x2e,0x67,0x2e,0x20,0x60,0x73,0x6b,0x79,0x70,0x65,0x3a,0x6e,0x61,0x6d,0x65,0x60,0x20,0x74,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x61,0x73,0x20,0x60,0x73,0x6b,0x79,0x70,0x65,0x3a,0x68,0x6f,0x73,0x74,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x7c,0x7c,0x20,0x52,0x45,0x43,0x4f,0x44,0x45,0x5f,0x48,0x4f,0x53,0x54,0x4e,0x41,0x4d,0x45,0x5f,0x46,0x4f,0x52,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x29,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2e,0x74,0x6f,0x55,0x6e,0x69,0x63,0x6f,0x64,0x65,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x2e,0x68,0x6f,0x73,0x74,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x29,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x64,0x64,0x20,0x27,0x25,0x27,0x20,0x74,0x6f,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x6f,0x66,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x69,0x73,0x73,0x75,0x65,0x73,0x2f,0x37,0x32,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x28,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x70,0x61,0x72,0x73,0x65,0x64,0x29,0x2c,0x20,0x6d,0x64,0x75,0x72,0x6c,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x61,0x72,0x73,0x20,0x2b,0x20,0x22,0x25,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x69,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x2f,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x55,0x73,0x61,0x67,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6a,0x73,0x2c,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x69,0x63,0x22,0x20,0x77,0x61,0x79,0x3a,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x6d,0x64,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x27,0x23,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x72,0x75,0x6c,0x65,0x7a,0x7a,0x21,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6a,0x73,0x2c,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x2c,0x20,0x62,0x75,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x75,0x67,0x61,0x72,0x3a,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x27,0x23,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x72,0x75,0x6c,0x65,0x7a,0x7a,0x21,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x41,0x4d,0x44,0x2c,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x22,0x77,0x69,0x6e,0x64,0x6f,0x77,0x22,0x20,0x6f,0x6e,0x20,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x6c,0x6f,0x61,0x64,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x2c,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x20,0x64,0x61,0x73,0x68,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x69,0x74,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x27,0x23,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x20,0x72,0x75,0x6c,0x65,0x7a,0x7a,0x21,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x6c,0x69,0x6e,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2c,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x77,0x72,0x61,0x70,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x27,0x5f,0x5f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x5f,0x5f,0x20,0x72,0x75,0x6c,0x65,0x7a,0x7a,0x21,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x28,0x5b,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2c,0x20,0x60,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x60,0x20,0x2f,0x20,0x60,0x7a,0x65,0x72,0x6f,0x60,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x43,0x72,0x65,0x61,0x74,0x65,0x73,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x73,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x60,0x6e,0x65,0x77,0x60,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x6e,0x61,0x6d,0x65,0x64,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x20,0x61,0x73,0x20,0x61,0x20,0x63,0x6f,0x6e,0x76,0x65,0x6e,0x69,0x65,0x6e,0x63,0x65,0x20,0x74,0x6f,0x20,0x71,0x75,0x69,0x63,0x6b,0x6c,0x79,0x0a,0x09,0x20,0x2a,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x2f,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x66,0x6f,0x72,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x20,0x75,0x73,0x65,0x20,0x63,0x61,0x73,0x65,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5b,0x22,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x22,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2f,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2e,0x6a,0x73,0x29,0x20,0x2d,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x73,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x74,0x6f,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x20,0x5b,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x4d,0x61,0x72,0x6b,0x5d,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x2e,0x6f,0x72,0x67,0x2f,0x29,0x20,0x6d,0x6f,0x64,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x6a,0x73,0x29,0x20,0x2d,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x20,0x74,0x6f,0x20,0x47,0x46,0x4d,0x2c,0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x6e,0x6f,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x67,0x69,0x76,0x65,0x6e,0x2e,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x73,0x20,0x61,0x6c,0x6c,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x62,0x75,0x74,0x20,0x73,0x74,0x69,0x6c,0x6c,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x68,0x74,0x6d,0x6c,0x2c,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x20,0x26,0x20,0x61,0x75,0x74,0x6f,0x6c,0x69,0x6e,0x6b,0x65,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5b,0x22,0x7a,0x65,0x72,0x6f,0x22,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2f,0x7a,0x65,0x72,0x6f,0x2e,0x6a,0x73,0x29,0x20,0x2d,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x61,0x6c,0x6c,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2e,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x20,0x74,0x6f,0x20,0x71,0x75,0x69,0x63,0x6b,0x6c,0x79,0x20,0x73,0x65,0x74,0x75,0x70,0x20,0x79,0x6f,0x75,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x76,0x69,0x61,0x20,0x60,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x29,0x60,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x77,0x68,0x65,0x6e,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x60,0x62,0x6f,0x6c,0x64,0x60,0x20,0x61,0x6e,0x64,0x20,0x60,0x69,0x74,0x61,0x6c,0x69,0x63,0x60,0x20,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x61,0x6e,0x64,0x20,0x6e,0x6f,0x74,0x68,0x69,0x6e,0x67,0x20,0x65,0x6c,0x73,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x68,0x74,0x6d,0x6c,0x5f,0x5f,0x20,0x2d,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2e,0x20,0x53,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x48,0x54,0x4d,0x4c,0x20,0x74,0x61,0x67,0x73,0x20,0x69,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x20,0x42,0x65,0x20,0x63,0x61,0x72,0x65,0x66,0x75,0x6c,0x21,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x54,0x68,0x61,0x74,0x27,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x61,0x66,0x65,0x21,0x20,0x59,0x6f,0x75,0x20,0x6d,0x61,0x79,0x20,0x6e,0x65,0x65,0x64,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x73,0x61,0x6e,0x69,0x74,0x69,0x7a,0x65,0x72,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x74,0x65,0x63,0x74,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x58,0x53,0x53,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x49,0x74,0x27,0x73,0x20,0x62,0x65,0x74,0x74,0x65,0x72,0x20,0x74,0x6f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x20,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x73,0x20,0x76,0x69,0x61,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2c,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x65,0x6e,0x61,0x62,0x6c,0x69,0x6e,0x67,0x20,0x48,0x54,0x4d,0x4c,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x78,0x68,0x74,0x6d,0x6c,0x4f,0x75,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2e,0x20,0x53,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x27,0x2f,0x27,0x20,0x77,0x68,0x65,0x6e,0x20,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x61,0x67,0x73,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x28,0x60,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x60,0x29,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x66,0x75,0x6c,0x6c,0x20,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x4d,0x61,0x72,0x6b,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x2e,0x20,0x49,0x6e,0x20,0x72,0x65,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x77,0x6f,0x72,0x6c,0x64,0x20,0x79,0x6f,0x75,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x65,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x62,0x72,0x65,0x61,0x6b,0x73,0x5f,0x5f,0x20,0x2d,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2e,0x20,0x53,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x60,0x5c,0x6e,0x60,0x20,0x69,0x6e,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x60,0x3c,0x62,0x72,0x3e,0x60,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x6c,0x61,0x6e,0x67,0x50,0x72,0x65,0x66,0x69,0x78,0x5f,0x5f,0x20,0x2d,0x20,0x60,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x60,0x2e,0x20,0x43,0x53,0x53,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x66,0x6f,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x43,0x61,0x6e,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x66,0x75,0x6c,0x20,0x66,0x6f,0x72,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x5f,0x5f,0x20,0x2d,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2e,0x20,0x53,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x61,0x75,0x74,0x6f,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x20,0x55,0x52,0x4c,0x2d,0x6c,0x69,0x6b,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x74,0x6f,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x5f,0x5f,0x20,0x20,0x2d,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2e,0x20,0x53,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x5b,0x73,0x6f,0x6d,0x65,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x63,0x6f,0x72,0x65,0x2f,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6a,0x73,0x29,0x20,0x2b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x62,0x65,0x61,0x75,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x28,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x71,0x75,0x6f,0x74,0x65,0x73,0x5f,0x5f,0x20,0x2d,0x20,0x60,0xe2,0x80,0x9c,0xe2,0x80,0x9d,0xe2,0x80,0x98,0xe2,0x80,0x99,0x60,0x2c,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x6f,0x72,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x20,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x2b,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x70,0x61,0x69,0x72,0x73,0x2c,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x20,0x6f,0x6e,0x2e,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x75,0x73,0x65,0x20,0x60,0x27,0xc2,0xab,0xc2,0xbb,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0x27,0x60,0x20,0x66,0x6f,0x72,0x20,0x52,0x75,0x73,0x73,0x69,0x61,0x6e,0x2c,0x20,0x60,0x27,0xe2,0x80,0x9e,0xe2,0x80,0x9c,0xe2,0x80,0x9a,0xe2,0x80,0x98,0x27,0x60,0x20,0x66,0x6f,0x72,0x20,0x47,0x65,0x72,0x6d,0x61,0x6e,0x2c,0x20,0x61,0x6e,0x64,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x60,0x5b,0x27,0xc2,0xab,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xc2,0xbb,0x27,0x2c,0x20,0x27,0xe2,0x80,0xb9,0x5c,0x78,0x41,0x30,0x27,0x2c,0x20,0x27,0x5c,0x78,0x41,0x30,0xe2,0x80,0xba,0x27,0x5d,0x60,0x20,0x66,0x6f,0x72,0x20,0x46,0x72,0x65,0x6e,0x63,0x68,0x20,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x69,0x6e,0x67,0x20,0x6e,0x62,0x73,0x70,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x5f,0x5f,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x5f,0x5f,0x20,0x2d,0x20,0x60,0x6e,0x75,0x6c,0x6c,0x60,0x2e,0x20,0x48,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x66,0x65,0x6e,0x63,0x65,0x64,0x20,0x63,0x6f,0x64,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x48,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x20,0x60,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x73,0x74,0x72,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x29,0x60,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x2e,0x20,0x49,0x74,0x20,0x63,0x61,0x6e,0x20,0x61,0x6c,0x73,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x79,0x2e,0x20,0x49,0x66,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x3c,0x70,0x72,0x65,0x2e,0x2e,0x2e,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x69,0x73,0x20,0x73,0x6b,0x69,0x70,0x70,0x65,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x20,0x6d,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x27,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6d,0x6f,0x64,0x65,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x65,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x73,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x68,0x6c,0x6a,0x73,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x2e,0x6a,0x73,0x27,0x29,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x6a,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x73,0x74,0x72,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x6e,0x67,0x20,0x26,0x26,0x20,0x68,0x6c,0x6a,0x73,0x2e,0x67,0x65,0x74,0x4c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x28,0x6c,0x61,0x6e,0x67,0x29,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x6c,0x6a,0x73,0x2e,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x28,0x73,0x74,0x72,0x2c,0x20,0x7b,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x3a,0x20,0x6c,0x61,0x6e,0x67,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x5f,0x5f,0x29,0x20,0x7b,0x7d,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x27,0x3b,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x20,0x65,0x78,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x65,0x73,0x63,0x61,0x70,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x7d,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4f,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x66,0x75,0x6c,0x6c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x28,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x74,0x6f,0x20,0x60,0x3c,0x70,0x72,0x65,0x3e,0x60,0x29,0x3a,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x68,0x6c,0x6a,0x73,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x2e,0x6a,0x73,0x27,0x29,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x6a,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x41,0x63,0x74,0x75,0x61,0x6c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x3a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x73,0x74,0x72,0x2c,0x20,0x6c,0x61,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x6e,0x67,0x20,0x26,0x26,0x20,0x68,0x6c,0x6a,0x73,0x2e,0x67,0x65,0x74,0x4c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x28,0x6c,0x61,0x6e,0x67,0x29,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x3c,0x70,0x72,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x6c,0x6a,0x73,0x22,0x3e,0x3c,0x63,0x6f,0x64,0x65,0x3e,0x27,0x20,0x2b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6c,0x6a,0x73,0x2e,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x28,0x73,0x74,0x72,0x2c,0x20,0x7b,0x20,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x3a,0x20,0x6c,0x61,0x6e,0x67,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x2b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x3c,0x2f,0x63,0x6f,0x64,0x65,0x3e,0x3c,0x2f,0x70,0x72,0x65,0x3e,0x27,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x5f,0x5f,0x29,0x20,0x7b,0x7d,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x27,0x3c,0x70,0x72,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x6c,0x6a,0x73,0x22,0x3e,0x3c,0x63,0x6f,0x64,0x65,0x3e,0x27,0x20,0x2b,0x20,0x6d,0x64,0x2e,0x75,0x74,0x69,0x6c,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x48,0x74,0x6d,0x6c,0x28,0x73,0x74,0x72,0x29,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x63,0x6f,0x64,0x65,0x3e,0x3c,0x2f,0x70,0x72,0x65,0x3e,0x27,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x7d,0x0a,0x09,0x20,0x2a,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x74,0x68,0x69,0x73,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x2d,0x3e,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x5b,0x5b,0x50,0x61,0x72,0x73,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x5d,0x5d,0x2e,0x20,0x59,0x6f,0x75,0x20,0x6d,0x61,0x79,0x20,0x6e,0x65,0x65,0x64,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x68,0x65,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x20,0x46,0x6f,0x72,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x75,0x73,0x65,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x20,0x61,0x6e,0x64,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x2d,0x3e,0x20,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x5b,0x5b,0x50,0x61,0x72,0x73,0x65,0x72,0x42,0x6c,0x6f,0x63,0x6b,0x5d,0x5d,0x2e,0x20,0x59,0x6f,0x75,0x20,0x6d,0x61,0x79,0x20,0x6e,0x65,0x65,0x64,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x68,0x65,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x20,0x46,0x6f,0x72,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x75,0x73,0x65,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x20,0x61,0x6e,0x64,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x5f,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x63,0x6f,0x72,0x65,0x20,0x2d,0x3e,0x20,0x43,0x6f,0x72,0x65,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x5b,0x5b,0x43,0x6f,0x72,0x65,0x5d,0x5d,0x20,0x63,0x68,0x61,0x69,0x6e,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x6f,0x72,0x2e,0x20,0x59,0x6f,0x75,0x20,0x6d,0x61,0x79,0x20,0x6e,0x65,0x65,0x64,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x6e,0x65,0x77,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x68,0x65,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x20,0x46,0x6f,0x72,0x20,0x73,0x69,0x6d,0x70,0x6c,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x75,0x73,0x65,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x20,0x61,0x6e,0x64,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x72,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x5f,0x63,0x6f,0x72,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x2d,0x3e,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x5b,0x5b,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x5d,0x5d,0x2e,0x20,0x55,0x73,0x65,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x6d,0x6f,0x64,0x69,0x66,0x79,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x6c,0x6f,0x6f,0x6b,0x2e,0x20,0x4f,0x72,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x6e,0x65,0x77,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x74,0x79,0x70,0x65,0x73,0x2c,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x79,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x20,0x20,0x2f,0x2f,0x2e,0x2e,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x7d,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x75,0x6c,0x65,0x73,0x5b,0x27,0x6d,0x79,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x27,0x5d,0x20,0x3d,0x20,0x6d,0x79,0x54,0x6f,0x6b,0x65,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x53,0x65,0x65,0x20,0x5b,0x5b,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x5d,0x5d,0x20,0x64,0x6f,0x63,0x73,0x20,0x61,0x6e,0x64,0x20,0x5b,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x63,0x6f,0x64,0x65,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x6a,0x73,0x29,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x20,0x2d,0x3e,0x20,0x4c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2d,0x69,0x74,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2d,0x69,0x74,0x29,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x55,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x5b,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x72,0x75,0x6c,0x65,0x73,0x5f,0x63,0x6f,0x72,0x65,0x2f,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x2e,0x6a,0x73,0x29,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x72,0x75,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x6c,0x69,0x6e,0x6b,0x69,0x66,0x79,0x49,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x20,0x2d,0x3e,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x43,0x6f,0x6d,0x6d,0x6f,0x6e,0x4d,0x61,0x72,0x6b,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x73,0x20,0x74,0x6f,0x6f,0x20,0x6d,0x75,0x63,0x68,0x20,0x69,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x73,0x2e,0x20,0x42,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x77,0x65,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x3a,0x60,0x2c,0x20,0x60,0x76,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x3a,0x60,0x2c,0x20,0x60,0x66,0x69,0x6c,0x65,0x3a,0x60,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x61,0x6c,0x6d,0x6f,0x73,0x74,0x20,0x61,0x6c,0x6c,0x20,0x60,0x64,0x61,0x74,0x61,0x3a,0x2e,0x2e,0x2e,0x60,0x20,0x73,0x63,0x68,0x65,0x6d,0x61,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x20,0x73,0x6f,0x6d,0x65,0x20,0x65,0x6d,0x62,0x65,0x64,0x64,0x65,0x64,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x59,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x75,0x72,0x3a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x3b,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x65,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x29,0x20,0x7b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x7d,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x28,0x75,0x72,0x6c,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x63,0x6f,0x64,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x75,0x72,0x6c,0x20,0x74,0x6f,0x20,0x61,0x20,0x6d,0x61,0x63,0x68,0x69,0x6e,0x65,0x2d,0x72,0x65,0x61,0x64,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2c,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x20,0x75,0x72,0x6c,0x2d,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x2c,0x20,0x70,0x75,0x6e,0x79,0x63,0x6f,0x64,0x65,0x2c,0x20,0x65,0x74,0x63,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x28,0x75,0x72,0x6c,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x75,0x72,0x6c,0x20,0x74,0x6f,0x20,0x61,0x20,0x68,0x75,0x6d,0x61,0x6e,0x2d,0x72,0x65,0x61,0x64,0x61,0x62,0x6c,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x60,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4c,0x69,0x6e,0x6b,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x45,0x78,0x70,0x6f,0x73,0x65,0x20,0x75,0x74,0x69,0x6c,0x73,0x20,0x26,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x66,0x6f,0x72,0x20,0x65,0x61,0x73,0x79,0x20,0x61,0x63,0x63,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x75,0x74,0x69,0x6c,0x73,0x20,0x2d,0x3e,0x20,0x75,0x74,0x69,0x6c,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x41,0x73,0x73,0x6f,0x72,0x74,0x65,0x64,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x75,0x73,0x65,0x66,0x75,0x6c,0x20,0x74,0x6f,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x20,0x53,0x65,0x65,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x68,0x65,0x72,0x65,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x2f,0x75,0x74,0x69,0x6c,0x73,0x2e,0x6a,0x73,0x29,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x75,0x74,0x69,0x6c,0x73,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x23,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x2d,0x3e,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x75,0x73,0x65,0x66,0x75,0x6c,0x20,0x74,0x6f,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x20,0x53,0x65,0x65,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x0a,0x09,0x20,0x20,0x20,0x2a,0x20,0x5b,0x68,0x65,0x72,0x65,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x2e,0x0a,0x09,0x20,0x20,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x73,0x65,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x65,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x28,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x61,0x73,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x29,0x2e,0x20,0x50,0x72,0x6f,0x62,0x61,0x62,0x6c,0x79,0x2c,0x20,0x79,0x6f,0x75,0x0a,0x09,0x20,0x2a,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x6e,0x65,0x65,0x64,0x20,0x69,0x74,0x2c,0x20,0x62,0x75,0x74,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x20,0x63,0x61,0x6c,0x6c,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x73,0x65,0x74,0x28,0x7b,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x62,0x72,0x65,0x61,0x6b,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x73,0x65,0x74,0x28,0x7b,0x20,0x74,0x79,0x70,0x6f,0x67,0x72,0x61,0x70,0x68,0x65,0x72,0x2c,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x5f,0x5f,0x4e,0x6f,0x74,0x65,0x3a,0x5f,0x5f,0x20,0x54,0x6f,0x20,0x61,0x63,0x68,0x69,0x65,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x62,0x65,0x73,0x74,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x2c,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x79,0x20,0x61,0x0a,0x09,0x20,0x2a,0x20,0x60,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x60,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x66,0x6c,0x79,0x2e,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x09,0x20,0x2a,0x20,0x69,0x74,0x27,0x73,0x20,0x62,0x65,0x73,0x74,0x20,0x74,0x6f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x20,0x65,0x61,0x63,0x68,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x65,0x74,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x74,0x69,0x6c,0x73,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x42,0x61,0x74,0x63,0x68,0x20,0x6c,0x6f,0x61,0x64,0x20,0x6f,0x66,0x20,0x61,0x6c,0x6c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6d,0x70,0x65,0x6e,0x65,0x6e,0x74,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x61,0x6e,0x64,0x20,0x79,0x6f,0x75,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x6c,0x79,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x69,0x74,0x2e,0x20,0x42,0x75,0x74,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x77,0x69,0x6c,0x6c,0x20,0x2d,0x20,0x73,0x65,0x65,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x0a,0x09,0x20,0x2a,0x20,0x61,0x6e,0x64,0x20,0x64,0x61,0x74,0x61,0x20,0x73,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x5b,0x68,0x65,0x72,0x65,0x5d,0x28,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2f,0x74,0x72,0x65,0x65,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x6c,0x69,0x62,0x2f,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x57,0x65,0x20,0x73,0x74,0x72,0x6f,0x6e,0x67,0x6c,0x79,0x20,0x72,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x6c,0x6f,0x61,0x64,0x73,0x2e,0x20,0x54,0x68,0x61,0x74,0x0a,0x09,0x20,0x2a,0x20,0x77,0x69,0x6c,0x6c,0x20,0x67,0x69,0x76,0x65,0x20,0x62,0x65,0x74,0x74,0x65,0x72,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x65,0x78,0x74,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x65,0x6c,0x66,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2c,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x74,0x69,0x6c,0x73,0x2e,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x57,0x72,0x6f,0x6e,0x67,0x20,0x60,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x60,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x20,0x22,0x27,0x20,0x2b,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x27,0x22,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x6e,0x61,0x6d,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x57,0x72,0x6f,0x6e,0x67,0x20,0x60,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x60,0x20,0x70,0x72,0x65,0x73,0x65,0x74,0x2c,0x20,0x63,0x61,0x6e,0x27,0x74,0x20,0x62,0x65,0x20,0x65,0x6d,0x70,0x74,0x79,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x2e,0x73,0x65,0x74,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x4f,0x6e,0x6c,0x79,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x73,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x72,0x32,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x4f,0x6e,0x6c,0x79,0x28,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x73,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3a,0x20,0x73,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x45,0x6e,0x61,0x62,0x6c,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x72,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x20,0x49,0x74,0x20,0x77,0x69,0x6c,0x6c,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x66,0x69,0x6e,0x64,0x20,0x61,0x70,0x70,0x72,0x6f,0x70,0x72,0x69,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x20,0x49,0x66,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2c,0x20,0x61,0x6e,0x64,0x20,0x60,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x60,0x0a,0x09,0x20,0x2a,0x20,0x6e,0x6f,0x74,0x20,0x73,0x65,0x74,0x20,0x2d,0x20,0x74,0x68,0x72,0x6f,0x77,0x73,0x20,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x5b,0x27,0x73,0x75,0x62,0x27,0x2c,0x20,0x27,0x73,0x75,0x70,0x27,0x5d,0x29,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x28,0x27,0x73,0x6d,0x61,0x72,0x74,0x71,0x75,0x6f,0x74,0x65,0x73,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x5b,0x20,0x6c,0x69,0x73,0x74,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x5b,0x20,0x22,0x63,0x6f,0x72,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x20,0x5d,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x61,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x5b,0x63,0x68,0x61,0x69,0x6e,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x72,0x75,0x6c,0x65,0x72,0x32,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x69,0x73,0x73,0x65,0x64,0x20,0x3d,0x20,0x6c,0x69,0x73,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x69,0x73,0x73,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x21,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x20,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x72,0x75,0x6c,0x65,0x28,0x73,0x29,0x3a,0x20,0x22,0x20,0x2b,0x20,0x6d,0x69,0x73,0x73,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x41,0x72,0x72,0x61,0x79,0x29,0x3a,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x6f,0x72,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3a,0x20,0x73,0x65,0x74,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x74,0x6f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x75,0x6c,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x73,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x5d,0x5d,0x2c,0x20,0x62,0x75,0x74,0x20,0x74,0x75,0x72,0x6e,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x6f,0x66,0x66,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6c,0x69,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x5b,0x20,0x6c,0x69,0x73,0x74,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x5b,0x20,0x22,0x63,0x6f,0x72,0x65,0x22,0x2c,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x20,0x5d,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x61,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x5b,0x63,0x68,0x61,0x69,0x6e,0x5d,0x2e,0x72,0x75,0x6c,0x65,0x72,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2e,0x72,0x75,0x6c,0x65,0x72,0x32,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x28,0x6c,0x69,0x73,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x69,0x73,0x73,0x65,0x64,0x20,0x3d,0x20,0x6c,0x69,0x73,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x69,0x73,0x73,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x21,0x69,0x67,0x6e,0x6f,0x72,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x20,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x72,0x75,0x6c,0x65,0x28,0x73,0x29,0x3a,0x20,0x22,0x20,0x2b,0x20,0x6d,0x69,0x73,0x73,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x63,0x68,0x61,0x69,0x6e,0x61,0x62,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x75,0x73,0x65,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4c,0x6f,0x61,0x64,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x67,0x69,0x76,0x65,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x69,0x6e,0x74,0x6f,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x49,0x74,0x27,0x73,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x20,0x73,0x75,0x67,0x61,0x72,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x6c,0x20,0x60,0x70,0x6c,0x75,0x67,0x69,0x6e,0x28,0x6d,0x64,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x60,0x20,0x77,0x69,0x74,0x68,0x20,0x63,0x75,0x72,0x72,0x69,0x6e,0x67,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x23,0x23,0x23,0x23,0x23,0x20,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x6a,0x61,0x76,0x61,0x73,0x63,0x72,0x69,0x70,0x74,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2d,0x66,0x6f,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x76,0x61,0x72,0x20,0x6d,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x27,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x27,0x29,0x28,0x29,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x75,0x73,0x65,0x28,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x2c,0x20,0x27,0x66,0x6f,0x6f,0x5f,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x27,0x2c,0x20,0x27,0x74,0x65,0x78,0x74,0x27,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x29,0x20,0x7b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x66,0x6f,0x6f,0x2f,0x67,0x2c,0x20,0x27,0x62,0x61,0x72,0x27,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x09,0x20,0x2a,0x20,0x60,0x60,0x60,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x75,0x73,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x2f,0x2a,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x2e,0x2e,0x2e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x20,0x74,0x68,0x69,0x73,0x20,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2e,0x61,0x70,0x70,0x6c,0x79,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x73,0x72,0x63,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x65,0x6e,0x76,0x69,0x72,0x6f,0x6e,0x6d,0x65,0x6e,0x74,0x20,0x73,0x61,0x6e,0x64,0x62,0x6f,0x78,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x50,0x61,0x72,0x73,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x28,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x74,0x79,0x70,0x65,0x0a,0x09,0x20,0x2a,0x20,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x20,0x77,0x69,0x6c,0x6c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x2e,0x20,0x59,0x6f,0x75,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x63,0x61,0x6c,0x6c,0x20,0x74,0x68,0x69,0x73,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x2c,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x79,0x6f,0x75,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x28,0x66,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x65,0x0a,0x09,0x20,0x2a,0x20,0x41,0x53,0x54,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x65,0x6e,0x76,0x60,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x73,0x20,0x64,0x61,0x74,0x61,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x22,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x64,0x22,0x20,0x72,0x75,0x6c,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x6c,0x69,0x6b,0x65,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x69,0x6e,0x66,0x6f,0x2c,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x20,0x49,0x74,0x20,0x61,0x6c,0x73,0x6f,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6f,0x0a,0x09,0x20,0x2a,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x69,0x6e,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x63,0x61,0x73,0x65,0x73,0x2e,0x20,0x55,0x73,0x75,0x61,0x6c,0x6c,0x79,0x2c,0x20,0x79,0x6f,0x75,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x6f,0x6b,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x73,0x20,0x60,0x7b,0x7d,0x60,0x2c,0x0a,0x09,0x20,0x2a,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x65,0x6e,0x20,0x70,0x61,0x73,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x72,0x63,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x49,0x6e,0x70,0x75,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x72,0x65,0x2e,0x53,0x74,0x61,0x74,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x74,0x68,0x69,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x72,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x73,0x72,0x63,0x20,0x5b,0x2c,0x20,0x65,0x6e,0x76,0x5d,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x73,0x72,0x63,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x65,0x6e,0x76,0x69,0x72,0x6f,0x6e,0x6d,0x65,0x6e,0x74,0x20,0x73,0x61,0x6e,0x64,0x62,0x6f,0x78,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x52,0x65,0x6e,0x64,0x65,0x72,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x69,0x6e,0x74,0x6f,0x20,0x68,0x74,0x6d,0x6c,0x2e,0x20,0x49,0x74,0x20,0x64,0x6f,0x65,0x73,0x20,0x61,0x6c,0x6c,0x20,0x6d,0x61,0x67,0x69,0x63,0x20,0x66,0x6f,0x72,0x20,0x79,0x6f,0x75,0x20,0x3a,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x60,0x65,0x6e,0x76,0x60,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x28,0x60,0x7b,0x7d,0x60,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x2e,0x0a,0x09,0x20,0x2a,0x20,0x42,0x75,0x74,0x20,0x79,0x6f,0x75,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x69,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x68,0x69,0x67,0x68,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x2e,0x20,0x53,0x65,0x65,0x20,0x61,0x6c,0x73,0x6f,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0a,0x09,0x20,0x2a,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x5d,0x5d,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x76,0x20,0x3d,0x20,0x65,0x6e,0x76,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x2d,0x3e,0x20,0x41,0x72,0x72,0x61,0x79,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x73,0x72,0x63,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x65,0x6e,0x76,0x69,0x72,0x6f,0x6e,0x6d,0x65,0x6e,0x74,0x20,0x73,0x61,0x6e,0x64,0x62,0x6f,0x78,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x54,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x73,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x5d,0x5d,0x20,0x62,0x75,0x74,0x20,0x73,0x6b,0x69,0x70,0x20,0x61,0x6c,0x6c,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x20,0x49,0x74,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x74,0x68,0x65,0x0a,0x09,0x20,0x2a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x6c,0x69,0x73,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x60,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x60,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x70,0x61,0x72,0x73,0x65,0x64,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x0a,0x09,0x20,0x2a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x69,0x6e,0x20,0x60,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x60,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x20,0x41,0x6c,0x73,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x20,0x60,0x65,0x6e,0x76,0x60,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x72,0x65,0x2e,0x53,0x74,0x61,0x74,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x74,0x68,0x69,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x72,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x73,0x72,0x63,0x20,0x5b,0x2c,0x20,0x65,0x6e,0x76,0x5d,0x29,0x20,0x2d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x73,0x72,0x63,0x20,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x0a,0x09,0x20,0x2a,0x20,0x2d,0x20,0x65,0x6e,0x76,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3a,0x20,0x65,0x6e,0x76,0x69,0x72,0x6f,0x6e,0x6d,0x65,0x6e,0x74,0x20,0x73,0x61,0x6e,0x64,0x62,0x6f,0x78,0x0a,0x09,0x20,0x2a,0x0a,0x09,0x20,0x2a,0x20,0x53,0x69,0x6d,0x69,0x6c,0x61,0x72,0x20,0x74,0x6f,0x20,0x5b,0x5b,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x5d,0x5d,0x20,0x62,0x75,0x74,0x20,0x66,0x6f,0x72,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x70,0x61,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x20,0x52,0x65,0x73,0x75,0x6c,0x74,0x0a,0x09,0x20,0x2a,0x20,0x77,0x69,0x6c,0x6c,0x20,0x4e,0x4f,0x54,0x20,0x62,0x65,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x20,0x69,0x6e,0x74,0x6f,0x20,0x60,0x3c,0x70,0x3e,0x60,0x20,0x74,0x61,0x67,0x73,0x2e,0x0a,0x09,0x20,0x2a,0x2a,0x2f,0x20,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x76,0x20,0x3d,0x20,0x65,0x6e,0x76,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x65,0x6e,0x76,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x6e,0x76,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6c,0x69,0x62,0x20,0x3d,0x20,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x3b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x20,0x3d,0x20,0x6c,0x69,0x62,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x49,0x74,0x3b,0x0a,0x7d,0x29,0x29,0x3b,0x0a,0x0a,}; +unsigned int deps_markdown_it_js_len = 275098; diff --git a/llama.cpp/build/examples/server/deps_tailwindcss.js.hpp b/llama.cpp/build/examples/server/deps_tailwindcss.js.hpp new file mode 100644 index 0000000000000000000000000000000000000000..392337e610b4a0ac60b52b832c1c53804fd6aec8 --- /dev/null +++ b/llama.cpp/build/examples/server/deps_tailwindcss.js.hpp @@ -0,0 +1,2 @@ +unsigned char deps_tailwindcss_js[] = {0x28,0x28,0x29,0x3d,0x3e,0x7b,0x76,0x61,0x72,0x20,0x49,0x76,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x3b,0x76,0x61,0x72,0x20,0x55,0x69,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3b,0x76,0x61,0x72,0x20,0x44,0x76,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x3b,0x76,0x61,0x72,0x20,0x71,0x76,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4e,0x61,0x6d,0x65,0x73,0x3b,0x76,0x61,0x72,0x20,0x24,0x76,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2c,0x4c,0x76,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3b,0x76,0x61,0x72,0x20,0x63,0x66,0x3d,0x72,0x3d,0x3e,0x55,0x69,0x28,0x72,0x2c,0x22,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x66,0x3d,0x72,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x28,0x72,0x29,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x27,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x20,0x6f,0x66,0x20,0x22,0x27,0x2b,0x72,0x2b,0x27,0x22,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x27,0x29,0x7d,0x3b,0x76,0x61,0x72,0x20,0x52,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x28,0x29,0x3d,0x3e,0x28,0x72,0x26,0x26,0x28,0x65,0x3d,0x72,0x28,0x72,0x3d,0x30,0x29,0x29,0x2c,0x65,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x28,0x29,0x3d,0x3e,0x28,0x65,0x7c,0x7c,0x72,0x28,0x28,0x65,0x3d,0x7b,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3a,0x7b,0x7d,0x7d,0x29,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2c,0x65,0x29,0x2c,0x65,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x29,0x2c,0x47,0x65,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x63,0x66,0x28,0x72,0x29,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x20,0x69,0x6e,0x20,0x65,0x29,0x55,0x69,0x28,0x72,0x2c,0x74,0x2c,0x7b,0x67,0x65,0x74,0x3a,0x65,0x5b,0x74,0x5d,0x2c,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x2c,0x4d,0x76,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x71,0x76,0x28,0x65,0x29,0x29,0x21,0x4c,0x76,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x2c,0x69,0x29,0x26,0x26,0x69,0x21,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x26,0x26,0x55,0x69,0x28,0x72,0x2c,0x69,0x2c,0x7b,0x67,0x65,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x65,0x5b,0x69,0x5d,0x2c,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x21,0x28,0x74,0x3d,0x44,0x76,0x28,0x65,0x2c,0x69,0x29,0x29,0x7c,0x7c,0x74,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x2c,0x70,0x65,0x3d,0x72,0x3d,0x3e,0x4d,0x76,0x28,0x63,0x66,0x28,0x55,0x69,0x28,0x72,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x49,0x76,0x28,0x24,0x76,0x28,0x72,0x29,0x29,0x3a,0x7b,0x7d,0x2c,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x2c,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x26,0x26,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x69,0x6e,0x20,0x72,0x3f,0x7b,0x67,0x65,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x21,0x30,0x7d,0x3a,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x72,0x2c,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x21,0x30,0x7d,0x29,0x29,0x2c,0x72,0x29,0x3b,0x76,0x61,0x72,0x20,0x6d,0x2c,0x75,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6d,0x3d,0x7b,0x70,0x6c,0x61,0x74,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x22,0x2c,0x65,0x6e,0x76,0x3a,0x7b,0x7d,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x22,0x31,0x34,0x2e,0x31,0x37,0x2e,0x36,0x22,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4e,0x76,0x2c,0x62,0x65,0x2c,0x66,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4e,0x76,0x3d,0x30,0x2c,0x62,0x65,0x3d,0x7b,0x72,0x65,0x61,0x64,0x46,0x69,0x6c,0x65,0x53,0x79,0x6e,0x63,0x3a,0x72,0x3d,0x3e,0x73,0x65,0x6c,0x66,0x5b,0x72,0x5d,0x7c,0x7c,0x22,0x22,0x2c,0x73,0x74,0x61,0x74,0x53,0x79,0x6e,0x63,0x3a,0x28,0x29,0x3d,0x3e,0x28,0x7b,0x6d,0x74,0x69,0x6d,0x65,0x4d,0x73,0x3a,0x4e,0x76,0x2b,0x2b,0x7d,0x29,0x2c,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x3a,0x7b,0x72,0x65,0x61,0x64,0x46,0x69,0x6c,0x65,0x3a,0x72,0x3d,0x3e,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x73,0x65,0x6c,0x66,0x5b,0x72,0x5d,0x7c,0x7c,0x22,0x22,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4e,0x73,0x3d,0x78,0x28,0x28,0x73,0x50,0x2c,0x68,0x66,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x64,0x66,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x21,0x28,0x65,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x26,0x26,0x65,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x3e,0x30,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x60,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x60,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x30,0x22,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x6d,0x61,0x78,0x41,0x67,0x65,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x26,0x26,0x65,0x2e,0x6d,0x61,0x78,0x41,0x67,0x65,0x3d,0x3d,0x3d,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x60,0x6d,0x61,0x78,0x41,0x67,0x65,0x60,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x30,0x22,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x3d,0x65,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x41,0x67,0x65,0x3d,0x65,0x2e,0x6d,0x61,0x78,0x41,0x67,0x65,0x7c,0x7c,0x31,0x2f,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x65,0x2e,0x6f,0x6e,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x3d,0x30,0x7d,0x5f,0x65,0x6d,0x69,0x74,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x73,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x6f,0x66,0x20,0x65,0x29,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x65,0x78,0x70,0x69,0x72,0x79,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x26,0x26,0x74,0x2e,0x65,0x78,0x70,0x69,0x72,0x79,0x3c,0x3d,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x3f,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x29,0x3a,0x21,0x31,0x7d,0x5f,0x67,0x65,0x74,0x4f,0x72,0x44,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x5f,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x65,0x78,0x70,0x69,0x72,0x79,0x3f,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x4f,0x72,0x44,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x3a,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x5f,0x70,0x65,0x65,0x6b,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x69,0x29,0x7d,0x5f,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x3e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x3d,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x6d,0x69,0x74,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x29,0x7d,0x5f,0x6d,0x6f,0x76,0x65,0x54,0x6f,0x52,0x65,0x63,0x65,0x6e,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x2a,0x5f,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x41,0x73,0x63,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x3d,0x65,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x20,0x65,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x3d,0x65,0x3b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x20,0x65,0x29,0x7d,0x7d,0x67,0x65,0x74,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x74,0x29,0x7d,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6d,0x6f,0x76,0x65,0x54,0x6f,0x52,0x65,0x63,0x65,0x6e,0x74,0x28,0x65,0x2c,0x74,0x29,0x2c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x2c,0x7b,0x6d,0x61,0x78,0x41,0x67,0x65,0x3a,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x41,0x67,0x65,0x3d,0x3d,0x3d,0x31,0x2f,0x30,0x3f,0x76,0x6f,0x69,0x64,0x20,0x30,0x3a,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x41,0x67,0x65,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x3f,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2c,0x6d,0x61,0x78,0x41,0x67,0x65,0x3a,0x69,0x7d,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x28,0x65,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2c,0x65,0x78,0x70,0x69,0x72,0x79,0x3a,0x69,0x7d,0x29,0x7d,0x68,0x61,0x73,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x3f,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x3f,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x29,0x3a,0x21,0x31,0x7d,0x70,0x65,0x65,0x6b,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x65,0x6b,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x65,0x6b,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x29,0x7d,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x2d,0x2d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x7c,0x7c,0x74,0x7d,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x3d,0x30,0x7d,0x72,0x65,0x73,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x28,0x65,0x26,0x26,0x65,0x3e,0x30,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x60,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x60,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x30,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x41,0x73,0x63,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x5d,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x65,0x3b,0x69,0x3c,0x30,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x74,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x28,0x69,0x3e,0x30,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x6d,0x69,0x74,0x45,0x76,0x69,0x63,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x69,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x3d,0x30,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x3d,0x65,0x7d,0x2a,0x6b,0x65,0x79,0x73,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x65,0x5d,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x29,0x79,0x69,0x65,0x6c,0x64,0x20,0x65,0x7d,0x2a,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x2c,0x65,0x5d,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x29,0x79,0x69,0x65,0x6c,0x64,0x20,0x65,0x7d,0x2a,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x3d,0x65,0x3b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x74,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x3d,0x65,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x74,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x29,0x7d,0x7d,0x2a,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x44,0x65,0x73,0x63,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x74,0x3e,0x3d,0x30,0x3b,0x2d,0x2d,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x2c,0x5b,0x6e,0x2c,0x61,0x5d,0x3d,0x69,0x3b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x6e,0x2c,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x29,0x7d,0x65,0x3d,0x5b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x74,0x3e,0x3d,0x30,0x3b,0x2d,0x2d,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x2c,0x5b,0x6e,0x2c,0x61,0x5d,0x3d,0x69,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x6c,0x65,0x74,0x65,0x49,0x66,0x45,0x78,0x70,0x69,0x72,0x65,0x64,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x6e,0x2c,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x29,0x7d,0x7d,0x2a,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x41,0x73,0x63,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x65,0x2c,0x74,0x5d,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x41,0x73,0x63,0x65,0x6e,0x64,0x69,0x6e,0x67,0x28,0x29,0x29,0x79,0x69,0x65,0x6c,0x64,0x5b,0x65,0x2c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7d,0x67,0x65,0x74,0x20,0x73,0x69,0x7a,0x65,0x28,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x69,0x7a,0x65,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x2e,0x6b,0x65,0x79,0x73,0x28,0x29,0x29,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x7c,0x7c,0x65,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x69,0x7a,0x65,0x2b,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x29,0x7d,0x7d,0x3b,0x68,0x66,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x64,0x66,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6d,0x66,0x2c,0x67,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6d,0x66,0x3d,0x72,0x3d,0x3e,0x72,0x26,0x26,0x72,0x2e,0x5f,0x68,0x61,0x73,0x68,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x69,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x66,0x28,0x72,0x2c,0x7b,0x69,0x67,0x6e,0x6f,0x72,0x65,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x79,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x67,0x66,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x78,0x74,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x72,0x3d,0x60,0x24,0x7b,0x72,0x7d,0x60,0x2c,0x72,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x30,0x22,0x3b,0x69,0x66,0x28,0x2f,0x5e,0x5b,0x2b,0x2d,0x5d,0x3f,0x28,0x5c,0x64,0x2b,0x7c,0x5c,0x64,0x2a,0x5c,0x2e,0x5c,0x64,0x2b,0x29,0x28,0x65,0x5b,0x2b,0x2d,0x5d,0x3f,0x5c,0x64,0x2b,0x29,0x3f,0x28,0x25,0x7c,0x5c,0x77,0x2b,0x29,0x3f,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x5b,0x2b,0x2d,0x5d,0x3f,0x2f,0x2c,0x74,0x3d,0x3e,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x3f,0x22,0x22,0x3a,0x22,0x2d,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x22,0x76,0x61,0x72,0x22,0x2c,0x22,0x63,0x61,0x6c,0x63,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x22,0x2c,0x22,0x6d,0x61,0x78,0x22,0x2c,0x22,0x63,0x6c,0x61,0x6d,0x70,0x22,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x66,0x28,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x24,0x7b,0x74,0x7d,0x28,0x60,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x72,0x7d,0x20,0x2a,0x20,0x2d,0x31,0x29,0x60,0x7d,0x76,0x61,0x72,0x20,0x48,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x62,0x66,0x2c,0x77,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x62,0x66,0x3d,0x5b,0x22,0x70,0x72,0x65,0x66,0x6c,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x2c,0x22,0x61,0x63,0x63,0x65,0x73,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x22,0x2c,0x22,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x73,0x22,0x2c,0x22,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x22,0x2c,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x69,0x6e,0x73,0x65,0x74,0x22,0x2c,0x22,0x69,0x73,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x7a,0x49,0x6e,0x64,0x65,0x78,0x22,0x2c,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x53,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x45,0x6e,0x64,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x53,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x45,0x6e,0x64,0x22,0x2c,0x22,0x66,0x6c,0x6f,0x61,0x74,0x22,0x2c,0x22,0x63,0x6c,0x65,0x61,0x72,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x22,0x2c,0x22,0x62,0x6f,0x78,0x53,0x69,0x7a,0x69,0x6e,0x67,0x22,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x22,0x2c,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x2c,0x22,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x22,0x2c,0x22,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x78,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x53,0x68,0x72,0x69,0x6e,0x6b,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x47,0x72,0x6f,0x77,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x42,0x61,0x73,0x69,0x73,0x22,0x2c,0x22,0x74,0x61,0x62,0x6c,0x65,0x4c,0x61,0x79,0x6f,0x75,0x74,0x22,0x2c,0x22,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x53,0x69,0x64,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x72,0x69,0x67,0x69,0x6e,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x22,0x2c,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x2c,0x22,0x73,0x6b,0x65,0x77,0x22,0x2c,0x22,0x73,0x63,0x61,0x6c,0x65,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x63,0x75,0x72,0x73,0x6f,0x72,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x41,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x75,0x73,0x65,0x72,0x53,0x65,0x6c,0x65,0x63,0x74,0x22,0x2c,0x22,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x53,0x6e,0x61,0x70,0x54,0x79,0x70,0x65,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x53,0x6e,0x61,0x70,0x41,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x53,0x6e,0x61,0x70,0x53,0x74,0x6f,0x70,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x4d,0x61,0x72,0x67,0x69,0x6e,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x50,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x54,0x79,0x70,0x65,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x49,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x62,0x72,0x65,0x61,0x6b,0x42,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x62,0x72,0x65,0x61,0x6b,0x49,0x6e,0x73,0x69,0x64,0x65,0x22,0x2c,0x22,0x62,0x72,0x65,0x61,0x6b,0x41,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x52,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x6f,0x77,0x73,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x57,0x72,0x61,0x70,0x22,0x2c,0x22,0x70,0x6c,0x61,0x63,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x70,0x6c,0x61,0x63,0x65,0x49,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x49,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x49,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x67,0x61,0x70,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x53,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x70,0x6c,0x61,0x63,0x65,0x53,0x65,0x6c,0x66,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x53,0x65,0x6c,0x66,0x22,0x2c,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x53,0x65,0x6c,0x66,0x22,0x2c,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x2c,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x42,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x42,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x4f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x2c,0x22,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x22,0x2c,0x22,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x57,0x72,0x61,0x70,0x22,0x2c,0x22,0x77,0x6f,0x72,0x64,0x42,0x72,0x65,0x61,0x6b,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x52,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x53,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x49,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x73,0x22,0x2c,0x22,0x62,0x6f,0x78,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x42,0x72,0x65,0x61,0x6b,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x41,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x69,0x70,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x52,0x65,0x70,0x65,0x61,0x74,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x72,0x69,0x67,0x69,0x6e,0x22,0x2c,0x22,0x66,0x69,0x6c,0x6c,0x22,0x2c,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x22,0x2c,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x46,0x69,0x74,0x22,0x2c,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x41,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x22,0x2c,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x41,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x53,0x69,0x7a,0x65,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x53,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6c,0x65,0x74,0x74,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x54,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x55,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x53,0x6d,0x6f,0x6f,0x74,0x68,0x69,0x6e,0x67,0x22,0x2c,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x63,0x61,0x72,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x63,0x63,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x42,0x6c,0x65,0x6e,0x64,0x4d,0x6f,0x64,0x65,0x22,0x2c,0x22,0x6d,0x69,0x78,0x42,0x6c,0x65,0x6e,0x64,0x4d,0x6f,0x64,0x65,0x22,0x2c,0x22,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x22,0x2c,0x22,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x53,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x72,0x69,0x6e,0x67,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x62,0x6c,0x75,0x72,0x22,0x2c,0x22,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x2c,0x22,0x64,0x72,0x6f,0x70,0x53,0x68,0x61,0x64,0x6f,0x77,0x22,0x2c,0x22,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x2c,0x22,0x68,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x22,0x2c,0x22,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x2c,0x22,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x2c,0x22,0x73,0x65,0x70,0x69,0x61,0x22,0x2c,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x6c,0x75,0x72,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x47,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x48,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x49,0x6e,0x76,0x65,0x72,0x74,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x65,0x70,0x69,0x61,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x46,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x77,0x69,0x6c,0x6c,0x43,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x6f,0x72,0x63,0x65,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x41,0x64,0x6a,0x75,0x73,0x74,0x22,0x5d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x66,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x65,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x3a,0x5b,0x2e,0x2e,0x2e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x65,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x3d,0x3e,0x72,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x72,0x5b,0x69,0x5d,0x21,0x3d,0x3d,0x21,0x31,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x3d,0x3e,0x72,0x5b,0x69,0x5d,0x21,0x3d,0x3d,0x21,0x31,0x29,0x29,0x29,0x5d,0x7d,0x76,0x61,0x72,0x20,0x78,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x66,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x6b,0x66,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x51,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x65,0x2c,0x57,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x51,0x65,0x3d,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x7b,0x7d,0x2c,0x7b,0x67,0x65,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x73,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6d,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x4a,0x45,0x53,0x54,0x5f,0x57,0x4f,0x52,0x4b,0x45,0x52,0x5f,0x49,0x44,0x7c,0x7c,0x74,0x26,0x26,0x53,0x66,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x7c,0x7c,0x28,0x74,0x26,0x26,0x53,0x66,0x2e,0x61,0x64,0x64,0x28,0x74,0x29,0x2c,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x22,0x29,0x2c,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x72,0x2c,0x22,0x2d,0x22,0x2c,0x69,0x29,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x51,0x65,0x2e,0x64,0x69,0x6d,0x28,0x72,0x29,0x7d,0x76,0x61,0x72,0x20,0x53,0x66,0x2c,0x47,0x2c,0x42,0x65,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x57,0x69,0x28,0x29,0x3b,0x53,0x66,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x47,0x3d,0x7b,0x69,0x6e,0x66,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x42,0x73,0x28,0x51,0x65,0x2e,0x62,0x6f,0x6c,0x64,0x28,0x51,0x65,0x2e,0x63,0x79,0x61,0x6e,0x28,0x22,0x69,0x6e,0x66,0x6f,0x22,0x29,0x29,0x2c,0x2e,0x2e,0x2e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x5b,0x72,0x5d,0x3a,0x5b,0x65,0x2c,0x72,0x5d,0x29,0x7d,0x2c,0x77,0x61,0x72,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x5b,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x73,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x72,0x29,0x7c,0x7c,0x42,0x73,0x28,0x51,0x65,0x2e,0x62,0x6f,0x6c,0x64,0x28,0x51,0x65,0x2e,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x28,0x22,0x77,0x61,0x72,0x6e,0x22,0x29,0x29,0x2c,0x2e,0x2e,0x2e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x5b,0x72,0x5d,0x3a,0x5b,0x65,0x2c,0x72,0x5d,0x29,0x7d,0x2c,0x72,0x69,0x73,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x42,0x73,0x28,0x51,0x65,0x2e,0x62,0x6f,0x6c,0x64,0x28,0x51,0x65,0x2e,0x6d,0x61,0x67,0x65,0x6e,0x74,0x61,0x28,0x22,0x72,0x69,0x73,0x6b,0x22,0x29,0x29,0x2c,0x2e,0x2e,0x2e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x5b,0x72,0x5d,0x3a,0x5b,0x65,0x2c,0x72,0x5d,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x66,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x41,0x66,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x6a,0x73,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x72,0x28,0x7b,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x72,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x65,0x2c,0x74,0x6f,0x3a,0x74,0x7d,0x29,0x7b,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x24,0x7b,0x65,0x7d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x72,0x65,0x6e,0x61,0x6d,0x65,0x64,0x60,0x2c,0x5b,0x60,0x41,0x73,0x20,0x6f,0x66,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x24,0x7b,0x72,0x7d,0x2c,0x20,0x5c,0x60,0x24,0x7b,0x65,0x7d,0x5c,0x60,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6e,0x61,0x6d,0x65,0x64,0x20,0x74,0x6f,0x20,0x5c,0x60,0x24,0x7b,0x74,0x7d,0x5c,0x60,0x2e,0x60,0x2c,0x22,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x79,0x6f,0x75,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6c,0x65,0x20,0x74,0x6f,0x20,0x73,0x69,0x6c,0x65,0x6e,0x63,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x22,0x5d,0x29,0x7d,0x76,0x61,0x72,0x20,0x6a,0x73,0x2c,0x7a,0x73,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x6a,0x73,0x3d,0x7b,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3a,0x22,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x22,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3a,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x22,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x3a,0x22,0x23,0x30,0x30,0x30,0x22,0x2c,0x77,0x68,0x69,0x74,0x65,0x3a,0x22,0x23,0x66,0x66,0x66,0x22,0x2c,0x73,0x6c,0x61,0x74,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x38,0x66,0x61,0x66,0x63,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x31,0x66,0x35,0x66,0x39,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x65,0x32,0x65,0x38,0x66,0x30,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x63,0x62,0x64,0x35,0x65,0x31,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x39,0x34,0x61,0x33,0x62,0x38,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x36,0x34,0x37,0x34,0x38,0x62,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x34,0x37,0x35,0x35,0x36,0x39,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x33,0x33,0x34,0x31,0x35,0x35,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x31,0x65,0x32,0x39,0x33,0x62,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x30,0x66,0x31,0x37,0x32,0x61,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x32,0x30,0x36,0x31,0x37,0x22,0x7d,0x2c,0x67,0x72,0x61,0x79,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x39,0x66,0x61,0x66,0x62,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x33,0x66,0x34,0x66,0x36,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x65,0x35,0x65,0x37,0x65,0x62,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x64,0x31,0x64,0x35,0x64,0x62,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x39,0x63,0x61,0x33,0x61,0x66,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x36,0x62,0x37,0x32,0x38,0x30,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x34,0x62,0x35,0x35,0x36,0x33,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x33,0x37,0x34,0x31,0x35,0x31,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x31,0x66,0x32,0x39,0x33,0x37,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x31,0x31,0x38,0x32,0x37,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x33,0x30,0x37,0x31,0x32,0x22,0x7d,0x2c,0x7a,0x69,0x6e,0x63,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x61,0x66,0x61,0x66,0x61,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x34,0x66,0x34,0x66,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x65,0x34,0x65,0x34,0x65,0x37,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x64,0x34,0x64,0x34,0x64,0x38,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x61,0x31,0x61,0x31,0x61,0x61,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x37,0x31,0x37,0x31,0x37,0x61,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x35,0x32,0x35,0x32,0x35,0x62,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x33,0x66,0x33,0x66,0x34,0x36,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x32,0x37,0x32,0x37,0x32,0x61,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x38,0x31,0x38,0x31,0x62,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x39,0x30,0x39,0x30,0x62,0x22,0x7d,0x2c,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x61,0x66,0x61,0x66,0x61,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x35,0x66,0x35,0x66,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x65,0x35,0x65,0x35,0x65,0x35,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x64,0x34,0x64,0x34,0x64,0x34,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x61,0x33,0x61,0x33,0x61,0x33,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x37,0x33,0x37,0x33,0x37,0x33,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x35,0x32,0x35,0x32,0x35,0x32,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x34,0x30,0x34,0x30,0x34,0x30,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x32,0x36,0x32,0x36,0x32,0x36,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x37,0x31,0x37,0x31,0x37,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x61,0x30,0x61,0x30,0x61,0x22,0x7d,0x2c,0x73,0x74,0x6f,0x6e,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x61,0x66,0x61,0x66,0x39,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x35,0x66,0x35,0x66,0x34,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x65,0x37,0x65,0x35,0x65,0x34,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x64,0x36,0x64,0x33,0x64,0x31,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x61,0x38,0x61,0x32,0x39,0x65,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x37,0x38,0x37,0x31,0x36,0x63,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x35,0x37,0x35,0x33,0x34,0x65,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x34,0x34,0x34,0x30,0x33,0x63,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x32,0x39,0x32,0x35,0x32,0x34,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x63,0x31,0x39,0x31,0x37,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x63,0x30,0x61,0x30,0x39,0x22,0x7d,0x2c,0x72,0x65,0x64,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x65,0x66,0x32,0x66,0x32,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x65,0x32,0x65,0x32,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x63,0x61,0x63,0x61,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x63,0x61,0x35,0x61,0x35,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x66,0x38,0x37,0x31,0x37,0x31,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x65,0x66,0x34,0x34,0x34,0x34,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x64,0x63,0x32,0x36,0x32,0x36,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x62,0x39,0x31,0x63,0x31,0x63,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x39,0x39,0x31,0x62,0x31,0x62,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x37,0x66,0x31,0x64,0x31,0x64,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x34,0x35,0x30,0x61,0x30,0x61,0x22,0x7d,0x2c,0x6f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x66,0x66,0x37,0x65,0x64,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x66,0x65,0x64,0x64,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x64,0x37,0x61,0x61,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x64,0x62,0x61,0x37,0x34,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x66,0x62,0x39,0x32,0x33,0x63,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x66,0x39,0x37,0x33,0x31,0x36,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x65,0x61,0x35,0x38,0x30,0x63,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x63,0x32,0x34,0x31,0x30,0x63,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x39,0x61,0x33,0x34,0x31,0x32,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x37,0x63,0x32,0x64,0x31,0x32,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x34,0x33,0x31,0x34,0x30,0x37,0x22,0x7d,0x2c,0x61,0x6d,0x62,0x65,0x72,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x66,0x66,0x62,0x65,0x62,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x66,0x33,0x63,0x37,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x64,0x65,0x36,0x38,0x61,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x63,0x64,0x33,0x34,0x64,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x66,0x62,0x62,0x66,0x32,0x34,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x66,0x35,0x39,0x65,0x30,0x62,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x64,0x39,0x37,0x37,0x30,0x36,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x62,0x34,0x35,0x33,0x30,0x39,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x39,0x32,0x34,0x30,0x30,0x65,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x37,0x38,0x33,0x35,0x30,0x66,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x34,0x35,0x31,0x61,0x30,0x33,0x22,0x7d,0x2c,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x65,0x66,0x63,0x65,0x38,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x66,0x39,0x63,0x33,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x66,0x30,0x38,0x61,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x64,0x65,0x30,0x34,0x37,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x66,0x61,0x63,0x63,0x31,0x35,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x65,0x61,0x62,0x33,0x30,0x38,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x63,0x61,0x38,0x61,0x30,0x34,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x61,0x31,0x36,0x32,0x30,0x37,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x38,0x35,0x34,0x64,0x30,0x65,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x37,0x31,0x33,0x66,0x31,0x32,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x34,0x32,0x32,0x30,0x30,0x36,0x22,0x7d,0x2c,0x6c,0x69,0x6d,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x37,0x66,0x65,0x65,0x37,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x65,0x63,0x66,0x63,0x63,0x62,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x64,0x39,0x66,0x39,0x39,0x64,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x62,0x65,0x66,0x32,0x36,0x34,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x61,0x33,0x65,0x36,0x33,0x35,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x38,0x34,0x63,0x63,0x31,0x36,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x36,0x35,0x61,0x33,0x30,0x64,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x34,0x64,0x37,0x63,0x30,0x66,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x33,0x66,0x36,0x32,0x31,0x32,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x33,0x36,0x35,0x33,0x31,0x34,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x31,0x61,0x32,0x65,0x30,0x35,0x22,0x7d,0x2c,0x67,0x72,0x65,0x65,0x6e,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x30,0x66,0x64,0x66,0x34,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x64,0x63,0x66,0x63,0x65,0x37,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x62,0x62,0x66,0x37,0x64,0x30,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x38,0x36,0x65,0x66,0x61,0x63,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x34,0x61,0x64,0x65,0x38,0x30,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x32,0x32,0x63,0x35,0x35,0x65,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x31,0x36,0x61,0x33,0x34,0x61,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x31,0x35,0x38,0x30,0x33,0x64,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x31,0x36,0x36,0x35,0x33,0x34,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x34,0x35,0x33,0x32,0x64,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x35,0x32,0x65,0x31,0x36,0x22,0x7d,0x2c,0x65,0x6d,0x65,0x72,0x61,0x6c,0x64,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x65,0x63,0x66,0x64,0x66,0x35,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x64,0x31,0x66,0x61,0x65,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x61,0x37,0x66,0x33,0x64,0x30,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x36,0x65,0x65,0x37,0x62,0x37,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x33,0x34,0x64,0x33,0x39,0x39,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x31,0x30,0x62,0x39,0x38,0x31,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x30,0x35,0x39,0x36,0x36,0x39,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x30,0x34,0x37,0x38,0x35,0x37,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x30,0x36,0x35,0x66,0x34,0x36,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x30,0x36,0x34,0x65,0x33,0x62,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x32,0x32,0x63,0x32,0x32,0x22,0x7d,0x2c,0x74,0x65,0x61,0x6c,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x30,0x66,0x64,0x66,0x61,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x63,0x63,0x66,0x62,0x66,0x31,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x39,0x39,0x66,0x36,0x65,0x34,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x35,0x65,0x65,0x61,0x64,0x34,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x32,0x64,0x64,0x34,0x62,0x66,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x31,0x34,0x62,0x38,0x61,0x36,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x30,0x64,0x39,0x34,0x38,0x38,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x30,0x66,0x37,0x36,0x36,0x65,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x31,0x31,0x35,0x65,0x35,0x39,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x33,0x34,0x65,0x34,0x61,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x34,0x32,0x66,0x32,0x65,0x22,0x7d,0x2c,0x63,0x79,0x61,0x6e,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x65,0x63,0x66,0x65,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x63,0x66,0x66,0x61,0x66,0x65,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x61,0x35,0x66,0x33,0x66,0x63,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x36,0x37,0x65,0x38,0x66,0x39,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x32,0x32,0x64,0x33,0x65,0x65,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x30,0x36,0x62,0x36,0x64,0x34,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x30,0x38,0x39,0x31,0x62,0x32,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x30,0x65,0x37,0x34,0x39,0x30,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x31,0x35,0x35,0x65,0x37,0x35,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x36,0x34,0x65,0x36,0x33,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x38,0x33,0x33,0x34,0x34,0x22,0x7d,0x2c,0x73,0x6b,0x79,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x30,0x66,0x39,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x65,0x30,0x66,0x32,0x66,0x65,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x62,0x61,0x65,0x36,0x66,0x64,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x37,0x64,0x64,0x33,0x66,0x63,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x33,0x38,0x62,0x64,0x66,0x38,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x30,0x65,0x61,0x35,0x65,0x39,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x30,0x32,0x38,0x34,0x63,0x37,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x30,0x33,0x36,0x39,0x61,0x31,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x30,0x37,0x35,0x39,0x38,0x35,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x30,0x63,0x34,0x61,0x36,0x65,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x30,0x38,0x32,0x66,0x34,0x39,0x22,0x7d,0x2c,0x62,0x6c,0x75,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x65,0x66,0x66,0x36,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x64,0x62,0x65,0x61,0x66,0x65,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x62,0x66,0x64,0x62,0x66,0x65,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x39,0x33,0x63,0x35,0x66,0x64,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x36,0x30,0x61,0x35,0x66,0x61,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x33,0x62,0x38,0x32,0x66,0x36,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x32,0x35,0x36,0x33,0x65,0x62,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x31,0x64,0x34,0x65,0x64,0x38,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x31,0x65,0x34,0x30,0x61,0x66,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x31,0x65,0x33,0x61,0x38,0x61,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x31,0x37,0x32,0x35,0x35,0x34,0x22,0x7d,0x2c,0x69,0x6e,0x64,0x69,0x67,0x6f,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x65,0x65,0x66,0x32,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x65,0x30,0x65,0x37,0x66,0x66,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x63,0x37,0x64,0x32,0x66,0x65,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x61,0x35,0x62,0x34,0x66,0x63,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x38,0x31,0x38,0x63,0x66,0x38,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x36,0x33,0x36,0x36,0x66,0x31,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x34,0x66,0x34,0x36,0x65,0x35,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x34,0x33,0x33,0x38,0x63,0x61,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x33,0x37,0x33,0x30,0x61,0x33,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x33,0x31,0x32,0x65,0x38,0x31,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x31,0x65,0x31,0x62,0x34,0x62,0x22,0x7d,0x2c,0x76,0x69,0x6f,0x6c,0x65,0x74,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x35,0x66,0x33,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x65,0x64,0x65,0x39,0x66,0x65,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x64,0x64,0x64,0x36,0x66,0x65,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x63,0x34,0x62,0x35,0x66,0x64,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x61,0x37,0x38,0x62,0x66,0x61,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x38,0x62,0x35,0x63,0x66,0x36,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x37,0x63,0x33,0x61,0x65,0x64,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x36,0x64,0x32,0x38,0x64,0x39,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x35,0x62,0x32,0x31,0x62,0x36,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x34,0x63,0x31,0x64,0x39,0x35,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x32,0x65,0x31,0x30,0x36,0x35,0x22,0x7d,0x2c,0x70,0x75,0x72,0x70,0x6c,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x61,0x66,0x35,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x33,0x65,0x38,0x66,0x66,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x65,0x39,0x64,0x35,0x66,0x66,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x64,0x38,0x62,0x34,0x66,0x65,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x63,0x30,0x38,0x34,0x66,0x63,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x61,0x38,0x35,0x35,0x66,0x37,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x39,0x33,0x33,0x33,0x65,0x61,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x37,0x65,0x32,0x32,0x63,0x65,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x36,0x62,0x32,0x31,0x61,0x38,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x35,0x38,0x31,0x63,0x38,0x37,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x33,0x62,0x30,0x37,0x36,0x34,0x22,0x7d,0x2c,0x66,0x75,0x63,0x68,0x73,0x69,0x61,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x64,0x66,0x34,0x66,0x66,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x61,0x65,0x38,0x66,0x66,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x35,0x64,0x30,0x66,0x65,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x30,0x61,0x62,0x66,0x63,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x65,0x38,0x37,0x39,0x66,0x39,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x64,0x39,0x34,0x36,0x65,0x66,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x63,0x30,0x32,0x36,0x64,0x33,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x61,0x32,0x31,0x63,0x61,0x66,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x38,0x36,0x31,0x39,0x38,0x66,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x37,0x30,0x31,0x61,0x37,0x35,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x34,0x61,0x30,0x34,0x34,0x65,0x22,0x7d,0x2c,0x70,0x69,0x6e,0x6b,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x64,0x66,0x32,0x66,0x38,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x63,0x65,0x37,0x66,0x33,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x62,0x63,0x66,0x65,0x38,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x39,0x61,0x38,0x64,0x34,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x66,0x34,0x37,0x32,0x62,0x36,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x65,0x63,0x34,0x38,0x39,0x39,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x64,0x62,0x32,0x37,0x37,0x37,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x62,0x65,0x31,0x38,0x35,0x64,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x39,0x64,0x31,0x37,0x34,0x64,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x38,0x33,0x31,0x38,0x34,0x33,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x35,0x30,0x30,0x37,0x32,0x34,0x22,0x7d,0x2c,0x72,0x6f,0x73,0x65,0x3a,0x7b,0x35,0x30,0x3a,0x22,0x23,0x66,0x66,0x66,0x31,0x66,0x32,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x23,0x66,0x66,0x65,0x34,0x65,0x36,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x23,0x66,0x65,0x63,0x64,0x64,0x33,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x23,0x66,0x64,0x61,0x34,0x61,0x66,0x22,0x2c,0x34,0x30,0x30,0x3a,0x22,0x23,0x66,0x62,0x37,0x31,0x38,0x35,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x23,0x66,0x34,0x33,0x66,0x35,0x65,0x22,0x2c,0x36,0x30,0x30,0x3a,0x22,0x23,0x65,0x31,0x31,0x64,0x34,0x38,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x23,0x62,0x65,0x31,0x32,0x33,0x63,0x22,0x2c,0x38,0x30,0x30,0x3a,0x22,0x23,0x39,0x66,0x31,0x32,0x33,0x39,0x22,0x2c,0x39,0x30,0x30,0x3a,0x22,0x23,0x38,0x38,0x31,0x33,0x33,0x37,0x22,0x2c,0x39,0x35,0x30,0x3a,0x22,0x23,0x34,0x63,0x30,0x35,0x31,0x39,0x22,0x7d,0x2c,0x67,0x65,0x74,0x20,0x6c,0x69,0x67,0x68,0x74,0x42,0x6c,0x75,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x72,0x28,0x7b,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x76,0x32,0x2e,0x32,0x22,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x22,0x6c,0x69,0x67,0x68,0x74,0x42,0x6c,0x75,0x65,0x22,0x2c,0x74,0x6f,0x3a,0x22,0x73,0x6b,0x79,0x22,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x6b,0x79,0x7d,0x2c,0x67,0x65,0x74,0x20,0x77,0x61,0x72,0x6d,0x47,0x72,0x61,0x79,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x72,0x28,0x7b,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x76,0x33,0x2e,0x30,0x22,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x22,0x77,0x61,0x72,0x6d,0x47,0x72,0x61,0x79,0x22,0x2c,0x74,0x6f,0x3a,0x22,0x73,0x74,0x6f,0x6e,0x65,0x22,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x6f,0x6e,0x65,0x7d,0x2c,0x67,0x65,0x74,0x20,0x74,0x72,0x75,0x65,0x47,0x72,0x61,0x79,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x72,0x28,0x7b,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x76,0x33,0x2e,0x30,0x22,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x22,0x74,0x72,0x75,0x65,0x47,0x72,0x61,0x79,0x22,0x2c,0x74,0x6f,0x3a,0x22,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x22,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x7d,0x2c,0x67,0x65,0x74,0x20,0x63,0x6f,0x6f,0x6c,0x47,0x72,0x61,0x79,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x72,0x28,0x7b,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x76,0x33,0x2e,0x30,0x22,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x22,0x63,0x6f,0x6f,0x6c,0x47,0x72,0x61,0x79,0x22,0x2c,0x74,0x6f,0x3a,0x22,0x67,0x72,0x61,0x79,0x22,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x61,0x79,0x7d,0x2c,0x67,0x65,0x74,0x20,0x62,0x6c,0x75,0x65,0x47,0x72,0x61,0x79,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x72,0x28,0x7b,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x76,0x33,0x2e,0x30,0x22,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x22,0x62,0x6c,0x75,0x65,0x47,0x72,0x61,0x79,0x22,0x2c,0x74,0x6f,0x3a,0x22,0x73,0x6c,0x61,0x74,0x65,0x22,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x6c,0x61,0x74,0x65,0x7d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x73,0x28,0x72,0x2c,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x74,0x29,0x72,0x3f,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3f,0x2e,0x28,0x69,0x29,0x7c,0x7c,0x28,0x72,0x5b,0x69,0x5d,0x3d,0x74,0x5b,0x69,0x5d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x28,0x74,0x29,0x29,0x72,0x3f,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3f,0x2e,0x28,0x69,0x29,0x7c,0x7c,0x28,0x72,0x5b,0x69,0x5d,0x3d,0x74,0x5b,0x69,0x5d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x76,0x61,0x72,0x20,0x43,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6b,0x74,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x5b,0x22,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x74,0x3d,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x5d,0x22,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x69,0x66,0x28,0x65,0x21,0x3d,0x3d,0x74,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x50,0x61,0x74,0x68,0x20,0x69,0x73,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2e,0x20,0x48,0x61,0x73,0x20,0x75,0x6e,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x64,0x20,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3a,0x20,0x24,0x7b,0x72,0x7d,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x2e,0x28,0x3f,0x21,0x5b,0x5e,0x5c,0x5b,0x5d,0x2a,0x5c,0x5d,0x29,0x7c,0x5b,0x5c,0x5b,0x5c,0x5d,0x5d,0x2f,0x67,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x7d,0x76,0x61,0x72,0x20,0x47,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x65,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x51,0x69,0x2e,0x66,0x75,0x74,0x75,0x72,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x3f,0x72,0x2e,0x66,0x75,0x74,0x75,0x72,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x6c,0x22,0x7c,0x7c,0x28,0x72,0x3f,0x2e,0x66,0x75,0x74,0x75,0x72,0x65,0x3f,0x2e,0x5b,0x65,0x5d,0x3f,0x3f,0x5f,0x66,0x5b,0x65,0x5d,0x3f,0x3f,0x21,0x31,0x29,0x3a,0x51,0x69,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x3f,0x72,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x6c,0x22,0x7c,0x7c,0x28,0x72,0x3f,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x3f,0x2e,0x5b,0x65,0x5d,0x3f,0x3f,0x5f,0x66,0x5b,0x65,0x5d,0x3f,0x3f,0x21,0x31,0x29,0x3a,0x21,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x6c,0x22,0x3f,0x51,0x69,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x3a,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x3f,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x3f,0x3f,0x7b,0x7d,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x65,0x3d,0x3e,0x51,0x69,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x26,0x26,0x72,0x2e,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x5b,0x65,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x66,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x4a,0x45,0x53,0x54,0x5f,0x57,0x4f,0x52,0x4b,0x45,0x52,0x5f,0x49,0x44,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x45,0x66,0x28,0x72,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x45,0x66,0x28,0x72,0x29,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x51,0x65,0x2e,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x28,0x74,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x3b,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x2d,0x66,0x6c,0x61,0x67,0x73,0x2d,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x22,0x2c,0x5b,0x60,0x59,0x6f,0x75,0x20,0x68,0x61,0x76,0x65,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x20,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x73,0x3a,0x20,0x24,0x7b,0x65,0x7d,0x60,0x2c,0x22,0x45,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x20,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x73,0x20,0x69,0x6e,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x76,0x65,0x72,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x65,0x6d,0x76,0x65,0x72,0x2c,0x20,0x6d,0x61,0x79,0x20,0x69,0x6e,0x74,0x72,0x6f,0x64,0x75,0x63,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x2c,0x20,0x61,0x6e,0x64,0x20,0x63,0x61,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x61,0x74,0x20,0x61,0x6e,0x79,0x20,0x74,0x69,0x6d,0x65,0x2e,0x22,0x5d,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x5f,0x66,0x2c,0x51,0x69,0x2c,0x63,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x57,0x69,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x5f,0x66,0x3d,0x7b,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x21,0x31,0x2c,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x21,0x30,0x2c,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x42,0x79,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x21,0x31,0x2c,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x50,0x61,0x74,0x68,0x73,0x42,0x79,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x21,0x31,0x7d,0x2c,0x51,0x69,0x3d,0x7b,0x66,0x75,0x74,0x75,0x72,0x65,0x3a,0x5b,0x22,0x68,0x6f,0x76,0x65,0x72,0x4f,0x6e,0x6c,0x79,0x57,0x68,0x65,0x6e,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x22,0x2c,0x22,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x42,0x79,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x2c,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x50,0x61,0x74,0x68,0x73,0x42,0x79,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x5d,0x2c,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x3a,0x5b,0x22,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x22,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x5d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x66,0x28,0x72,0x29,0x7b,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x7c,0x7c,0x21,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7c,0x7c,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x26,0x26,0x21,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x74,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x21,0x30,0x3a,0x21,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3f,0x2e,0x72,0x61,0x77,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7c,0x7c,0x74,0x3f,0x2e,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3f,0x2e,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x69,0x66,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x74,0x3d,0x3e,0x21,0x5b,0x22,0x66,0x69,0x6c,0x65,0x73,0x22,0x2c,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x22,0x2c,0x22,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x29,0x29,0x7b,0x69,0x66,0x28,0x21,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x74,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x21,0x30,0x3a,0x21,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3f,0x2e,0x72,0x61,0x77,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7c,0x7c,0x74,0x3f,0x2e,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3f,0x2e,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x29,0x29,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x29,0x29,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x21,0x3d,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x29,0x28,0x29,0x7c,0x7c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x70,0x75,0x72,0x67,0x65,0x2d,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x70,0x75,0x72,0x67,0x65,0x60,0x2f,0x60,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x68,0x61,0x76,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x69,0x6e,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x76,0x33,0x2e,0x30,0x2e,0x22,0x2c,0x22,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x79,0x6f,0x75,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6c,0x65,0x20,0x74,0x6f,0x20,0x65,0x6c,0x69,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x75,0x70,0x67,0x72,0x61,0x64,0x65,0x2d,0x67,0x75,0x69,0x64,0x65,0x23,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x22,0x5d,0x29,0x2c,0x72,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x74,0x2c,0x70,0x75,0x72,0x67,0x65,0x3a,0x69,0x2c,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x3a,0x6e,0x7d,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x3f,0x6e,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x3f,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x29,0x3f,0x74,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x3f,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x29,0x3f,0x69,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x3f,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x29,0x3f,0x69,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x3a,0x5b,0x5d,0x7d,0x29,0x28,0x29,0x2c,0x72,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x6c,0x69,0x73,0x74,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x62,0x6c,0x6f,0x63,0x6b,0x6c,0x69,0x73,0x74,0x3a,0x74,0x7d,0x3d,0x72,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x69,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3b,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x6c,0x69,0x73,0x74,0x2d,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x62,0x6c,0x6f,0x63,0x6b,0x6c,0x69,0x73,0x74,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x73,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x23,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x69,0x6e,0x67,0x2d,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x22,0x5d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x29,0x28,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x28,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x70,0x72,0x65,0x66,0x69,0x78,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x22,0x41,0x73,0x20,0x6f,0x66,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x76,0x33,0x2e,0x30,0x2c,0x20,0x60,0x70,0x72,0x65,0x66,0x69,0x78,0x60,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x22,0x2c,0x22,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x60,0x70,0x72,0x65,0x66,0x69,0x78,0x60,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x65,0x6c,0x69,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x75,0x70,0x67,0x72,0x61,0x64,0x65,0x2d,0x67,0x75,0x69,0x64,0x65,0x23,0x70,0x72,0x65,0x66,0x69,0x78,0x2d,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x2d,0x62,0x65,0x2d,0x61,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x29,0x2c,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3d,0x22,0x22,0x29,0x3a,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3d,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3f,0x3f,0x22,0x22,0x2c,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x7b,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x74,0x7d,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3f,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3f,0x74,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3a,0x77,0x65,0x28,0x72,0x2c,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x50,0x61,0x74,0x68,0x73,0x42,0x79,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x7d,0x29,0x28,0x29,0x2c,0x66,0x69,0x6c,0x65,0x73,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x74,0x2c,0x70,0x75,0x72,0x67,0x65,0x3a,0x69,0x7d,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x3f,0x69,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x3f,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3f,0x69,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x3f,0x74,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x3f,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3f,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x3f,0x2e,0x66,0x69,0x6c,0x65,0x73,0x29,0x3f,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x28,0x29,0x2c,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x3f,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3f,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3a,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3f,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3a,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x3f,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3f,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3f,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3f,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3f,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x3f,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x73,0x3f,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x73,0x3a,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3f,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x73,0x3f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x73,0x3a,0x7b,0x7d,0x29,0x28,0x29,0x2c,0x69,0x3d,0x7b,0x7d,0x2c,0x6e,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x3f,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x45,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x45,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x3b,0x69,0x66,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3f,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x45,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x45,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x7d,0x29,0x28,0x29,0x3b,0x69,0x66,0x28,0x6e,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3d,0x6e,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x69,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3d,0x74,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x7b,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x3a,0x61,0x2c,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x3a,0x73,0x7d,0x6f,0x66,0x20,0x74,0x3f,0x3f,0x5b,0x5d,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x69,0x5b,0x6f,0x5d,0x3d,0x73,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x69,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x29,0x28,0x29,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x3f,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3f,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3f,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x3f,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3f,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3f,0x72,0x2e,0x70,0x75,0x72,0x67,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3f,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3f,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3f,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x7b,0x7d,0x29,0x28,0x29,0x2c,0x69,0x3d,0x7b,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x69,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3d,0x74,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x69,0x2c,0x74,0x29,0x2c,0x69,0x7d,0x29,0x28,0x29,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x29,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x2f,0x7b,0x28,0x5b,0x5e,0x2c,0x5d,0x2a,0x3f,0x29,0x7d,0x2f,0x67,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x29,0x29,0x7b,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2d,0x67,0x6c,0x6f,0x62,0x2d,0x62,0x72,0x61,0x63,0x65,0x73,0x22,0x2c,0x5b,0x60,0x54,0x68,0x65,0x20,0x67,0x6c,0x6f,0x62,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x24,0x7b,0x46,0x73,0x28,0x74,0x29,0x7d,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2e,0x60,0x2c,0x60,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x24,0x7b,0x46,0x73,0x28,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x7b,0x28,0x5b,0x5e,0x2c,0x5d,0x2a,0x3f,0x29,0x7d,0x2f,0x67,0x2c,0x22,0x24,0x31,0x22,0x29,0x29,0x7d,0x20,0x74,0x6f,0x20,0x73,0x69,0x6c,0x65,0x6e,0x63,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x60,0x5d,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x76,0x61,0x72,0x20,0x52,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x63,0x74,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6b,0x65,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x29,0x21,0x3d,0x3d,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x5d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x65,0x29,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7d,0x76,0x61,0x72,0x20,0x4b,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x53,0x74,0x28,0x65,0x29,0x29,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x72,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x72,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x65,0x2c,0x74,0x5d,0x29,0x3d,0x3e,0x5b,0x65,0x2c,0x53,0x74,0x28,0x74,0x29,0x5d,0x29,0x29,0x3a,0x72,0x7d,0x76,0x61,0x72,0x20,0x59,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x5c,0x2c,0x2f,0x67,0x2c,0x22,0x5c,0x5c,0x32,0x63,0x20,0x22,0x29,0x7d,0x76,0x61,0x72,0x20,0x4b,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x73,0x2c,0x50,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x56,0x73,0x3d,0x7b,0x61,0x6c,0x69,0x63,0x65,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x32,0x34,0x30,0x2c,0x32,0x34,0x38,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x61,0x6e,0x74,0x69,0x71,0x75,0x65,0x77,0x68,0x69,0x74,0x65,0x3a,0x5b,0x32,0x35,0x30,0x2c,0x32,0x33,0x35,0x2c,0x32,0x31,0x35,0x5d,0x2c,0x61,0x71,0x75,0x61,0x3a,0x5b,0x30,0x2c,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x61,0x71,0x75,0x61,0x6d,0x61,0x72,0x69,0x6e,0x65,0x3a,0x5b,0x31,0x32,0x37,0x2c,0x32,0x35,0x35,0x2c,0x32,0x31,0x32,0x5d,0x2c,0x61,0x7a,0x75,0x72,0x65,0x3a,0x5b,0x32,0x34,0x30,0x2c,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x62,0x65,0x69,0x67,0x65,0x3a,0x5b,0x32,0x34,0x35,0x2c,0x32,0x34,0x35,0x2c,0x32,0x32,0x30,0x5d,0x2c,0x62,0x69,0x73,0x71,0x75,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x32,0x38,0x2c,0x31,0x39,0x36,0x5d,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x3a,0x5b,0x30,0x2c,0x30,0x2c,0x30,0x5d,0x2c,0x62,0x6c,0x61,0x6e,0x63,0x68,0x65,0x64,0x61,0x6c,0x6d,0x6f,0x6e,0x64,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x33,0x35,0x2c,0x32,0x30,0x35,0x5d,0x2c,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x30,0x2c,0x30,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x62,0x6c,0x75,0x65,0x76,0x69,0x6f,0x6c,0x65,0x74,0x3a,0x5b,0x31,0x33,0x38,0x2c,0x34,0x33,0x2c,0x32,0x32,0x36,0x5d,0x2c,0x62,0x72,0x6f,0x77,0x6e,0x3a,0x5b,0x31,0x36,0x35,0x2c,0x34,0x32,0x2c,0x34,0x32,0x5d,0x2c,0x62,0x75,0x72,0x6c,0x79,0x77,0x6f,0x6f,0x64,0x3a,0x5b,0x32,0x32,0x32,0x2c,0x31,0x38,0x34,0x2c,0x31,0x33,0x35,0x5d,0x2c,0x63,0x61,0x64,0x65,0x74,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x39,0x35,0x2c,0x31,0x35,0x38,0x2c,0x31,0x36,0x30,0x5d,0x2c,0x63,0x68,0x61,0x72,0x74,0x72,0x65,0x75,0x73,0x65,0x3a,0x5b,0x31,0x32,0x37,0x2c,0x32,0x35,0x35,0x2c,0x30,0x5d,0x2c,0x63,0x68,0x6f,0x63,0x6f,0x6c,0x61,0x74,0x65,0x3a,0x5b,0x32,0x31,0x30,0x2c,0x31,0x30,0x35,0x2c,0x33,0x30,0x5d,0x2c,0x63,0x6f,0x72,0x61,0x6c,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x32,0x37,0x2c,0x38,0x30,0x5d,0x2c,0x63,0x6f,0x72,0x6e,0x66,0x6c,0x6f,0x77,0x65,0x72,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x30,0x30,0x2c,0x31,0x34,0x39,0x2c,0x32,0x33,0x37,0x5d,0x2c,0x63,0x6f,0x72,0x6e,0x73,0x69,0x6c,0x6b,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x34,0x38,0x2c,0x32,0x32,0x30,0x5d,0x2c,0x63,0x72,0x69,0x6d,0x73,0x6f,0x6e,0x3a,0x5b,0x32,0x32,0x30,0x2c,0x32,0x30,0x2c,0x36,0x30,0x5d,0x2c,0x63,0x79,0x61,0x6e,0x3a,0x5b,0x30,0x2c,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x30,0x2c,0x30,0x2c,0x31,0x33,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x63,0x79,0x61,0x6e,0x3a,0x5b,0x30,0x2c,0x31,0x33,0x39,0x2c,0x31,0x33,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x67,0x6f,0x6c,0x64,0x65,0x6e,0x72,0x6f,0x64,0x3a,0x5b,0x31,0x38,0x34,0x2c,0x31,0x33,0x34,0x2c,0x31,0x31,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x67,0x72,0x61,0x79,0x3a,0x5b,0x31,0x36,0x39,0x2c,0x31,0x36,0x39,0x2c,0x31,0x36,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x30,0x2c,0x31,0x30,0x30,0x2c,0x30,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x67,0x72,0x65,0x79,0x3a,0x5b,0x31,0x36,0x39,0x2c,0x31,0x36,0x39,0x2c,0x31,0x36,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x6b,0x68,0x61,0x6b,0x69,0x3a,0x5b,0x31,0x38,0x39,0x2c,0x31,0x38,0x33,0x2c,0x31,0x30,0x37,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x6d,0x61,0x67,0x65,0x6e,0x74,0x61,0x3a,0x5b,0x31,0x33,0x39,0x2c,0x30,0x2c,0x31,0x33,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x6f,0x6c,0x69,0x76,0x65,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x38,0x35,0x2c,0x31,0x30,0x37,0x2c,0x34,0x37,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x6f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x34,0x30,0x2c,0x30,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x6f,0x72,0x63,0x68,0x69,0x64,0x3a,0x5b,0x31,0x35,0x33,0x2c,0x35,0x30,0x2c,0x32,0x30,0x34,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x72,0x65,0x64,0x3a,0x5b,0x31,0x33,0x39,0x2c,0x30,0x2c,0x30,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x73,0x61,0x6c,0x6d,0x6f,0x6e,0x3a,0x5b,0x32,0x33,0x33,0x2c,0x31,0x35,0x30,0x2c,0x31,0x32,0x32,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x73,0x65,0x61,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x31,0x34,0x33,0x2c,0x31,0x38,0x38,0x2c,0x31,0x34,0x33,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x73,0x6c,0x61,0x74,0x65,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x37,0x32,0x2c,0x36,0x31,0x2c,0x31,0x33,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x73,0x6c,0x61,0x74,0x65,0x67,0x72,0x61,0x79,0x3a,0x5b,0x34,0x37,0x2c,0x37,0x39,0x2c,0x37,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x73,0x6c,0x61,0x74,0x65,0x67,0x72,0x65,0x79,0x3a,0x5b,0x34,0x37,0x2c,0x37,0x39,0x2c,0x37,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x74,0x75,0x72,0x71,0x75,0x6f,0x69,0x73,0x65,0x3a,0x5b,0x30,0x2c,0x32,0x30,0x36,0x2c,0x32,0x30,0x39,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x76,0x69,0x6f,0x6c,0x65,0x74,0x3a,0x5b,0x31,0x34,0x38,0x2c,0x30,0x2c,0x32,0x31,0x31,0x5d,0x2c,0x64,0x65,0x65,0x70,0x70,0x69,0x6e,0x6b,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x30,0x2c,0x31,0x34,0x37,0x5d,0x2c,0x64,0x65,0x65,0x70,0x73,0x6b,0x79,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x30,0x2c,0x31,0x39,0x31,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x64,0x69,0x6d,0x67,0x72,0x61,0x79,0x3a,0x5b,0x31,0x30,0x35,0x2c,0x31,0x30,0x35,0x2c,0x31,0x30,0x35,0x5d,0x2c,0x64,0x69,0x6d,0x67,0x72,0x65,0x79,0x3a,0x5b,0x31,0x30,0x35,0x2c,0x31,0x30,0x35,0x2c,0x31,0x30,0x35,0x5d,0x2c,0x64,0x6f,0x64,0x67,0x65,0x72,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x33,0x30,0x2c,0x31,0x34,0x34,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x66,0x69,0x72,0x65,0x62,0x72,0x69,0x63,0x6b,0x3a,0x5b,0x31,0x37,0x38,0x2c,0x33,0x34,0x2c,0x33,0x34,0x5d,0x2c,0x66,0x6c,0x6f,0x72,0x61,0x6c,0x77,0x68,0x69,0x74,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x30,0x2c,0x32,0x34,0x30,0x5d,0x2c,0x66,0x6f,0x72,0x65,0x73,0x74,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x33,0x34,0x2c,0x31,0x33,0x39,0x2c,0x33,0x34,0x5d,0x2c,0x66,0x75,0x63,0x68,0x73,0x69,0x61,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x30,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x67,0x61,0x69,0x6e,0x73,0x62,0x6f,0x72,0x6f,0x3a,0x5b,0x32,0x32,0x30,0x2c,0x32,0x32,0x30,0x2c,0x32,0x32,0x30,0x5d,0x2c,0x67,0x68,0x6f,0x73,0x74,0x77,0x68,0x69,0x74,0x65,0x3a,0x5b,0x32,0x34,0x38,0x2c,0x32,0x34,0x38,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x67,0x6f,0x6c,0x64,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x31,0x35,0x2c,0x30,0x5d,0x2c,0x67,0x6f,0x6c,0x64,0x65,0x6e,0x72,0x6f,0x64,0x3a,0x5b,0x32,0x31,0x38,0x2c,0x31,0x36,0x35,0x2c,0x33,0x32,0x5d,0x2c,0x67,0x72,0x61,0x79,0x3a,0x5b,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x5d,0x2c,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x30,0x2c,0x31,0x32,0x38,0x2c,0x30,0x5d,0x2c,0x67,0x72,0x65,0x65,0x6e,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x3a,0x5b,0x31,0x37,0x33,0x2c,0x32,0x35,0x35,0x2c,0x34,0x37,0x5d,0x2c,0x67,0x72,0x65,0x79,0x3a,0x5b,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x5d,0x2c,0x68,0x6f,0x6e,0x65,0x79,0x64,0x65,0x77,0x3a,0x5b,0x32,0x34,0x30,0x2c,0x32,0x35,0x35,0x2c,0x32,0x34,0x30,0x5d,0x2c,0x68,0x6f,0x74,0x70,0x69,0x6e,0x6b,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x30,0x35,0x2c,0x31,0x38,0x30,0x5d,0x2c,0x69,0x6e,0x64,0x69,0x61,0x6e,0x72,0x65,0x64,0x3a,0x5b,0x32,0x30,0x35,0x2c,0x39,0x32,0x2c,0x39,0x32,0x5d,0x2c,0x69,0x6e,0x64,0x69,0x67,0x6f,0x3a,0x5b,0x37,0x35,0x2c,0x30,0x2c,0x31,0x33,0x30,0x5d,0x2c,0x69,0x76,0x6f,0x72,0x79,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x2c,0x32,0x34,0x30,0x5d,0x2c,0x6b,0x68,0x61,0x6b,0x69,0x3a,0x5b,0x32,0x34,0x30,0x2c,0x32,0x33,0x30,0x2c,0x31,0x34,0x30,0x5d,0x2c,0x6c,0x61,0x76,0x65,0x6e,0x64,0x65,0x72,0x3a,0x5b,0x32,0x33,0x30,0x2c,0x32,0x33,0x30,0x2c,0x32,0x35,0x30,0x5d,0x2c,0x6c,0x61,0x76,0x65,0x6e,0x64,0x65,0x72,0x62,0x6c,0x75,0x73,0x68,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x34,0x30,0x2c,0x32,0x34,0x35,0x5d,0x2c,0x6c,0x61,0x77,0x6e,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x31,0x32,0x34,0x2c,0x32,0x35,0x32,0x2c,0x30,0x5d,0x2c,0x6c,0x65,0x6d,0x6f,0x6e,0x63,0x68,0x69,0x66,0x66,0x6f,0x6e,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x30,0x2c,0x32,0x30,0x35,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x37,0x33,0x2c,0x32,0x31,0x36,0x2c,0x32,0x33,0x30,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x63,0x6f,0x72,0x61,0x6c,0x3a,0x5b,0x32,0x34,0x30,0x2c,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x63,0x79,0x61,0x6e,0x3a,0x5b,0x32,0x32,0x34,0x2c,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x67,0x6f,0x6c,0x64,0x65,0x6e,0x72,0x6f,0x64,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x3a,0x5b,0x32,0x35,0x30,0x2c,0x32,0x35,0x30,0x2c,0x32,0x31,0x30,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x67,0x72,0x61,0x79,0x3a,0x5b,0x32,0x31,0x31,0x2c,0x32,0x31,0x31,0x2c,0x32,0x31,0x31,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x31,0x34,0x34,0x2c,0x32,0x33,0x38,0x2c,0x31,0x34,0x34,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x67,0x72,0x65,0x79,0x3a,0x5b,0x32,0x31,0x31,0x2c,0x32,0x31,0x31,0x2c,0x32,0x31,0x31,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x70,0x69,0x6e,0x6b,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x38,0x32,0x2c,0x31,0x39,0x33,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x73,0x61,0x6c,0x6d,0x6f,0x6e,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x36,0x30,0x2c,0x31,0x32,0x32,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x73,0x65,0x61,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x33,0x32,0x2c,0x31,0x37,0x38,0x2c,0x31,0x37,0x30,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x73,0x6b,0x79,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x33,0x35,0x2c,0x32,0x30,0x36,0x2c,0x32,0x35,0x30,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x73,0x6c,0x61,0x74,0x65,0x67,0x72,0x61,0x79,0x3a,0x5b,0x31,0x31,0x39,0x2c,0x31,0x33,0x36,0x2c,0x31,0x35,0x33,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x73,0x6c,0x61,0x74,0x65,0x67,0x72,0x65,0x79,0x3a,0x5b,0x31,0x31,0x39,0x2c,0x31,0x33,0x36,0x2c,0x31,0x35,0x33,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x73,0x74,0x65,0x65,0x6c,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x37,0x36,0x2c,0x31,0x39,0x36,0x2c,0x32,0x32,0x32,0x5d,0x2c,0x6c,0x69,0x67,0x68,0x74,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x2c,0x32,0x32,0x34,0x5d,0x2c,0x6c,0x69,0x6d,0x65,0x3a,0x5b,0x30,0x2c,0x32,0x35,0x35,0x2c,0x30,0x5d,0x2c,0x6c,0x69,0x6d,0x65,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x35,0x30,0x2c,0x32,0x30,0x35,0x2c,0x35,0x30,0x5d,0x2c,0x6c,0x69,0x6e,0x65,0x6e,0x3a,0x5b,0x32,0x35,0x30,0x2c,0x32,0x34,0x30,0x2c,0x32,0x33,0x30,0x5d,0x2c,0x6d,0x61,0x67,0x65,0x6e,0x74,0x61,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x30,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x6d,0x61,0x72,0x6f,0x6f,0x6e,0x3a,0x5b,0x31,0x32,0x38,0x2c,0x30,0x2c,0x30,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x61,0x71,0x75,0x61,0x6d,0x61,0x72,0x69,0x6e,0x65,0x3a,0x5b,0x31,0x30,0x32,0x2c,0x32,0x30,0x35,0x2c,0x31,0x37,0x30,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x30,0x2c,0x30,0x2c,0x32,0x30,0x35,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x6f,0x72,0x63,0x68,0x69,0x64,0x3a,0x5b,0x31,0x38,0x36,0x2c,0x38,0x35,0x2c,0x32,0x31,0x31,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x70,0x75,0x72,0x70,0x6c,0x65,0x3a,0x5b,0x31,0x34,0x37,0x2c,0x31,0x31,0x32,0x2c,0x32,0x31,0x39,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x73,0x65,0x61,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x36,0x30,0x2c,0x31,0x37,0x39,0x2c,0x31,0x31,0x33,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x73,0x6c,0x61,0x74,0x65,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x32,0x33,0x2c,0x31,0x30,0x34,0x2c,0x32,0x33,0x38,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x73,0x70,0x72,0x69,0x6e,0x67,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x30,0x2c,0x32,0x35,0x30,0x2c,0x31,0x35,0x34,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x74,0x75,0x72,0x71,0x75,0x6f,0x69,0x73,0x65,0x3a,0x5b,0x37,0x32,0x2c,0x32,0x30,0x39,0x2c,0x32,0x30,0x34,0x5d,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x76,0x69,0x6f,0x6c,0x65,0x74,0x72,0x65,0x64,0x3a,0x5b,0x31,0x39,0x39,0x2c,0x32,0x31,0x2c,0x31,0x33,0x33,0x5d,0x2c,0x6d,0x69,0x64,0x6e,0x69,0x67,0x68,0x74,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x32,0x35,0x2c,0x32,0x35,0x2c,0x31,0x31,0x32,0x5d,0x2c,0x6d,0x69,0x6e,0x74,0x63,0x72,0x65,0x61,0x6d,0x3a,0x5b,0x32,0x34,0x35,0x2c,0x32,0x35,0x35,0x2c,0x32,0x35,0x30,0x5d,0x2c,0x6d,0x69,0x73,0x74,0x79,0x72,0x6f,0x73,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x32,0x38,0x2c,0x32,0x32,0x35,0x5d,0x2c,0x6d,0x6f,0x63,0x63,0x61,0x73,0x69,0x6e,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x32,0x38,0x2c,0x31,0x38,0x31,0x5d,0x2c,0x6e,0x61,0x76,0x61,0x6a,0x6f,0x77,0x68,0x69,0x74,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x32,0x32,0x2c,0x31,0x37,0x33,0x5d,0x2c,0x6e,0x61,0x76,0x79,0x3a,0x5b,0x30,0x2c,0x30,0x2c,0x31,0x32,0x38,0x5d,0x2c,0x6f,0x6c,0x64,0x6c,0x61,0x63,0x65,0x3a,0x5b,0x32,0x35,0x33,0x2c,0x32,0x34,0x35,0x2c,0x32,0x33,0x30,0x5d,0x2c,0x6f,0x6c,0x69,0x76,0x65,0x3a,0x5b,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x2c,0x30,0x5d,0x2c,0x6f,0x6c,0x69,0x76,0x65,0x64,0x72,0x61,0x62,0x3a,0x5b,0x31,0x30,0x37,0x2c,0x31,0x34,0x32,0x2c,0x33,0x35,0x5d,0x2c,0x6f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x36,0x35,0x2c,0x30,0x5d,0x2c,0x6f,0x72,0x61,0x6e,0x67,0x65,0x72,0x65,0x64,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x36,0x39,0x2c,0x30,0x5d,0x2c,0x6f,0x72,0x63,0x68,0x69,0x64,0x3a,0x5b,0x32,0x31,0x38,0x2c,0x31,0x31,0x32,0x2c,0x32,0x31,0x34,0x5d,0x2c,0x70,0x61,0x6c,0x65,0x67,0x6f,0x6c,0x64,0x65,0x6e,0x72,0x6f,0x64,0x3a,0x5b,0x32,0x33,0x38,0x2c,0x32,0x33,0x32,0x2c,0x31,0x37,0x30,0x5d,0x2c,0x70,0x61,0x6c,0x65,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x31,0x35,0x32,0x2c,0x32,0x35,0x31,0x2c,0x31,0x35,0x32,0x5d,0x2c,0x70,0x61,0x6c,0x65,0x74,0x75,0x72,0x71,0x75,0x6f,0x69,0x73,0x65,0x3a,0x5b,0x31,0x37,0x35,0x2c,0x32,0x33,0x38,0x2c,0x32,0x33,0x38,0x5d,0x2c,0x70,0x61,0x6c,0x65,0x76,0x69,0x6f,0x6c,0x65,0x74,0x72,0x65,0x64,0x3a,0x5b,0x32,0x31,0x39,0x2c,0x31,0x31,0x32,0x2c,0x31,0x34,0x37,0x5d,0x2c,0x70,0x61,0x70,0x61,0x79,0x61,0x77,0x68,0x69,0x70,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x33,0x39,0x2c,0x32,0x31,0x33,0x5d,0x2c,0x70,0x65,0x61,0x63,0x68,0x70,0x75,0x66,0x66,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x31,0x38,0x2c,0x31,0x38,0x35,0x5d,0x2c,0x70,0x65,0x72,0x75,0x3a,0x5b,0x32,0x30,0x35,0x2c,0x31,0x33,0x33,0x2c,0x36,0x33,0x5d,0x2c,0x70,0x69,0x6e,0x6b,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x31,0x39,0x32,0x2c,0x32,0x30,0x33,0x5d,0x2c,0x70,0x6c,0x75,0x6d,0x3a,0x5b,0x32,0x32,0x31,0x2c,0x31,0x36,0x30,0x2c,0x32,0x32,0x31,0x5d,0x2c,0x70,0x6f,0x77,0x64,0x65,0x72,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x37,0x36,0x2c,0x32,0x32,0x34,0x2c,0x32,0x33,0x30,0x5d,0x2c,0x70,0x75,0x72,0x70,0x6c,0x65,0x3a,0x5b,0x31,0x32,0x38,0x2c,0x30,0x2c,0x31,0x32,0x38,0x5d,0x2c,0x72,0x65,0x62,0x65,0x63,0x63,0x61,0x70,0x75,0x72,0x70,0x6c,0x65,0x3a,0x5b,0x31,0x30,0x32,0x2c,0x35,0x31,0x2c,0x31,0x35,0x33,0x5d,0x2c,0x72,0x65,0x64,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x30,0x2c,0x30,0x5d,0x2c,0x72,0x6f,0x73,0x79,0x62,0x72,0x6f,0x77,0x6e,0x3a,0x5b,0x31,0x38,0x38,0x2c,0x31,0x34,0x33,0x2c,0x31,0x34,0x33,0x5d,0x2c,0x72,0x6f,0x79,0x61,0x6c,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x36,0x35,0x2c,0x31,0x30,0x35,0x2c,0x32,0x32,0x35,0x5d,0x2c,0x73,0x61,0x64,0x64,0x6c,0x65,0x62,0x72,0x6f,0x77,0x6e,0x3a,0x5b,0x31,0x33,0x39,0x2c,0x36,0x39,0x2c,0x31,0x39,0x5d,0x2c,0x73,0x61,0x6c,0x6d,0x6f,0x6e,0x3a,0x5b,0x32,0x35,0x30,0x2c,0x31,0x32,0x38,0x2c,0x31,0x31,0x34,0x5d,0x2c,0x73,0x61,0x6e,0x64,0x79,0x62,0x72,0x6f,0x77,0x6e,0x3a,0x5b,0x32,0x34,0x34,0x2c,0x31,0x36,0x34,0x2c,0x39,0x36,0x5d,0x2c,0x73,0x65,0x61,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x34,0x36,0x2c,0x31,0x33,0x39,0x2c,0x38,0x37,0x5d,0x2c,0x73,0x65,0x61,0x73,0x68,0x65,0x6c,0x6c,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x34,0x35,0x2c,0x32,0x33,0x38,0x5d,0x2c,0x73,0x69,0x65,0x6e,0x6e,0x61,0x3a,0x5b,0x31,0x36,0x30,0x2c,0x38,0x32,0x2c,0x34,0x35,0x5d,0x2c,0x73,0x69,0x6c,0x76,0x65,0x72,0x3a,0x5b,0x31,0x39,0x32,0x2c,0x31,0x39,0x32,0x2c,0x31,0x39,0x32,0x5d,0x2c,0x73,0x6b,0x79,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x33,0x35,0x2c,0x32,0x30,0x36,0x2c,0x32,0x33,0x35,0x5d,0x2c,0x73,0x6c,0x61,0x74,0x65,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x31,0x30,0x36,0x2c,0x39,0x30,0x2c,0x32,0x30,0x35,0x5d,0x2c,0x73,0x6c,0x61,0x74,0x65,0x67,0x72,0x61,0x79,0x3a,0x5b,0x31,0x31,0x32,0x2c,0x31,0x32,0x38,0x2c,0x31,0x34,0x34,0x5d,0x2c,0x73,0x6c,0x61,0x74,0x65,0x67,0x72,0x65,0x79,0x3a,0x5b,0x31,0x31,0x32,0x2c,0x31,0x32,0x38,0x2c,0x31,0x34,0x34,0x5d,0x2c,0x73,0x6e,0x6f,0x77,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x30,0x2c,0x32,0x35,0x30,0x5d,0x2c,0x73,0x70,0x72,0x69,0x6e,0x67,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x30,0x2c,0x32,0x35,0x35,0x2c,0x31,0x32,0x37,0x5d,0x2c,0x73,0x74,0x65,0x65,0x6c,0x62,0x6c,0x75,0x65,0x3a,0x5b,0x37,0x30,0x2c,0x31,0x33,0x30,0x2c,0x31,0x38,0x30,0x5d,0x2c,0x74,0x61,0x6e,0x3a,0x5b,0x32,0x31,0x30,0x2c,0x31,0x38,0x30,0x2c,0x31,0x34,0x30,0x5d,0x2c,0x74,0x65,0x61,0x6c,0x3a,0x5b,0x30,0x2c,0x31,0x32,0x38,0x2c,0x31,0x32,0x38,0x5d,0x2c,0x74,0x68,0x69,0x73,0x74,0x6c,0x65,0x3a,0x5b,0x32,0x31,0x36,0x2c,0x31,0x39,0x31,0x2c,0x32,0x31,0x36,0x5d,0x2c,0x74,0x6f,0x6d,0x61,0x74,0x6f,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x39,0x39,0x2c,0x37,0x31,0x5d,0x2c,0x74,0x75,0x72,0x71,0x75,0x6f,0x69,0x73,0x65,0x3a,0x5b,0x36,0x34,0x2c,0x32,0x32,0x34,0x2c,0x32,0x30,0x38,0x5d,0x2c,0x76,0x69,0x6f,0x6c,0x65,0x74,0x3a,0x5b,0x32,0x33,0x38,0x2c,0x31,0x33,0x30,0x2c,0x32,0x33,0x38,0x5d,0x2c,0x77,0x68,0x65,0x61,0x74,0x3a,0x5b,0x32,0x34,0x35,0x2c,0x32,0x32,0x32,0x2c,0x31,0x37,0x39,0x5d,0x2c,0x77,0x68,0x69,0x74,0x65,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x5d,0x2c,0x77,0x68,0x69,0x74,0x65,0x73,0x6d,0x6f,0x6b,0x65,0x3a,0x5b,0x32,0x34,0x35,0x2c,0x32,0x34,0x35,0x2c,0x32,0x34,0x35,0x5d,0x2c,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x3a,0x5b,0x32,0x35,0x35,0x2c,0x32,0x35,0x35,0x2c,0x30,0x5d,0x2c,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x67,0x72,0x65,0x65,0x6e,0x3a,0x5b,0x31,0x35,0x34,0x2c,0x32,0x30,0x35,0x2c,0x35,0x30,0x5d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x72,0x28,0x72,0x2c,0x7b,0x6c,0x6f,0x6f,0x73,0x65,0x3a,0x65,0x3d,0x21,0x31,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x69,0x66,0x28,0x72,0x3d,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x72,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x22,0x72,0x67,0x62,0x22,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x5b,0x22,0x30,0x22,0x2c,0x22,0x30,0x22,0x2c,0x22,0x30,0x22,0x5d,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x22,0x30,0x22,0x7d,0x3b,0x69,0x66,0x28,0x72,0x20,0x69,0x6e,0x20,0x56,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x22,0x72,0x67,0x62,0x22,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x56,0x73,0x5b,0x72,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x46,0x76,0x2c,0x28,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x2c,0x63,0x29,0x3d,0x3e,0x5b,0x22,0x23,0x22,0x2c,0x73,0x2c,0x73,0x2c,0x6f,0x2c,0x6f,0x2c,0x6c,0x2c,0x6c,0x2c,0x63,0x3f,0x63,0x2b,0x63,0x3a,0x22,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x29,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x42,0x76,0x29,0x3b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x22,0x72,0x67,0x62,0x22,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x5b,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x74,0x5b,0x31,0x5d,0x2c,0x31,0x36,0x29,0x2c,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x74,0x5b,0x32,0x5d,0x2c,0x31,0x36,0x29,0x2c,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x74,0x5b,0x33,0x5d,0x2c,0x31,0x36,0x29,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x74,0x5b,0x34,0x5d,0x3f,0x28,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x74,0x5b,0x34,0x5d,0x2c,0x31,0x36,0x29,0x2f,0x32,0x35,0x35,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x6a,0x76,0x29,0x3f,0x3f,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x7a,0x76,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x5b,0x69,0x5b,0x32,0x5d,0x2c,0x69,0x5b,0x33,0x5d,0x2c,0x69,0x5b,0x34,0x5d,0x5d,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x32,0x26,0x26,0x6e,0x5b,0x30,0x5d,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x61,0x72,0x28,0x22,0x29,0x3f,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x69,0x5b,0x31,0x5d,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x5b,0x6e,0x5b,0x30,0x5d,0x5d,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x6e,0x5b,0x31,0x5d,0x7d,0x3a,0x21,0x65,0x26,0x26,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x33,0x7c,0x7c,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x33,0x26,0x26,0x21,0x6e,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x61,0x3d,0x3e,0x2f,0x5e,0x76,0x61,0x72,0x5c,0x28,0x2e,0x2a,0x3f,0x5c,0x29,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x29,0x29,0x3f,0x6e,0x75,0x6c,0x6c,0x3a,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x69,0x5b,0x31,0x5d,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6e,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x69,0x5b,0x35,0x5d,0x3f,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3f,0x2e,0x28,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x73,0x28,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x72,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x65,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x74,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x22,0x72,0x67,0x62,0x61,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x68,0x73,0x6c,0x61,0x22,0x3f,0x60,0x24,0x7b,0x72,0x7d,0x28,0x24,0x7b,0x65,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x24,0x7b,0x69,0x3f,0x60,0x2c,0x20,0x24,0x7b,0x74,0x7d,0x60,0x3a,0x22,0x22,0x7d,0x29,0x60,0x3a,0x60,0x24,0x7b,0x72,0x7d,0x28,0x24,0x7b,0x65,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x7d,0x24,0x7b,0x69,0x3f,0x60,0x20,0x2f,0x20,0x24,0x7b,0x74,0x7d,0x60,0x3a,0x22,0x22,0x7d,0x29,0x60,0x7d,0x76,0x61,0x72,0x20,0x42,0x76,0x2c,0x46,0x76,0x2c,0x41,0x74,0x2c,0x58,0x69,0x2c,0x49,0x66,0x2c,0x43,0x74,0x2c,0x6a,0x76,0x2c,0x7a,0x76,0x2c,0x57,0x73,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x50,0x66,0x28,0x29,0x3b,0x42,0x76,0x3d,0x2f,0x5e,0x23,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x7b,0x32,0x7d,0x29,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x7b,0x32,0x7d,0x29,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x7b,0x32,0x7d,0x29,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x7b,0x32,0x7d,0x29,0x3f,0x24,0x2f,0x69,0x2c,0x46,0x76,0x3d,0x2f,0x5e,0x23,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x29,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x29,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x29,0x28,0x5b,0x61,0x2d,0x66,0x5c,0x64,0x5d,0x29,0x3f,0x24,0x2f,0x69,0x2c,0x41,0x74,0x3d,0x2f,0x28,0x3f,0x3a,0x5c,0x64,0x2b,0x7c,0x5c,0x64,0x2a,0x5c,0x2e,0x5c,0x64,0x2b,0x29,0x25,0x3f,0x2f,0x2c,0x58,0x69,0x3d,0x2f,0x28,0x3f,0x3a,0x5c,0x73,0x2a,0x2c,0x5c,0x73,0x2a,0x7c,0x5c,0x73,0x2b,0x29,0x2f,0x2c,0x49,0x66,0x3d,0x2f,0x5c,0x73,0x2a,0x5b,0x2c,0x2f,0x5d,0x5c,0x73,0x2a,0x2f,0x2c,0x43,0x74,0x3d,0x2f,0x76,0x61,0x72,0x5c,0x28,0x2d,0x2d,0x28,0x3f,0x3a,0x5b,0x5e,0x20,0x29,0x5d,0x2a,0x3f,0x29,0x28,0x3f,0x3a,0x2c,0x28,0x3f,0x3a,0x5b,0x5e,0x20,0x29,0x5d,0x2a,0x3f,0x7c,0x76,0x61,0x72,0x5c,0x28,0x2d,0x2d,0x5b,0x5e,0x20,0x29,0x5d,0x2a,0x3f,0x5c,0x29,0x29,0x29,0x3f,0x5c,0x29,0x2f,0x2c,0x6a,0x76,0x3d,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x5e,0x28,0x72,0x67,0x62,0x61,0x3f,0x29,0x5c,0x5c,0x28,0x5c,0x5c,0x73,0x2a,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x28,0x3f,0x3a,0x24,0x7b,0x58,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x29,0x3f,0x28,0x3f,0x3a,0x24,0x7b,0x58,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x29,0x3f,0x28,0x3f,0x3a,0x24,0x7b,0x49,0x66,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x29,0x3f,0x5c,0x5c,0x73,0x2a,0x5c,0x5c,0x29,0x24,0x60,0x29,0x2c,0x7a,0x76,0x3d,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x5e,0x28,0x68,0x73,0x6c,0x61,0x3f,0x29,0x5c,0x5c,0x28,0x5c,0x5c,0x73,0x2a,0x28,0x28,0x3f,0x3a,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x28,0x3f,0x3a,0x64,0x65,0x67,0x7c,0x72,0x61,0x64,0x7c,0x67,0x72,0x61,0x64,0x7c,0x74,0x75,0x72,0x6e,0x29,0x3f,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x28,0x3f,0x3a,0x24,0x7b,0x58,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x29,0x3f,0x28,0x3f,0x3a,0x24,0x7b,0x58,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x29,0x3f,0x28,0x3f,0x3a,0x24,0x7b,0x49,0x66,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x28,0x24,0x7b,0x41,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x7c,0x24,0x7b,0x43,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x29,0x3f,0x5c,0x5c,0x73,0x2a,0x5c,0x5c,0x29,0x24,0x60,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5a,0x65,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x28,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x56,0x61,0x6c,0x75,0x65,0x3a,0x65,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x24,0x72,0x28,0x72,0x2c,0x7b,0x6c,0x6f,0x6f,0x73,0x65,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x74,0x3a,0x48,0x73,0x28,0x7b,0x2e,0x2e,0x2e,0x69,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x65,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x72,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x65,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x74,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x5b,0x74,0x5d,0x3a,0x22,0x31,0x22,0x2c,0x2e,0x2e,0x2e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x69,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x5b,0x61,0x2c,0x72,0x28,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x56,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x74,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x56,0x61,0x6c,0x75,0x65,0x3a,0x60,0x76,0x61,0x72,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x7d,0x29,0x5d,0x29,0x29,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x24,0x72,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x69,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x5b,0x61,0x2c,0x72,0x5d,0x29,0x29,0x3a,0x6e,0x2e,0x61,0x6c,0x70,0x68,0x61,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x69,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x5b,0x61,0x2c,0x72,0x5d,0x29,0x29,0x3a,0x7b,0x5b,0x74,0x5d,0x3a,0x22,0x31,0x22,0x2c,0x2e,0x2e,0x2e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x69,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x5b,0x61,0x2c,0x48,0x73,0x28,0x7b,0x2e,0x2e,0x2e,0x6e,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x60,0x76,0x61,0x72,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x7d,0x29,0x5d,0x29,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x4c,0x72,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x57,0x73,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x2c,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x30,0x2c,0x61,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x3d,0x30,0x3b,0x73,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x73,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x72,0x5b,0x73,0x5d,0x3b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x6f,0x3d,0x3d,0x3d,0x65,0x5b,0x30,0x5d,0x26,0x26,0x21,0x61,0x26,0x26,0x28,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x7c,0x7c,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x2c,0x73,0x2b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3d,0x3d,0x3d,0x65,0x29,0x26,0x26,0x28,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6e,0x2c,0x73,0x29,0x29,0x2c,0x6e,0x3d,0x73,0x2b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x61,0x3d,0x61,0x3f,0x21,0x31,0x3a,0x6f,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x2c,0x6f,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x7c,0x7c,0x6f,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x7c,0x7c,0x6f,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x3f,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3a,0x28,0x6f,0x3d,0x3d,0x3d,0x22,0x29,0x22,0x26,0x26,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x7c,0x7c,0x6f,0x3d,0x3d,0x3d,0x22,0x5d,0x22,0x26,0x26,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x7c,0x7c,0x6f,0x3d,0x3d,0x3d,0x22,0x7d,0x22,0x26,0x26,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x29,0x26,0x26,0x74,0x2e,0x70,0x6f,0x70,0x28,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6e,0x29,0x29,0x2c,0x69,0x7d,0x76,0x61,0x72,0x20,0x7a,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x69,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x22,0x2c,0x22,0x29,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x6e,0x3d,0x7b,0x72,0x61,0x77,0x3a,0x69,0x7d,0x2c,0x61,0x3d,0x69,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x56,0x76,0x29,0x2c,0x73,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x44,0x66,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x30,0x2c,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x4b,0x45,0x59,0x57,0x4f,0x52,0x44,0x22,0x29,0x26,0x26,0x55,0x76,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x3f,0x28,0x6e,0x2e,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x4b,0x45,0x59,0x57,0x4f,0x52,0x44,0x22,0x29,0x29,0x3a,0x44,0x66,0x2e,0x74,0x65,0x73,0x74,0x28,0x6f,0x29,0x3f,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x58,0x22,0x29,0x3f,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x59,0x22,0x29,0x3f,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x42,0x4c,0x55,0x52,0x22,0x29,0x3f,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x53,0x50,0x52,0x45,0x41,0x44,0x22,0x29,0x7c,0x7c,0x28,0x6e,0x2e,0x73,0x70,0x72,0x65,0x61,0x64,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x53,0x50,0x52,0x45,0x41,0x44,0x22,0x29,0x29,0x3a,0x28,0x6e,0x2e,0x62,0x6c,0x75,0x72,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x42,0x4c,0x55,0x52,0x22,0x29,0x29,0x3a,0x28,0x6e,0x2e,0x79,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x59,0x22,0x29,0x29,0x3a,0x28,0x6e,0x2e,0x78,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x58,0x22,0x29,0x29,0x3a,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x3f,0x28,0x6e,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x7c,0x7c,0x28,0x6e,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x3d,0x5b,0x5d,0x29,0x2c,0x6e,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x29,0x3a,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x3d,0x6f,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x6e,0x2e,0x78,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x6e,0x2e,0x79,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x6e,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x65,0x2e,0x76,0x61,0x6c,0x69,0x64,0x3f,0x5b,0x65,0x2e,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x2c,0x65,0x2e,0x78,0x2c,0x65,0x2e,0x79,0x2c,0x65,0x2e,0x62,0x6c,0x75,0x72,0x2c,0x65,0x2e,0x73,0x70,0x72,0x65,0x61,0x64,0x2c,0x65,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x5d,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x3a,0x65,0x2e,0x72,0x61,0x77,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x76,0x61,0x72,0x20,0x55,0x76,0x2c,0x56,0x76,0x2c,0x44,0x66,0x2c,0x47,0x73,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x7a,0x74,0x28,0x29,0x3b,0x55,0x76,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x22,0x2c,0x22,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x22,0x2c,0x22,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x22,0x2c,0x22,0x72,0x65,0x76,0x65,0x72,0x74,0x22,0x2c,0x22,0x75,0x6e,0x73,0x65,0x74,0x22,0x5d,0x29,0x2c,0x56,0x76,0x3d,0x2f,0x5c,0x20,0x2b,0x28,0x3f,0x21,0x5b,0x5e,0x28,0x5d,0x2a,0x5c,0x29,0x29,0x2f,0x67,0x2c,0x44,0x66,0x3d,0x2f,0x5e,0x2d,0x3f,0x28,0x5c,0x64,0x2b,0x7c,0x5c,0x2e,0x5c,0x64,0x2b,0x29,0x28,0x2e,0x2a,0x3f,0x29,0x24,0x2f,0x67,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x76,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x65,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x5e,0x24,0x7b,0x65,0x7d,0x5c,0x5c,0x28,0x2e,0x2a,0x5c,0x5c,0x29,0x60,0x29,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x28,0x72,0x2c,0x65,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x74,0x3d,0x21,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x26,0x26,0x57,0x76,0x2e,0x68,0x61,0x73,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x2d,0x22,0x29,0x26,0x26,0x21,0x69,0x3f,0x60,0x76,0x61,0x72,0x28,0x24,0x7b,0x72,0x7d,0x29,0x60,0x3a,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x75,0x72,0x6c,0x28,0x22,0x29,0x3f,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x28,0x75,0x72,0x6c,0x5c,0x28,0x2e,0x2a,0x3f,0x5c,0x29,0x29,0x2f,0x67,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x2f,0x5e,0x75,0x72,0x6c,0x5c,0x28,0x2e,0x2a,0x3f,0x5c,0x29,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x29,0x3f,0x6e,0x3a,0x4b,0x28,0x6e,0x2c,0x65,0x2c,0x21,0x31,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x3a,0x28,0x72,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5b,0x5e,0x5c,0x5c,0x5d,0x29,0x5f,0x2b,0x2f,0x67,0x2c,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3e,0x61,0x2b,0x22,0x20,0x22,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x5f,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x5c,0x5f,0x2f,0x67,0x2c,0x22,0x5f,0x22,0x29,0x2c,0x74,0x26,0x26,0x28,0x72,0x3d,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x72,0x3d,0x47,0x76,0x28,0x72,0x29,0x2c,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x65,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3d,0x22,0x29,0x26,0x26,0x28,0x72,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x3d,0x2e,0x2a,0x29,0x2f,0x67,0x2c,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x5b,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x27,0x22,0x7c,0x7c,0x74,0x5b,0x31,0x5d,0x3d,0x3d,0x3d,0x27,0x22,0x27,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3b,0x69,0x66,0x28,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x32,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x69,0x66,0x28,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x32,0x5d,0x3d,0x3d,0x3d,0x22,0x20,0x22,0x26,0x26,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x69,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x49,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x73,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x53,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x3d,0x22,0x24,0x7b,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x32,0x29,0x7d,0x22,0x20,0x24,0x7b,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x7d,0x60,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x3d,0x22,0x24,0x7b,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x7d,0x22,0x60,0x7d,0x29,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x47,0x76,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x22,0x74,0x68,0x65,0x6d,0x65,0x22,0x5d,0x2c,0x74,0x3d,0x5b,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x73,0x61,0x66,0x65,0x2d,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x74,0x6f,0x70,0x22,0x2c,0x22,0x73,0x61,0x66,0x65,0x2d,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x73,0x61,0x66,0x65,0x2d,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x73,0x61,0x66,0x65,0x2d,0x61,0x72,0x65,0x61,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x74,0x69,0x74,0x6c,0x65,0x62,0x61,0x72,0x2d,0x61,0x72,0x65,0x61,0x2d,0x78,0x22,0x2c,0x22,0x74,0x69,0x74,0x6c,0x65,0x62,0x61,0x72,0x2d,0x61,0x72,0x65,0x61,0x2d,0x79,0x22,0x2c,0x22,0x74,0x69,0x74,0x6c,0x65,0x62,0x61,0x72,0x2d,0x61,0x72,0x65,0x61,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x74,0x69,0x74,0x6c,0x65,0x62,0x61,0x72,0x2d,0x61,0x72,0x65,0x61,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x74,0x6f,0x70,0x22,0x2c,0x22,0x6b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x6b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x6b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x2d,0x69,0x6e,0x73,0x65,0x74,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x69,0x63,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6e,0x69,0x63,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2d,0x73,0x69,0x7a,0x65,0x22,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x63,0x61,0x6c,0x63,0x7c,0x6d,0x69,0x6e,0x7c,0x6d,0x61,0x78,0x7c,0x63,0x6c,0x61,0x6d,0x70,0x29,0x5c,0x28,0x2e,0x2b,0x5c,0x29,0x2f,0x67,0x2c,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x22,0x22,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x6e,0x2e,0x74,0x72,0x69,0x6d,0x45,0x6e,0x64,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x5b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x3d,0x30,0x3b,0x73,0x3c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x73,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x66,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x22,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x28,0x64,0x2c,0x70,0x29,0x3d,0x3e,0x69,0x5b,0x73,0x2b,0x70,0x5d,0x3d,0x3d,0x3d,0x64,0x29,0x7d,0x2c,0x6c,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x66,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x31,0x2f,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x66,0x29,0x7b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x68,0x2c,0x73,0x29,0x3b,0x62,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x62,0x3c,0x64,0x26,0x26,0x28,0x64,0x3d,0x62,0x29,0x7d,0x6c,0x65,0x74,0x20,0x70,0x3d,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x2c,0x64,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2b,0x3d,0x70,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x70,0x7d,0x2c,0x63,0x3d,0x69,0x5b,0x73,0x5d,0x3b,0x69,0x66,0x28,0x6f,0x28,0x22,0x76,0x61,0x72,0x22,0x29,0x29,0x6e,0x2b,0x3d,0x6c,0x28,0x5b,0x22,0x29,0x22,0x2c,0x22,0x2c,0x22,0x5d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x66,0x3d,0x3e,0x6f,0x28,0x66,0x29,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x74,0x2e,0x66,0x69,0x6e,0x64,0x28,0x64,0x3d,0x3e,0x6f,0x28,0x64,0x29,0x29,0x3b,0x6e,0x2b,0x3d,0x66,0x2c,0x73,0x2b,0x3d,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x7d,0x65,0x6c,0x73,0x65,0x20,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x66,0x3d,0x3e,0x6f,0x28,0x66,0x29,0x29,0x3f,0x6e,0x2b,0x3d,0x6c,0x28,0x5b,0x22,0x29,0x22,0x5d,0x29,0x3a,0x6f,0x28,0x22,0x5b,0x22,0x29,0x3f,0x6e,0x2b,0x3d,0x6c,0x28,0x5b,0x22,0x5d,0x22,0x5d,0x29,0x3a,0x5b,0x22,0x2b,0x22,0x2c,0x22,0x2d,0x22,0x2c,0x22,0x2a,0x22,0x2c,0x22,0x2f,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x63,0x29,0x26,0x26,0x21,0x5b,0x22,0x28,0x22,0x2c,0x22,0x2b,0x22,0x2c,0x22,0x2d,0x22,0x2c,0x22,0x2a,0x22,0x2c,0x22,0x2f,0x22,0x2c,0x22,0x2c,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x61,0x28,0x29,0x29,0x3f,0x6e,0x2b,0x3d,0x60,0x20,0x24,0x7b,0x63,0x7d,0x20,0x60,0x3a,0x6e,0x2b,0x3d,0x63,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x75,0x72,0x6c,0x28,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x69,0x73,0x4e,0x61,0x4e,0x28,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x72,0x29,0x29,0x7c,0x7c,0x51,0x73,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x72,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x25,0x22,0x29,0x26,0x26,0x4b,0x73,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x31,0x29,0x29,0x7c,0x7c,0x51,0x73,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x72,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x7c,0x7c,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x5e,0x5b,0x2b,0x2d,0x5d,0x3f,0x5b,0x30,0x2d,0x39,0x5d,0x2a,0x2e,0x3f,0x5b,0x30,0x2d,0x39,0x5d,0x2b,0x28,0x3f,0x3a,0x5b,0x65,0x45,0x5d,0x5b,0x2b,0x2d,0x5d,0x3f,0x5b,0x30,0x2d,0x39,0x5d,0x2b,0x29,0x3f,0x24,0x7b,0x59,0x76,0x7d,0x24,0x60,0x29,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x7c,0x7c,0x51,0x73,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x76,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x4a,0x69,0x28,0x4b,0x28,0x72,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x66,0x28,0x21,0x74,0x2e,0x76,0x61,0x6c,0x69,0x64,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x22,0x5f,0x22,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x4b,0x28,0x69,0x29,0x2c,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x61,0x72,0x28,0x22,0x29,0x3f,0x21,0x30,0x3a,0x24,0x72,0x28,0x69,0x2c,0x7b,0x6c,0x6f,0x6f,0x73,0x65,0x3a,0x21,0x30,0x7d,0x29,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x28,0x65,0x2b,0x2b,0x2c,0x21,0x30,0x29,0x3a,0x21,0x31,0x29,0x29,0x3f,0x65,0x3e,0x30,0x3a,0x21,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x22,0x2c,0x22,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x4b,0x28,0x69,0x29,0x2c,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x61,0x72,0x28,0x22,0x29,0x3f,0x21,0x30,0x3a,0x59,0x73,0x28,0x69,0x29,0x7c,0x7c,0x4a,0x76,0x28,0x69,0x29,0x7c,0x7c,0x5b,0x22,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x2c,0x22,0x69,0x6d,0x61,0x67,0x65,0x28,0x22,0x2c,0x22,0x63,0x72,0x6f,0x73,0x73,0x2d,0x66,0x61,0x64,0x65,0x28,0x22,0x2c,0x22,0x69,0x6d,0x61,0x67,0x65,0x2d,0x73,0x65,0x74,0x28,0x22,0x5d,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6e,0x3d,0x3e,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x6e,0x29,0x29,0x3f,0x28,0x65,0x2b,0x2b,0x2c,0x21,0x30,0x29,0x3a,0x21,0x31,0x29,0x29,0x3f,0x65,0x3e,0x30,0x3a,0x21,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x76,0x28,0x72,0x29,0x7b,0x72,0x3d,0x4b,0x28,0x72,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x58,0x76,0x29,0x69,0x66,0x28,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x60,0x24,0x7b,0x65,0x7d,0x28,0x60,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x22,0x5f,0x22,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x4b,0x28,0x69,0x29,0x2c,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x61,0x72,0x28,0x22,0x29,0x3f,0x21,0x30,0x3a,0x5a,0x76,0x2e,0x68,0x61,0x73,0x28,0x69,0x29,0x7c,0x7c,0x4e,0x72,0x28,0x69,0x29,0x7c,0x7c,0x4d,0x72,0x28,0x69,0x29,0x3f,0x28,0x65,0x2b,0x2b,0x2c,0x21,0x30,0x29,0x3a,0x21,0x31,0x29,0x29,0x3f,0x65,0x3e,0x30,0x3a,0x21,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x22,0x2c,0x22,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x4b,0x28,0x69,0x29,0x2c,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x61,0x72,0x28,0x22,0x29,0x3f,0x21,0x30,0x3a,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x20,0x22,0x29,0x26,0x26,0x21,0x2f,0x28,0x5b,0x27,0x22,0x5d,0x29,0x28,0x5b,0x5e,0x22,0x27,0x5d,0x2b,0x29,0x5c,0x31,0x2f,0x67,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x7c,0x7c,0x2f,0x5e,0x5c,0x64,0x2f,0x67,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x3f,0x21,0x31,0x3a,0x28,0x65,0x2b,0x2b,0x2c,0x21,0x30,0x29,0x29,0x29,0x3f,0x65,0x3e,0x30,0x3a,0x21,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x78,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x78,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7d,0x76,0x61,0x72,0x20,0x48,0x76,0x2c,0x57,0x76,0x2c,0x51,0x76,0x2c,0x59,0x76,0x2c,0x4b,0x76,0x2c,0x58,0x76,0x2c,0x5a,0x76,0x2c,0x65,0x78,0x2c,0x74,0x78,0x2c,0x72,0x78,0x2c,0x42,0x72,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x57,0x73,0x28,0x29,0x3b,0x47,0x73,0x28,0x29,0x3b,0x7a,0x74,0x28,0x29,0x3b,0x48,0x76,0x3d,0x5b,0x22,0x6d,0x69,0x6e,0x22,0x2c,0x22,0x6d,0x61,0x78,0x22,0x2c,0x22,0x63,0x6c,0x61,0x6d,0x70,0x22,0x2c,0x22,0x63,0x61,0x6c,0x63,0x22,0x5d,0x3b,0x57,0x76,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x22,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x63,0x6f,0x70,0x65,0x22,0x2c,0x22,0x76,0x69,0x65,0x77,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x70,0x61,0x6c,0x65,0x74,0x74,0x65,0x22,0x2c,0x22,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x22,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2d,0x73,0x63,0x6f,0x70,0x65,0x22,0x2c,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x61,0x6e,0x63,0x68,0x6f,0x72,0x22,0x2c,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x72,0x79,0x2d,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x76,0x69,0x65,0x77,0x2d,0x74,0x69,0x6d,0x65,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x72,0x79,0x22,0x5d,0x29,0x3b,0x51,0x76,0x3d,0x5b,0x22,0x63,0x6d,0x22,0x2c,0x22,0x6d,0x6d,0x22,0x2c,0x22,0x51,0x22,0x2c,0x22,0x69,0x6e,0x22,0x2c,0x22,0x70,0x63,0x22,0x2c,0x22,0x70,0x74,0x22,0x2c,0x22,0x70,0x78,0x22,0x2c,0x22,0x65,0x6d,0x22,0x2c,0x22,0x65,0x78,0x22,0x2c,0x22,0x63,0x68,0x22,0x2c,0x22,0x72,0x65,0x6d,0x22,0x2c,0x22,0x6c,0x68,0x22,0x2c,0x22,0x72,0x6c,0x68,0x22,0x2c,0x22,0x76,0x77,0x22,0x2c,0x22,0x76,0x68,0x22,0x2c,0x22,0x76,0x6d,0x69,0x6e,0x22,0x2c,0x22,0x76,0x6d,0x61,0x78,0x22,0x2c,0x22,0x76,0x62,0x22,0x2c,0x22,0x76,0x69,0x22,0x2c,0x22,0x73,0x76,0x77,0x22,0x2c,0x22,0x73,0x76,0x68,0x22,0x2c,0x22,0x6c,0x76,0x77,0x22,0x2c,0x22,0x6c,0x76,0x68,0x22,0x2c,0x22,0x64,0x76,0x77,0x22,0x2c,0x22,0x64,0x76,0x68,0x22,0x2c,0x22,0x63,0x71,0x77,0x22,0x2c,0x22,0x63,0x71,0x68,0x22,0x2c,0x22,0x63,0x71,0x69,0x22,0x2c,0x22,0x63,0x71,0x62,0x22,0x2c,0x22,0x63,0x71,0x6d,0x69,0x6e,0x22,0x2c,0x22,0x63,0x71,0x6d,0x61,0x78,0x22,0x5d,0x2c,0x59,0x76,0x3d,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x51,0x76,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x29,0x60,0x3b,0x4b,0x76,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x68,0x69,0x6e,0x22,0x2c,0x22,0x6d,0x65,0x64,0x69,0x75,0x6d,0x22,0x2c,0x22,0x74,0x68,0x69,0x63,0x6b,0x22,0x5d,0x29,0x3b,0x58,0x76,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x63,0x6f,0x6e,0x69,0x63,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6e,0x69,0x63,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x5d,0x29,0x3b,0x5a,0x76,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x22,0x74,0x6f,0x70,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x22,0x5d,0x29,0x3b,0x65,0x78,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x22,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x22,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x22,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x22,0x2c,0x22,0x66,0x61,0x6e,0x74,0x61,0x73,0x79,0x22,0x2c,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x2d,0x75,0x69,0x22,0x2c,0x22,0x75,0x69,0x2d,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x22,0x75,0x69,0x2d,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x22,0x75,0x69,0x2d,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x22,0x75,0x69,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x22,0x2c,0x22,0x6d,0x61,0x74,0x68,0x22,0x2c,0x22,0x65,0x6d,0x6f,0x6a,0x69,0x22,0x2c,0x22,0x66,0x61,0x6e,0x67,0x73,0x6f,0x6e,0x67,0x22,0x5d,0x29,0x3b,0x74,0x78,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x78,0x78,0x2d,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x2c,0x22,0x78,0x2d,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x2c,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x2c,0x22,0x6d,0x65,0x64,0x69,0x75,0x6d,0x22,0x2c,0x22,0x6c,0x61,0x72,0x67,0x65,0x22,0x2c,0x22,0x78,0x2d,0x6c,0x61,0x72,0x67,0x65,0x22,0x2c,0x22,0x78,0x78,0x2d,0x6c,0x61,0x72,0x67,0x65,0x22,0x2c,0x22,0x78,0x78,0x78,0x2d,0x6c,0x61,0x72,0x67,0x65,0x22,0x5d,0x29,0x3b,0x72,0x78,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6c,0x61,0x72,0x67,0x65,0x72,0x22,0x2c,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x65,0x72,0x22,0x5d,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x22,0x63,0x6f,0x76,0x65,0x72,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x65,0x28,0x72,0x2c,0x22,0x2c,0x22,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x76,0x65,0x28,0x74,0x2c,0x22,0x5f,0x22,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x69,0x5b,0x30,0x5d,0x29,0x3f,0x21,0x30,0x3a,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x31,0x26,0x26,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x32,0x3f,0x21,0x31,0x3a,0x69,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x6e,0x3d,0x3e,0x4e,0x72,0x28,0x6e,0x29,0x7c,0x7c,0x4d,0x72,0x28,0x6e,0x29,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x48,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x42,0x72,0x28,0x29,0x3b,0x7a,0x74,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x66,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x74,0x3d,0x3e,0x7b,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x28,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6a,0x74,0x28,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x47,0x66,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x5f,0x74,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x3b,0x69,0x66,0x28,0x21,0x21,0x65,0x28,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x28,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x78,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x5b,0x72,0x5d,0x3b,0x69,0x66,0x28,0x69,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x78,0x74,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x5f,0x74,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x47,0x66,0x28,0x72,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x76,0x6f,0x69,0x64,0x20,0x30,0x3a,0x78,0x74,0x28,0x6e,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5a,0x69,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x74,0x3d,0x28,0x29,0x3d,0x3e,0x21,0x30,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x2e,0x5b,0x72,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x69,0x3a,0x65,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x26,0x26,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x22,0x29,0x3f,0x69,0x78,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2c,0x74,0x29,0x3a,0x47,0x66,0x28,0x72,0x2c,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5b,0x22,0x29,0x26,0x26,0x72,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5d,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2f,0x22,0x29,0x2c,0x74,0x3d,0x72,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5b,0x22,0x2c,0x65,0x29,0x2c,0x69,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5d,0x22,0x2c,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x5b,0x65,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x5d,0x22,0x7c,0x7c,0x72,0x5b,0x65,0x2b,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x7c,0x7c,0x74,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x69,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x74,0x3c,0x65,0x26,0x26,0x65,0x3c,0x69,0x26,0x26,0x28,0x65,0x3d,0x72,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2f,0x22,0x2c,0x74,0x29,0x29,0x2c,0x65,0x3d,0x3d,0x3d,0x2d,0x31,0x7c,0x7c,0x65,0x3d,0x3d,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3f,0x5b,0x72,0x2c,0x76,0x6f,0x69,0x64,0x20,0x30,0x5d,0x3a,0x5f,0x74,0x28,0x72,0x29,0x26,0x26,0x21,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x5d,0x2f,0x5b,0x22,0x29,0x3f,0x5b,0x72,0x2c,0x76,0x6f,0x69,0x64,0x20,0x30,0x5d,0x3a,0x5b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x65,0x29,0x2c,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x65,0x2b,0x31,0x29,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x74,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3c,0x61,0x6c,0x70,0x68,0x61,0x2d,0x76,0x61,0x6c,0x75,0x65,0x3e,0x22,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x56,0x61,0x6c,0x75,0x65,0x3a,0x74,0x3d,0x31,0x7d,0x29,0x3d,0x3e,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3c,0x61,0x6c,0x70,0x68,0x61,0x2d,0x76,0x61,0x6c,0x75,0x65,0x3e,0x2f,0x67,0x2c,0x74,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x66,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x78,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x2c,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x74,0x3d,0x7b,0x7d,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x2e,0x5b,0x72,0x5d,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x58,0x74,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x2e,0x5b,0x72,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x5d,0x3d,0x51,0x66,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x6e,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x2e,0x5b,0x69,0x5d,0x3f,0x3f,0x28,0x5f,0x74,0x28,0x69,0x29,0x3f,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x76,0x6f,0x69,0x64,0x20,0x30,0x3a,0x28,0x61,0x3d,0x58,0x74,0x28,0x61,0x29,0x2c,0x5f,0x74,0x28,0x6e,0x29,0x3f,0x5a,0x65,0x28,0x61,0x2c,0x59,0x66,0x28,0x6e,0x29,0x29,0x3a,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x3f,0x2e,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3f,0x2e,0x5b,0x6e,0x5d,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x76,0x6f,0x69,0x64,0x20,0x30,0x3a,0x5a,0x65,0x28,0x61,0x2c,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2e,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x5b,0x6e,0x5d,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5a,0x69,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x4d,0x66,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x78,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x2e,0x5b,0x72,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x65,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x5a,0x69,0x28,0x65,0x2c,0x74,0x2c,0x7b,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x72,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x78,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x2d,0x31,0x3f,0x5b,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x72,0x5d,0x3a,0x5b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x74,0x29,0x2c,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x74,0x2b,0x31,0x29,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x73,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x26,0x26,0x65,0x20,0x69,0x6e,0x20,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x7b,0x74,0x79,0x70,0x65,0x3a,0x61,0x7d,0x6f,0x66,0x20,0x72,0x3f,0x3f,0x5b,0x5d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x58,0x73,0x5b,0x61,0x5d,0x28,0x65,0x2c,0x74,0x2c,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x69,0x7d,0x29,0x3b,0x69,0x66,0x28,0x73,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x73,0x2c,0x61,0x2c,0x6e,0x75,0x6c,0x6c,0x5d,0x7d,0x69,0x66,0x28,0x5f,0x74,0x28,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x2c,0x5b,0x73,0x2c,0x6f,0x5d,0x3d,0x61,0x78,0x28,0x61,0x2c,0x22,0x3a,0x22,0x29,0x3b,0x69,0x66,0x28,0x21,0x2f,0x5e,0x5b,0x5c,0x77,0x2d,0x5f,0x5d,0x2b,0x24,0x2f,0x67,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x29,0x29,0x6f,0x3d,0x61,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x73,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x21,0x4b,0x66,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x73,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x4b,0x66,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x73,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5a,0x69,0x28,0x60,0x5b,0x24,0x7b,0x6f,0x7d,0x5d,0x60,0x2c,0x74,0x29,0x2c,0x73,0x2c,0x6e,0x75,0x6c,0x6c,0x5d,0x7d,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x5a,0x73,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x5a,0x73,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x77,0x65,0x28,0x69,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x29,0x2c,0x5b,0x61,0x2c,0x73,0x5d,0x3d,0x51,0x66,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x6e,0x26,0x26,0x74,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x74,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3d,0x3d,0x3d,0x22,0x61,0x6e,0x79,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x28,0x73,0x26,0x26,0x5f,0x74,0x28,0x73,0x29,0x7c,0x7c,0x73,0x20,0x69,0x6e,0x20,0x74,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x29,0x7c,0x7c,0x28,0x61,0x3d,0x65,0x2c,0x73,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x2c,0x73,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x61,0x3d,0x3d,0x3d,0x22,0x22,0x26,0x26,0x28,0x61,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x2c,0x73,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3f,0x2e,0x5b,0x73,0x5d,0x3f,0x3f,0x6e,0x75,0x6c,0x6c,0x3b,0x6c,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x73,0x3d,0x6c,0x3a,0x5f,0x74,0x28,0x73,0x29,0x26,0x26,0x28,0x73,0x3d,0x59,0x66,0x28,0x73,0x29,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x7b,0x74,0x79,0x70,0x65,0x3a,0x6c,0x7d,0x6f,0x66,0x20,0x72,0x3f,0x3f,0x5b,0x5d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x58,0x73,0x5b,0x6c,0x5d,0x28,0x61,0x2c,0x74,0x2c,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x69,0x7d,0x29,0x3b,0x63,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x63,0x2c,0x6c,0x2c,0x73,0x3f,0x3f,0x6e,0x75,0x6c,0x6c,0x5d,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x58,0x73,0x2c,0x4b,0x66,0x2c,0x46,0x72,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4b,0x69,0x28,0x29,0x3b,0x4c,0x72,0x28,0x29,0x3b,0x42,0x72,0x28,0x29,0x3b,0x48,0x69,0x28,0x29,0x3b,0x48,0x66,0x28,0x29,0x3b,0x63,0x74,0x28,0x29,0x3b,0x58,0x73,0x3d,0x7b,0x61,0x6e,0x79,0x3a,0x5a,0x69,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x6e,0x78,0x2c,0x75,0x72,0x6c,0x3a,0x71,0x65,0x28,0x59,0x73,0x29,0x2c,0x69,0x6d,0x61,0x67,0x65,0x3a,0x71,0x65,0x28,0x4e,0x66,0x29,0x2c,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x71,0x65,0x28,0x4e,0x72,0x29,0x2c,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x3a,0x71,0x65,0x28,0x4d,0x72,0x29,0x2c,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x71,0x65,0x28,0x42,0x66,0x29,0x2c,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x3a,0x73,0x78,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x3a,0x71,0x65,0x28,0x6a,0x66,0x29,0x2c,0x22,0x66,0x61,0x6d,0x69,0x6c,0x79,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x3a,0x71,0x65,0x28,0x46,0x66,0x29,0x2c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x3a,0x71,0x65,0x28,0x4b,0x73,0x29,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x71,0x65,0x28,0x24,0x66,0x29,0x2c,0x22,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x71,0x65,0x28,0x7a,0x66,0x29,0x2c,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x71,0x65,0x28,0x55,0x66,0x29,0x2c,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x71,0x65,0x28,0x4c,0x66,0x29,0x2c,0x73,0x69,0x7a,0x65,0x3a,0x71,0x65,0x28,0x56,0x66,0x29,0x7d,0x2c,0x4b,0x66,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x58,0x73,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x72,0x28,0x7b,0x7d,0x29,0x3a,0x72,0x7d,0x76,0x61,0x72,0x20,0x65,0x61,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x72,0x28,0x72,0x2c,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x69,0x6e,0x20,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x28,0x72,0x5b,0x6e,0x5d,0x2c,0x69,0x5b,0x6e,0x5d,0x29,0x3b,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x6b,0x65,0x28,0x72,0x5b,0x6e,0x5d,0x29,0x26,0x26,0x6b,0x65,0x28,0x69,0x5b,0x6e,0x5d,0x29,0x3f,0x72,0x5b,0x6e,0x5d,0x3d,0x6a,0x72,0x28,0x7b,0x7d,0x2c,0x72,0x5b,0x6e,0x5d,0x2c,0x69,0x5b,0x6e,0x5d,0x2c,0x74,0x29,0x3a,0x72,0x5b,0x6e,0x5d,0x3d,0x69,0x5b,0x6e,0x5d,0x3a,0x72,0x5b,0x6e,0x5d,0x3d,0x61,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x78,0x28,0x72,0x2c,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4a,0x74,0x28,0x72,0x29,0x3f,0x72,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x3a,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x78,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x65,0x2c,0x7b,0x65,0x78,0x74,0x65,0x6e,0x64,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x6a,0x72,0x28,0x65,0x2c,0x74,0x2c,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x5b,0x6e,0x5d,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x3f,0x5b,0x6e,0x2c,0x2e,0x2e,0x2e,0x69,0x5d,0x3a,0x5b,0x6e,0x2c,0x69,0x5d,0x29,0x2c,0x7b,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x78,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x72,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x55,0x73,0x28,0x65,0x2c,0x74,0x29,0x2c,0x7b,0x7d,0x29,0x2c,0x65,0x78,0x74,0x65,0x6e,0x64,0x3a,0x6c,0x78,0x28,0x72,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x66,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x26,0x26,0x6b,0x65,0x28,0x72,0x5b,0x30,0x5d,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x26,0x26,0x6b,0x65,0x28,0x65,0x5b,0x30,0x5d,0x29,0x26,0x26,0x6b,0x65,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x72,0x2c,0x2e,0x2e,0x2e,0x65,0x5d,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x78,0x28,0x7b,0x65,0x78,0x74,0x65,0x6e,0x64,0x3a,0x72,0x2c,0x2e,0x2e,0x2e,0x65,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6a,0x72,0x28,0x65,0x2c,0x72,0x2c,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x21,0x4a,0x74,0x28,0x74,0x29,0x26,0x26,0x21,0x69,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x4a,0x74,0x29,0x3f,0x6a,0x72,0x28,0x7b,0x7d,0x2c,0x74,0x2c,0x2e,0x2e,0x2e,0x69,0x2c,0x58,0x66,0x29,0x3a,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3e,0x6a,0x72,0x28,0x7b,0x7d,0x2c,0x2e,0x2e,0x2e,0x5b,0x74,0x2c,0x2e,0x2e,0x2e,0x69,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x6f,0x78,0x28,0x73,0x2c,0x6e,0x2c,0x61,0x29,0x29,0x2c,0x58,0x66,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x63,0x78,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6b,0x74,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x28,0x79,0x69,0x65,0x6c,0x64,0x20,0x65,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x2f,0x5e,0x28,0x2e,0x2a,0x3f,0x29,0x5c,0x73,0x2a,0x5c,0x2f,0x5c,0x73,0x2a,0x28,0x5b,0x5e,0x2f,0x5d,0x2b,0x29,0x24,0x2f,0x2c,0x69,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x29,0x3b,0x69,0x66,0x28,0x69,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x2c,0x6e,0x2c,0x61,0x5d,0x3d,0x69,0x2c,0x73,0x3d,0x6b,0x74,0x28,0x6e,0x29,0x3b,0x73,0x2e,0x61,0x6c,0x70,0x68,0x61,0x3d,0x61,0x2c,0x79,0x69,0x65,0x6c,0x64,0x20,0x73,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x78,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x63,0x78,0x28,0x74,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x30,0x2c,0x73,0x3d,0x72,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x73,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x61,0x3c,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x73,0x3d,0x73,0x5b,0x6e,0x5b,0x61,0x2b,0x2b,0x5d,0x5d,0x2c,0x73,0x3d,0x4a,0x74,0x28,0x73,0x29,0x26,0x26,0x28,0x6e,0x2e,0x61,0x6c,0x70,0x68,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x61,0x3c,0x3d,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x3f,0x73,0x28,0x65,0x2c,0x74,0x61,0x29,0x3a,0x73,0x3b,0x69,0x66,0x28,0x73,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x69,0x66,0x28,0x6e,0x2e,0x61,0x6c,0x70,0x68,0x61,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x58,0x74,0x28,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5a,0x65,0x28,0x6f,0x2c,0x6e,0x2e,0x61,0x6c,0x70,0x68,0x61,0x2c,0x58,0x28,0x6f,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x28,0x73,0x29,0x3f,0x53,0x74,0x28,0x73,0x29,0x3a,0x73,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x65,0x2c,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x2e,0x2e,0x2e,0x74,0x61,0x7d,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x28,0x74,0x5b,0x69,0x5d,0x3d,0x4a,0x74,0x28,0x72,0x5b,0x69,0x5d,0x29,0x3f,0x72,0x5b,0x69,0x5d,0x28,0x65,0x2c,0x74,0x61,0x29,0x3a,0x72,0x5b,0x69,0x5d,0x2c,0x74,0x29,0x2c,0x7b,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x66,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x74,0x3d,0x3e,0x7b,0x65,0x3d,0x5b,0x2e,0x2e,0x2e,0x65,0x2c,0x74,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x3f,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3f,0x3f,0x5b,0x5d,0x3b,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x30,0x26,0x26,0x69,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x6e,0x3d,0x3e,0x7b,0x6e,0x2e,0x5f,0x5f,0x69,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x26,0x26,0x28,0x6e,0x3d,0x6e,0x28,0x29,0x29,0x2c,0x65,0x3d,0x5b,0x2e,0x2e,0x2e,0x65,0x2c,0x2e,0x2e,0x2e,0x4a,0x66,0x28,0x5b,0x6e,0x3f,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3f,0x3f,0x7b,0x7d,0x5d,0x29,0x5d,0x7d,0x29,0x7d,0x29,0x2c,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x78,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x2e,0x2e,0x2e,0x72,0x5d,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x52,0x69,0x67,0x68,0x74,0x28,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x4a,0x74,0x28,0x69,0x29,0x3f,0x69,0x28,0x7b,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3a,0x76,0x66,0x28,0x69,0x2c,0x74,0x29,0x2c,0x62,0x66,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x78,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x2e,0x2e,0x2e,0x72,0x5d,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x52,0x69,0x67,0x68,0x74,0x28,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x5b,0x2e,0x2e,0x2e,0x74,0x2c,0x2e,0x2e,0x2e,0x69,0x5d,0x2c,0x5b,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x61,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x2e,0x2e,0x2e,0x4a,0x66,0x28,0x72,0x29,0x2c,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x22,0x2c,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x31,0x2c,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3a,0x22,0x3a,0x22,0x7d,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x66,0x28,0x55,0x73,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x70,0x78,0x28,0x66,0x78,0x28,0x75,0x78,0x28,0x65,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x3f,0x2e,0x74,0x68,0x65,0x6d,0x65,0x3f,0x3f,0x7b,0x7d,0x29,0x29,0x29,0x29,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x64,0x78,0x28,0x65,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x29,0x2c,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x68,0x78,0x28,0x72,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x3f,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3f,0x3f,0x5b,0x5d,0x29,0x29,0x7d,0x2c,0x2e,0x2e,0x2e,0x65,0x29,0x29,0x7d,0x76,0x61,0x72,0x20,0x74,0x61,0x2c,0x5a,0x66,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x48,0x69,0x28,0x29,0x3b,0x77,0x66,0x28,0x29,0x3b,0x78,0x66,0x28,0x29,0x3b,0x7a,0x73,0x28,0x29,0x3b,0x43,0x66,0x28,0x29,0x3b,0x47,0x69,0x28,0x29,0x3b,0x52,0x66,0x28,0x29,0x3b,0x4b,0x74,0x28,0x29,0x3b,0x59,0x69,0x28,0x29,0x3b,0x46,0x72,0x28,0x29,0x3b,0x4c,0x72,0x28,0x29,0x3b,0x65,0x61,0x28,0x29,0x3b,0x74,0x61,0x3d,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x3a,0x6a,0x73,0x2c,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x65,0x3d,0x3e,0x72,0x5b,0x65,0x5d,0x21,0x3d,0x3d,0x22,0x30,0x22,0x29,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x78,0x74,0x28,0x72,0x5b,0x74,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x65,0x5b,0x60,0x2d,0x24,0x7b,0x74,0x7d,0x60,0x5d,0x3d,0x69,0x29,0x2c,0x65,0x7d,0x2c,0x7b,0x7d,0x29,0x7d,0x2c,0x62,0x72,0x65,0x61,0x6b,0x70,0x6f,0x69,0x6e,0x74,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x65,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x5b,0x65,0x5d,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x5b,0x60,0x73,0x63,0x72,0x65,0x65,0x6e,0x2d,0x24,0x7b,0x74,0x7d,0x60,0x5d,0x3a,0x72,0x5b,0x74,0x5d,0x7d,0x29,0x2c,0x7b,0x7d,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x65,0x6e,0x3d,0x78,0x28,0x28,0x6c,0x33,0x2c,0x65,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x65,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x5b,0x5d,0x2c,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x3a,0x5b,0x5d,0x2c,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x3a,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x7b,0x61,0x63,0x63,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x29,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x73,0x70,0x69,0x6e,0x3a,0x22,0x73,0x70,0x69,0x6e,0x20,0x31,0x73,0x20,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x22,0x2c,0x70,0x69,0x6e,0x67,0x3a,0x22,0x70,0x69,0x6e,0x67,0x20,0x31,0x73,0x20,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x32,0x2c,0x20,0x31,0x29,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x22,0x2c,0x70,0x75,0x6c,0x73,0x65,0x3a,0x22,0x70,0x75,0x6c,0x73,0x65,0x20,0x32,0x73,0x20,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x34,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x36,0x2c,0x20,0x31,0x29,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x22,0x2c,0x62,0x6f,0x75,0x6e,0x63,0x65,0x3a,0x22,0x62,0x6f,0x75,0x6e,0x63,0x65,0x20,0x31,0x73,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x22,0x7d,0x2c,0x61,0x72,0x69,0x61,0x3a,0x7b,0x62,0x75,0x73,0x79,0x3a,0x27,0x62,0x75,0x73,0x79,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3a,0x27,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3a,0x27,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x3a,0x27,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x68,0x69,0x64,0x64,0x65,0x6e,0x3a,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x70,0x72,0x65,0x73,0x73,0x65,0x64,0x3a,0x27,0x70,0x72,0x65,0x73,0x73,0x65,0x64,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x27,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x3a,0x27,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3a,0x27,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x27,0x7d,0x2c,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x73,0x71,0x75,0x61,0x72,0x65,0x3a,0x22,0x31,0x20,0x2f,0x20,0x31,0x22,0x2c,0x76,0x69,0x64,0x65,0x6f,0x3a,0x22,0x31,0x36,0x20,0x2f,0x20,0x39,0x22,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x6c,0x75,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x62,0x6c,0x75,0x72,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x47,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x48,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x68,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x49,0x6e,0x76,0x65,0x72,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x65,0x70,0x69,0x61,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x73,0x65,0x70,0x69,0x61,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x49,0x6d,0x61,0x67,0x65,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x74,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x74,0x6f,0x70,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x74,0x72,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x72,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x62,0x72,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x72,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x62,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x62,0x6c,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x6c,0x65,0x66,0x74,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x6c,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x6c,0x65,0x66,0x74,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x2c,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x74,0x6c,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x28,0x74,0x6f,0x20,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x29,0x29,0x22,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x63,0x65,0x6e,0x74,0x65,0x72,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x6c,0x65,0x66,0x74,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x72,0x69,0x67,0x68,0x74,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x74,0x6f,0x70,0x3a,0x22,0x74,0x6f,0x70,0x22,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x69,0x7a,0x65,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x63,0x6f,0x76,0x65,0x72,0x3a,0x22,0x63,0x6f,0x76,0x65,0x72,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x7d,0x2c,0x62,0x6c,0x75,0x72,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x22,0x2c,0x73,0x6d,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x38,0x70,0x78,0x22,0x2c,0x6d,0x64,0x3a,0x22,0x31,0x32,0x70,0x78,0x22,0x2c,0x6c,0x67,0x3a,0x22,0x31,0x36,0x70,0x78,0x22,0x2c,0x78,0x6c,0x3a,0x22,0x32,0x34,0x70,0x78,0x22,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x34,0x30,0x70,0x78,0x22,0x2c,0x22,0x33,0x78,0x6c,0x22,0x3a,0x22,0x36,0x34,0x70,0x78,0x22,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x2e,0x67,0x72,0x61,0x79,0x2e,0x32,0x30,0x30,0x22,0x2c,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x7d,0x29,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x52,0x61,0x64,0x69,0x75,0x73,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x73,0x6d,0x3a,0x22,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x6d,0x64,0x3a,0x22,0x30,0x2e,0x33,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x6c,0x67,0x3a,0x22,0x30,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x78,0x6c,0x3a,0x22,0x30,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x31,0x72,0x65,0x6d,0x22,0x2c,0x22,0x33,0x78,0x6c,0x22,0x3a,0x22,0x31,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x39,0x39,0x39,0x39,0x70,0x78,0x22,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x7d,0x29,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x3a,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x3a,0x7b,0x73,0x6d,0x3a,0x22,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x30,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x35,0x29,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x30,0x20,0x31,0x70,0x78,0x20,0x33,0x70,0x78,0x20,0x30,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x2c,0x20,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x2d,0x31,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x22,0x2c,0x6d,0x64,0x3a,0x22,0x30,0x20,0x34,0x70,0x78,0x20,0x36,0x70,0x78,0x20,0x2d,0x31,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x2c,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x34,0x70,0x78,0x20,0x2d,0x32,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x22,0x2c,0x6c,0x67,0x3a,0x22,0x30,0x20,0x31,0x30,0x70,0x78,0x20,0x31,0x35,0x70,0x78,0x20,0x2d,0x33,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x2c,0x20,0x30,0x20,0x34,0x70,0x78,0x20,0x36,0x70,0x78,0x20,0x2d,0x34,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x22,0x2c,0x78,0x6c,0x3a,0x22,0x30,0x20,0x32,0x30,0x70,0x78,0x20,0x32,0x35,0x70,0x78,0x20,0x2d,0x35,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x2c,0x20,0x30,0x20,0x38,0x70,0x78,0x20,0x31,0x30,0x70,0x78,0x20,0x2d,0x36,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x22,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x30,0x20,0x32,0x35,0x70,0x78,0x20,0x35,0x30,0x70,0x78,0x20,0x2d,0x31,0x32,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x32,0x35,0x29,0x22,0x2c,0x69,0x6e,0x6e,0x65,0x72,0x3a,0x22,0x69,0x6e,0x73,0x65,0x74,0x20,0x30,0x20,0x32,0x70,0x78,0x20,0x34,0x70,0x78,0x20,0x30,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x35,0x29,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x35,0x30,0x3a,0x22,0x2e,0x35,0x22,0x2c,0x37,0x35,0x3a,0x22,0x2e,0x37,0x35,0x22,0x2c,0x39,0x30,0x3a,0x22,0x2e,0x39,0x22,0x2c,0x39,0x35,0x3a,0x22,0x2e,0x39,0x35,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x22,0x2c,0x31,0x30,0x35,0x3a,0x22,0x31,0x2e,0x30,0x35,0x22,0x2c,0x31,0x31,0x30,0x3a,0x22,0x31,0x2e,0x31,0x22,0x2c,0x31,0x32,0x35,0x3a,0x22,0x31,0x2e,0x32,0x35,0x22,0x2c,0x31,0x35,0x30,0x3a,0x22,0x31,0x2e,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x32,0x22,0x7d,0x2c,0x63,0x61,0x72,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x3a,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3a,0x72,0x2e,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x2c,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3a,0x72,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2c,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x72,0x2e,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x3a,0x72,0x2e,0x62,0x6c,0x61,0x63,0x6b,0x2c,0x77,0x68,0x69,0x74,0x65,0x3a,0x72,0x2e,0x77,0x68,0x69,0x74,0x65,0x2c,0x73,0x6c,0x61,0x74,0x65,0x3a,0x72,0x2e,0x73,0x6c,0x61,0x74,0x65,0x2c,0x67,0x72,0x61,0x79,0x3a,0x72,0x2e,0x67,0x72,0x61,0x79,0x2c,0x7a,0x69,0x6e,0x63,0x3a,0x72,0x2e,0x7a,0x69,0x6e,0x63,0x2c,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x3a,0x72,0x2e,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x2c,0x73,0x74,0x6f,0x6e,0x65,0x3a,0x72,0x2e,0x73,0x74,0x6f,0x6e,0x65,0x2c,0x72,0x65,0x64,0x3a,0x72,0x2e,0x72,0x65,0x64,0x2c,0x6f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x72,0x2e,0x6f,0x72,0x61,0x6e,0x67,0x65,0x2c,0x61,0x6d,0x62,0x65,0x72,0x3a,0x72,0x2e,0x61,0x6d,0x62,0x65,0x72,0x2c,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x3a,0x72,0x2e,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x2c,0x6c,0x69,0x6d,0x65,0x3a,0x72,0x2e,0x6c,0x69,0x6d,0x65,0x2c,0x67,0x72,0x65,0x65,0x6e,0x3a,0x72,0x2e,0x67,0x72,0x65,0x65,0x6e,0x2c,0x65,0x6d,0x65,0x72,0x61,0x6c,0x64,0x3a,0x72,0x2e,0x65,0x6d,0x65,0x72,0x61,0x6c,0x64,0x2c,0x74,0x65,0x61,0x6c,0x3a,0x72,0x2e,0x74,0x65,0x61,0x6c,0x2c,0x63,0x79,0x61,0x6e,0x3a,0x72,0x2e,0x63,0x79,0x61,0x6e,0x2c,0x73,0x6b,0x79,0x3a,0x72,0x2e,0x73,0x6b,0x79,0x2c,0x62,0x6c,0x75,0x65,0x3a,0x72,0x2e,0x62,0x6c,0x75,0x65,0x2c,0x69,0x6e,0x64,0x69,0x67,0x6f,0x3a,0x72,0x2e,0x69,0x6e,0x64,0x69,0x67,0x6f,0x2c,0x76,0x69,0x6f,0x6c,0x65,0x74,0x3a,0x72,0x2e,0x76,0x69,0x6f,0x6c,0x65,0x74,0x2c,0x70,0x75,0x72,0x70,0x6c,0x65,0x3a,0x72,0x2e,0x70,0x75,0x72,0x70,0x6c,0x65,0x2c,0x66,0x75,0x63,0x68,0x73,0x69,0x61,0x3a,0x72,0x2e,0x66,0x75,0x63,0x68,0x73,0x69,0x61,0x2c,0x70,0x69,0x6e,0x6b,0x3a,0x72,0x2e,0x70,0x69,0x6e,0x6b,0x2c,0x72,0x6f,0x73,0x65,0x3a,0x72,0x2e,0x72,0x6f,0x73,0x65,0x7d,0x29,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x2c,0x37,0x3a,0x22,0x37,0x22,0x2c,0x38,0x3a,0x22,0x38,0x22,0x2c,0x39,0x3a,0x22,0x39,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x31,0x31,0x3a,0x22,0x31,0x31,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x22,0x2c,0x22,0x33,0x78,0x73,0x22,0x3a,0x22,0x31,0x36,0x72,0x65,0x6d,0x22,0x2c,0x22,0x32,0x78,0x73,0x22,0x3a,0x22,0x31,0x38,0x72,0x65,0x6d,0x22,0x2c,0x78,0x73,0x3a,0x22,0x32,0x30,0x72,0x65,0x6d,0x22,0x2c,0x73,0x6d,0x3a,0x22,0x32,0x34,0x72,0x65,0x6d,0x22,0x2c,0x6d,0x64,0x3a,0x22,0x32,0x38,0x72,0x65,0x6d,0x22,0x2c,0x6c,0x67,0x3a,0x22,0x33,0x32,0x72,0x65,0x6d,0x22,0x2c,0x78,0x6c,0x3a,0x22,0x33,0x36,0x72,0x65,0x6d,0x22,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x34,0x32,0x72,0x65,0x6d,0x22,0x2c,0x22,0x33,0x78,0x6c,0x22,0x3a,0x22,0x34,0x38,0x72,0x65,0x6d,0x22,0x2c,0x22,0x34,0x78,0x6c,0x22,0x3a,0x22,0x35,0x36,0x72,0x65,0x6d,0x22,0x2c,0x22,0x35,0x78,0x6c,0x22,0x3a,0x22,0x36,0x34,0x72,0x65,0x6d,0x22,0x2c,0x22,0x36,0x78,0x6c,0x22,0x3a,0x22,0x37,0x32,0x72,0x65,0x6d,0x22,0x2c,0x22,0x37,0x78,0x6c,0x22,0x3a,0x22,0x38,0x30,0x72,0x65,0x6d,0x22,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x7b,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x35,0x30,0x3a,0x22,0x2e,0x35,0x22,0x2c,0x37,0x35,0x3a,0x22,0x2e,0x37,0x35,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x22,0x2c,0x31,0x32,0x35,0x3a,0x22,0x31,0x2e,0x32,0x35,0x22,0x2c,0x31,0x35,0x30,0x3a,0x22,0x31,0x2e,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x32,0x22,0x7d,0x2c,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3a,0x22,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x22,0x2c,0x77,0x61,0x69,0x74,0x3a,0x22,0x77,0x61,0x69,0x74,0x22,0x2c,0x74,0x65,0x78,0x74,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x6d,0x6f,0x76,0x65,0x3a,0x22,0x6d,0x6f,0x76,0x65,0x22,0x2c,0x68,0x65,0x6c,0x70,0x3a,0x22,0x68,0x65,0x6c,0x70,0x22,0x2c,0x22,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x22,0x3a,0x22,0x6e,0x6f,0x74,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2d,0x6d,0x65,0x6e,0x75,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2d,0x6d,0x65,0x6e,0x75,0x22,0x2c,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x3a,0x22,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x22,0x2c,0x63,0x65,0x6c,0x6c,0x3a,0x22,0x63,0x65,0x6c,0x6c,0x22,0x2c,0x63,0x72,0x6f,0x73,0x73,0x68,0x61,0x69,0x72,0x3a,0x22,0x63,0x72,0x6f,0x73,0x73,0x68,0x61,0x69,0x72,0x22,0x2c,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x74,0x65,0x78,0x74,0x22,0x3a,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x74,0x65,0x78,0x74,0x22,0x2c,0x61,0x6c,0x69,0x61,0x73,0x3a,0x22,0x61,0x6c,0x69,0x61,0x73,0x22,0x2c,0x63,0x6f,0x70,0x79,0x3a,0x22,0x63,0x6f,0x70,0x79,0x22,0x2c,0x22,0x6e,0x6f,0x2d,0x64,0x72,0x6f,0x70,0x22,0x3a,0x22,0x6e,0x6f,0x2d,0x64,0x72,0x6f,0x70,0x22,0x2c,0x67,0x72,0x61,0x62,0x3a,0x22,0x67,0x72,0x61,0x62,0x22,0x2c,0x67,0x72,0x61,0x62,0x62,0x69,0x6e,0x67,0x3a,0x22,0x67,0x72,0x61,0x62,0x62,0x69,0x6e,0x67,0x22,0x2c,0x22,0x61,0x6c,0x6c,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x3a,0x22,0x61,0x6c,0x6c,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x2c,0x22,0x63,0x6f,0x6c,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x72,0x6f,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x72,0x6f,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6e,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x6e,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x73,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x73,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6e,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x6e,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6e,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x6e,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x73,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x73,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x73,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x73,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x65,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x65,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6e,0x73,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x6e,0x73,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6e,0x65,0x73,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x6e,0x65,0x73,0x77,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6e,0x77,0x73,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x6e,0x77,0x73,0x65,0x2d,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x7a,0x6f,0x6f,0x6d,0x2d,0x69,0x6e,0x22,0x3a,0x22,0x7a,0x6f,0x6f,0x6d,0x2d,0x69,0x6e,0x22,0x2c,0x22,0x7a,0x6f,0x6f,0x6d,0x2d,0x6f,0x75,0x74,0x22,0x3a,0x22,0x7a,0x6f,0x6f,0x6d,0x2d,0x6f,0x75,0x74,0x22,0x7d,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x22,0x29,0x2c,0x64,0x72,0x6f,0x70,0x53,0x68,0x61,0x64,0x6f,0x77,0x3a,0x7b,0x73,0x6d,0x3a,0x22,0x30,0x20,0x31,0x70,0x78,0x20,0x31,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x35,0x29,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x5b,0x22,0x30,0x20,0x31,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x22,0x2c,0x22,0x30,0x20,0x31,0x70,0x78,0x20,0x31,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x36,0x29,0x22,0x5d,0x2c,0x6d,0x64,0x3a,0x5b,0x22,0x30,0x20,0x34,0x70,0x78,0x20,0x33,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x37,0x29,0x22,0x2c,0x22,0x30,0x20,0x32,0x70,0x78,0x20,0x32,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x36,0x29,0x22,0x5d,0x2c,0x6c,0x67,0x3a,0x5b,0x22,0x30,0x20,0x31,0x30,0x70,0x78,0x20,0x38,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x34,0x29,0x22,0x2c,0x22,0x30,0x20,0x34,0x70,0x78,0x20,0x33,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x29,0x22,0x5d,0x2c,0x78,0x6c,0x3a,0x5b,0x22,0x30,0x20,0x32,0x30,0x70,0x78,0x20,0x31,0x33,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x33,0x29,0x22,0x2c,0x22,0x30,0x20,0x38,0x70,0x78,0x20,0x35,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x30,0x38,0x29,0x22,0x5d,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x30,0x20,0x32,0x35,0x70,0x78,0x20,0x32,0x35,0x70,0x78,0x20,0x72,0x67,0x62,0x28,0x30,0x20,0x30,0x20,0x30,0x20,0x2f,0x20,0x30,0x2e,0x31,0x35,0x29,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x7d,0x2c,0x66,0x69,0x6c,0x6c,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x7d,0x29,0x2c,0x66,0x6c,0x65,0x78,0x3a,0x7b,0x31,0x3a,0x22,0x31,0x20,0x31,0x20,0x30,0x25,0x22,0x2c,0x61,0x75,0x74,0x6f,0x3a,0x22,0x31,0x20,0x31,0x20,0x61,0x75,0x74,0x6f,0x22,0x2c,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x3a,0x22,0x30,0x20,0x31,0x20,0x61,0x75,0x74,0x6f,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x66,0x6c,0x65,0x78,0x42,0x61,0x73,0x69,0x73,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x22,0x31,0x2f,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x33,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x33,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x31,0x2f,0x34,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x32,0x2f,0x34,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x34,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x2f,0x35,0x22,0x3a,0x22,0x32,0x30,0x25,0x22,0x2c,0x22,0x32,0x2f,0x35,0x22,0x3a,0x22,0x34,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x35,0x22,0x3a,0x22,0x36,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x35,0x22,0x3a,0x22,0x38,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x36,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x32,0x2f,0x36,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x33,0x2f,0x36,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x36,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x35,0x2f,0x36,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x31,0x2f,0x31,0x32,0x22,0x3a,0x22,0x38,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x31,0x32,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x33,0x2f,0x31,0x32,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x34,0x2f,0x31,0x32,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x35,0x2f,0x31,0x32,0x22,0x3a,0x22,0x34,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x36,0x2f,0x31,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x37,0x2f,0x31,0x32,0x22,0x3a,0x22,0x35,0x38,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x38,0x2f,0x31,0x32,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x39,0x2f,0x31,0x32,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x30,0x2f,0x31,0x32,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x31,0x31,0x2f,0x31,0x32,0x22,0x3a,0x22,0x39,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x29,0x2c,0x66,0x6c,0x65,0x78,0x47,0x72,0x6f,0x77,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x22,0x7d,0x2c,0x66,0x6c,0x65,0x78,0x53,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x22,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x7b,0x73,0x61,0x6e,0x73,0x3a,0x5b,0x22,0x75,0x69,0x2d,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x22,0x73,0x79,0x73,0x74,0x65,0x6d,0x2d,0x75,0x69,0x22,0x2c,0x22,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x27,0x22,0x41,0x70,0x70,0x6c,0x65,0x20,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x45,0x6d,0x6f,0x6a,0x69,0x22,0x27,0x2c,0x27,0x22,0x53,0x65,0x67,0x6f,0x65,0x20,0x55,0x49,0x20,0x45,0x6d,0x6f,0x6a,0x69,0x22,0x27,0x2c,0x27,0x22,0x53,0x65,0x67,0x6f,0x65,0x20,0x55,0x49,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x22,0x27,0x2c,0x27,0x22,0x4e,0x6f,0x74,0x6f,0x20,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x45,0x6d,0x6f,0x6a,0x69,0x22,0x27,0x5d,0x2c,0x73,0x65,0x72,0x69,0x66,0x3a,0x5b,0x22,0x75,0x69,0x2d,0x73,0x65,0x72,0x69,0x66,0x22,0x2c,0x22,0x47,0x65,0x6f,0x72,0x67,0x69,0x61,0x22,0x2c,0x22,0x43,0x61,0x6d,0x62,0x72,0x69,0x61,0x22,0x2c,0x27,0x22,0x54,0x69,0x6d,0x65,0x73,0x20,0x4e,0x65,0x77,0x20,0x52,0x6f,0x6d,0x61,0x6e,0x22,0x27,0x2c,0x22,0x54,0x69,0x6d,0x65,0x73,0x22,0x2c,0x22,0x73,0x65,0x72,0x69,0x66,0x22,0x5d,0x2c,0x6d,0x6f,0x6e,0x6f,0x3a,0x5b,0x22,0x75,0x69,0x2d,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x22,0x53,0x46,0x4d,0x6f,0x6e,0x6f,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x22,0x2c,0x22,0x4d,0x65,0x6e,0x6c,0x6f,0x22,0x2c,0x22,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x22,0x2c,0x22,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x61,0x73,0x22,0x2c,0x27,0x22,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x22,0x27,0x2c,0x27,0x22,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x22,0x27,0x2c,0x22,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x22,0x5d,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x53,0x69,0x7a,0x65,0x3a,0x7b,0x78,0x73,0x3a,0x5b,0x22,0x30,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x73,0x6d,0x3a,0x5b,0x22,0x30,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x62,0x61,0x73,0x65,0x3a,0x5b,0x22,0x31,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x2e,0x35,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x6c,0x67,0x3a,0x5b,0x22,0x31,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x78,0x6c,0x3a,0x5b,0x22,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x31,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x32,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x22,0x33,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x31,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x32,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x22,0x34,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x32,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x32,0x2e,0x35,0x72,0x65,0x6d,0x22,0x7d,0x5d,0x2c,0x22,0x35,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x33,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x22,0x7d,0x5d,0x2c,0x22,0x36,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x33,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x22,0x7d,0x5d,0x2c,0x22,0x37,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x34,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x22,0x7d,0x5d,0x2c,0x22,0x38,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x36,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x22,0x7d,0x5d,0x2c,0x22,0x39,0x78,0x6c,0x22,0x3a,0x5b,0x22,0x38,0x72,0x65,0x6d,0x22,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x22,0x7d,0x5d,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x3a,0x7b,0x74,0x68,0x69,0x6e,0x3a,0x22,0x31,0x30,0x30,0x22,0x2c,0x65,0x78,0x74,0x72,0x61,0x6c,0x69,0x67,0x68,0x74,0x3a,0x22,0x32,0x30,0x30,0x22,0x2c,0x6c,0x69,0x67,0x68,0x74,0x3a,0x22,0x33,0x30,0x30,0x22,0x2c,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x22,0x34,0x30,0x30,0x22,0x2c,0x6d,0x65,0x64,0x69,0x75,0x6d,0x3a,0x22,0x35,0x30,0x30,0x22,0x2c,0x73,0x65,0x6d,0x69,0x62,0x6f,0x6c,0x64,0x3a,0x22,0x36,0x30,0x30,0x22,0x2c,0x62,0x6f,0x6c,0x64,0x3a,0x22,0x37,0x30,0x30,0x22,0x2c,0x65,0x78,0x74,0x72,0x61,0x62,0x6f,0x6c,0x64,0x3a,0x22,0x38,0x30,0x30,0x22,0x2c,0x62,0x6c,0x61,0x63,0x6b,0x3a,0x22,0x39,0x30,0x30,0x22,0x7d,0x2c,0x67,0x61,0x70,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x73,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x22,0x30,0x25,0x22,0x3a,0x22,0x30,0x25,0x22,0x2c,0x22,0x35,0x25,0x22,0x3a,0x22,0x35,0x25,0x22,0x2c,0x22,0x31,0x30,0x25,0x22,0x3a,0x22,0x31,0x30,0x25,0x22,0x2c,0x22,0x31,0x35,0x25,0x22,0x3a,0x22,0x31,0x35,0x25,0x22,0x2c,0x22,0x32,0x30,0x25,0x22,0x3a,0x22,0x32,0x30,0x25,0x22,0x2c,0x22,0x32,0x35,0x25,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x33,0x30,0x25,0x22,0x3a,0x22,0x33,0x30,0x25,0x22,0x2c,0x22,0x33,0x35,0x25,0x22,0x3a,0x22,0x33,0x35,0x25,0x22,0x2c,0x22,0x34,0x30,0x25,0x22,0x3a,0x22,0x34,0x30,0x25,0x22,0x2c,0x22,0x34,0x35,0x25,0x22,0x3a,0x22,0x34,0x35,0x25,0x22,0x2c,0x22,0x35,0x30,0x25,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x35,0x35,0x25,0x22,0x3a,0x22,0x35,0x35,0x25,0x22,0x2c,0x22,0x36,0x30,0x25,0x22,0x3a,0x22,0x36,0x30,0x25,0x22,0x2c,0x22,0x36,0x35,0x25,0x22,0x3a,0x22,0x36,0x35,0x25,0x22,0x2c,0x22,0x37,0x30,0x25,0x22,0x3a,0x22,0x37,0x30,0x25,0x22,0x2c,0x22,0x37,0x35,0x25,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x38,0x30,0x25,0x22,0x3a,0x22,0x38,0x30,0x25,0x22,0x2c,0x22,0x38,0x35,0x25,0x22,0x3a,0x22,0x38,0x35,0x25,0x22,0x2c,0x22,0x39,0x30,0x25,0x22,0x3a,0x22,0x39,0x30,0x25,0x22,0x2c,0x22,0x39,0x35,0x25,0x22,0x3a,0x22,0x39,0x35,0x25,0x22,0x2c,0x22,0x31,0x30,0x30,0x25,0x22,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x2c,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x72,0x3a,0x22,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x52,0x6f,0x77,0x73,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x72,0x3a,0x22,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x32,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x32,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x32,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x33,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x33,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x33,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x34,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x34,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x34,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x35,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x35,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x35,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x36,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x36,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x36,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x37,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x37,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x37,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x38,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x38,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x38,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x39,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x39,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x39,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x30,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x30,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x30,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x31,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x31,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x31,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x32,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x32,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x32,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x66,0x75,0x6c,0x6c,0x22,0x3a,0x22,0x31,0x20,0x2f,0x20,0x2d,0x31,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x45,0x6e,0x64,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x2c,0x37,0x3a,0x22,0x37,0x22,0x2c,0x38,0x3a,0x22,0x38,0x22,0x2c,0x39,0x3a,0x22,0x39,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x31,0x31,0x3a,0x22,0x31,0x31,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x22,0x2c,0x31,0x33,0x3a,0x22,0x31,0x33,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x53,0x74,0x61,0x72,0x74,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x2c,0x37,0x3a,0x22,0x37,0x22,0x2c,0x38,0x3a,0x22,0x38,0x22,0x2c,0x39,0x3a,0x22,0x39,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x31,0x31,0x3a,0x22,0x31,0x31,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x22,0x2c,0x31,0x33,0x3a,0x22,0x31,0x33,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x32,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x32,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x32,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x33,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x33,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x33,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x34,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x34,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x34,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x35,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x35,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x35,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x36,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x36,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x36,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x37,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x37,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x37,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x38,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x38,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x38,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x39,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x39,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x39,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x30,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x30,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x30,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x31,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x31,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x31,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x31,0x32,0x22,0x3a,0x22,0x73,0x70,0x61,0x6e,0x20,0x31,0x32,0x20,0x2f,0x20,0x73,0x70,0x61,0x6e,0x20,0x31,0x32,0x22,0x2c,0x22,0x73,0x70,0x61,0x6e,0x2d,0x66,0x75,0x6c,0x6c,0x22,0x3a,0x22,0x31,0x20,0x2f,0x20,0x2d,0x31,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x45,0x6e,0x64,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x2c,0x37,0x3a,0x22,0x37,0x22,0x2c,0x38,0x3a,0x22,0x38,0x22,0x2c,0x39,0x3a,0x22,0x39,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x31,0x31,0x3a,0x22,0x31,0x31,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x22,0x2c,0x31,0x33,0x3a,0x22,0x31,0x33,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x53,0x74,0x61,0x72,0x74,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x2c,0x37,0x3a,0x22,0x37,0x22,0x2c,0x38,0x3a,0x22,0x38,0x22,0x2c,0x39,0x3a,0x22,0x39,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x31,0x31,0x3a,0x22,0x31,0x31,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x22,0x2c,0x31,0x33,0x3a,0x22,0x31,0x33,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x73,0x75,0x62,0x67,0x72,0x69,0x64,0x3a,0x22,0x73,0x75,0x62,0x67,0x72,0x69,0x64,0x22,0x2c,0x31,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x32,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x32,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x33,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x33,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x34,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x34,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x35,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x35,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x36,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x36,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x37,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x37,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x38,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x38,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x39,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x39,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x31,0x30,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x30,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x31,0x31,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x31,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x31,0x32,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x32,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x7d,0x2c,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x6f,0x77,0x73,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x73,0x75,0x62,0x67,0x72,0x69,0x64,0x3a,0x22,0x73,0x75,0x62,0x67,0x72,0x69,0x64,0x22,0x2c,0x31,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x32,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x32,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x33,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x33,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x34,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x34,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x35,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x35,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x36,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x36,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x37,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x37,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x38,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x38,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x39,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x39,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x31,0x30,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x30,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x31,0x31,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x31,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x2c,0x31,0x32,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x31,0x32,0x2c,0x20,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x31,0x66,0x72,0x29,0x29,0x22,0x7d,0x2c,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x22,0x31,0x2f,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x33,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x33,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x31,0x2f,0x34,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x32,0x2f,0x34,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x34,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x2f,0x35,0x22,0x3a,0x22,0x32,0x30,0x25,0x22,0x2c,0x22,0x32,0x2f,0x35,0x22,0x3a,0x22,0x34,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x35,0x22,0x3a,0x22,0x36,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x35,0x22,0x3a,0x22,0x38,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x36,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x32,0x2f,0x36,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x33,0x2f,0x36,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x36,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x35,0x2f,0x36,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x22,0x31,0x30,0x30,0x76,0x68,0x22,0x2c,0x73,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x73,0x76,0x68,0x22,0x2c,0x6c,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x6c,0x76,0x68,0x22,0x2c,0x64,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x64,0x76,0x68,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x29,0x2c,0x68,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x64,0x65,0x67,0x22,0x2c,0x31,0x35,0x3a,0x22,0x31,0x35,0x64,0x65,0x67,0x22,0x2c,0x33,0x30,0x3a,0x22,0x33,0x30,0x64,0x65,0x67,0x22,0x2c,0x36,0x30,0x3a,0x22,0x36,0x30,0x64,0x65,0x67,0x22,0x2c,0x39,0x30,0x3a,0x22,0x39,0x30,0x64,0x65,0x67,0x22,0x2c,0x31,0x38,0x30,0x3a,0x22,0x31,0x38,0x30,0x64,0x65,0x67,0x22,0x7d,0x2c,0x69,0x6e,0x73,0x65,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x22,0x31,0x2f,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x33,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x33,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x31,0x2f,0x34,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x32,0x2f,0x34,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x34,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x29,0x2c,0x69,0x6e,0x76,0x65,0x72,0x74,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x2c,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x3a,0x7b,0x73,0x70,0x69,0x6e,0x3a,0x7b,0x74,0x6f,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x33,0x36,0x30,0x64,0x65,0x67,0x29,0x22,0x7d,0x7d,0x2c,0x70,0x69,0x6e,0x67,0x3a,0x7b,0x22,0x37,0x35,0x25,0x2c,0x20,0x31,0x30,0x30,0x25,0x22,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x73,0x63,0x61,0x6c,0x65,0x28,0x32,0x29,0x22,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x22,0x30,0x22,0x7d,0x7d,0x2c,0x70,0x75,0x6c,0x73,0x65,0x3a,0x7b,0x22,0x35,0x30,0x25,0x22,0x3a,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x22,0x2e,0x35,0x22,0x7d,0x7d,0x2c,0x62,0x6f,0x75,0x6e,0x63,0x65,0x3a,0x7b,0x22,0x30,0x25,0x2c,0x20,0x31,0x30,0x30,0x25,0x22,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x59,0x28,0x2d,0x32,0x35,0x25,0x29,0x22,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x38,0x2c,0x30,0x2c,0x31,0x2c,0x31,0x29,0x22,0x7d,0x2c,0x22,0x35,0x30,0x25,0x22,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x30,0x2c,0x30,0x2e,0x32,0x2c,0x31,0x29,0x22,0x7d,0x7d,0x7d,0x2c,0x6c,0x65,0x74,0x74,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x7b,0x74,0x69,0x67,0x68,0x74,0x65,0x72,0x3a,0x22,0x2d,0x30,0x2e,0x30,0x35,0x65,0x6d,0x22,0x2c,0x74,0x69,0x67,0x68,0x74,0x3a,0x22,0x2d,0x30,0x2e,0x30,0x32,0x35,0x65,0x6d,0x22,0x2c,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x22,0x30,0x65,0x6d,0x22,0x2c,0x77,0x69,0x64,0x65,0x3a,0x22,0x30,0x2e,0x30,0x32,0x35,0x65,0x6d,0x22,0x2c,0x77,0x69,0x64,0x65,0x72,0x3a,0x22,0x30,0x2e,0x30,0x35,0x65,0x6d,0x22,0x2c,0x77,0x69,0x64,0x65,0x73,0x74,0x3a,0x22,0x30,0x2e,0x31,0x65,0x6d,0x22,0x7d,0x2c,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x31,0x22,0x2c,0x74,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x2e,0x32,0x35,0x22,0x2c,0x73,0x6e,0x75,0x67,0x3a,0x22,0x31,0x2e,0x33,0x37,0x35,0x22,0x2c,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3a,0x22,0x31,0x2e,0x35,0x22,0x2c,0x72,0x65,0x6c,0x61,0x78,0x65,0x64,0x3a,0x22,0x31,0x2e,0x36,0x32,0x35,0x22,0x2c,0x6c,0x6f,0x6f,0x73,0x65,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x34,0x3a,0x22,0x31,0x72,0x65,0x6d,0x22,0x2c,0x35,0x3a,0x22,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x36,0x3a,0x22,0x31,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x37,0x3a,0x22,0x31,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x38,0x3a,0x22,0x32,0x72,0x65,0x6d,0x22,0x2c,0x39,0x3a,0x22,0x32,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x30,0x3a,0x22,0x32,0x2e,0x35,0x72,0x65,0x6d,0x22,0x7d,0x2c,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x54,0x79,0x70,0x65,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x64,0x69,0x73,0x63,0x3a,0x22,0x64,0x69,0x73,0x63,0x22,0x2c,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x3a,0x22,0x64,0x65,0x63,0x69,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x49,0x6d,0x61,0x67,0x65,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x7d,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x3a,0x7b,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x7d,0x2c,0x6d,0x61,0x78,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x22,0x31,0x30,0x30,0x76,0x68,0x22,0x2c,0x73,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x73,0x76,0x68,0x22,0x2c,0x6c,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x6c,0x76,0x68,0x22,0x2c,0x64,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x64,0x76,0x68,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x29,0x2c,0x6d,0x61,0x78,0x57,0x69,0x64,0x74,0x68,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x2c,0x62,0x72,0x65,0x61,0x6b,0x70,0x6f,0x69,0x6e,0x74,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x78,0x73,0x3a,0x22,0x32,0x30,0x72,0x65,0x6d,0x22,0x2c,0x73,0x6d,0x3a,0x22,0x32,0x34,0x72,0x65,0x6d,0x22,0x2c,0x6d,0x64,0x3a,0x22,0x32,0x38,0x72,0x65,0x6d,0x22,0x2c,0x6c,0x67,0x3a,0x22,0x33,0x32,0x72,0x65,0x6d,0x22,0x2c,0x78,0x6c,0x3a,0x22,0x33,0x36,0x72,0x65,0x6d,0x22,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x34,0x32,0x72,0x65,0x6d,0x22,0x2c,0x22,0x33,0x78,0x6c,0x22,0x3a,0x22,0x34,0x38,0x72,0x65,0x6d,0x22,0x2c,0x22,0x34,0x78,0x6c,0x22,0x3a,0x22,0x35,0x36,0x72,0x65,0x6d,0x22,0x2c,0x22,0x35,0x78,0x6c,0x22,0x3a,0x22,0x36,0x34,0x72,0x65,0x6d,0x22,0x2c,0x22,0x36,0x78,0x6c,0x22,0x3a,0x22,0x37,0x32,0x72,0x65,0x6d,0x22,0x2c,0x22,0x37,0x78,0x6c,0x22,0x3a,0x22,0x38,0x30,0x72,0x65,0x6d,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x70,0x72,0x6f,0x73,0x65,0x3a,0x22,0x36,0x35,0x63,0x68,0x22,0x2c,0x2e,0x2e,0x2e,0x65,0x28,0x72,0x28,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x29,0x29,0x7d,0x29,0x2c,0x6d,0x69,0x6e,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x22,0x31,0x30,0x30,0x76,0x68,0x22,0x2c,0x73,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x73,0x76,0x68,0x22,0x2c,0x6c,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x6c,0x76,0x68,0x22,0x2c,0x64,0x76,0x68,0x3a,0x22,0x31,0x30,0x30,0x64,0x76,0x68,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x29,0x2c,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x29,0x2c,0x6f,0x62,0x6a,0x65,0x63,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x63,0x65,0x6e,0x74,0x65,0x72,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x6c,0x65,0x66,0x74,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x72,0x69,0x67,0x68,0x74,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x74,0x6f,0x70,0x3a,0x22,0x74,0x6f,0x70,0x22,0x7d,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x35,0x3a,0x22,0x30,0x2e,0x30,0x35,0x22,0x2c,0x31,0x30,0x3a,0x22,0x30,0x2e,0x31,0x22,0x2c,0x31,0x35,0x3a,0x22,0x30,0x2e,0x31,0x35,0x22,0x2c,0x32,0x30,0x3a,0x22,0x30,0x2e,0x32,0x22,0x2c,0x32,0x35,0x3a,0x22,0x30,0x2e,0x32,0x35,0x22,0x2c,0x33,0x30,0x3a,0x22,0x30,0x2e,0x33,0x22,0x2c,0x33,0x35,0x3a,0x22,0x30,0x2e,0x33,0x35,0x22,0x2c,0x34,0x30,0x3a,0x22,0x30,0x2e,0x34,0x22,0x2c,0x34,0x35,0x3a,0x22,0x30,0x2e,0x34,0x35,0x22,0x2c,0x35,0x30,0x3a,0x22,0x30,0x2e,0x35,0x22,0x2c,0x35,0x35,0x3a,0x22,0x30,0x2e,0x35,0x35,0x22,0x2c,0x36,0x30,0x3a,0x22,0x30,0x2e,0x36,0x22,0x2c,0x36,0x35,0x3a,0x22,0x30,0x2e,0x36,0x35,0x22,0x2c,0x37,0x30,0x3a,0x22,0x30,0x2e,0x37,0x22,0x2c,0x37,0x35,0x3a,0x22,0x30,0x2e,0x37,0x35,0x22,0x2c,0x38,0x30,0x3a,0x22,0x30,0x2e,0x38,0x22,0x2c,0x38,0x35,0x3a,0x22,0x30,0x2e,0x38,0x35,0x22,0x2c,0x39,0x30,0x3a,0x22,0x30,0x2e,0x39,0x22,0x2c,0x39,0x35,0x3a,0x22,0x30,0x2e,0x39,0x35,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x22,0x7d,0x2c,0x6f,0x72,0x64,0x65,0x72,0x3a,0x7b,0x66,0x69,0x72,0x73,0x74,0x3a,0x22,0x2d,0x39,0x39,0x39,0x39,0x22,0x2c,0x6c,0x61,0x73,0x74,0x3a,0x22,0x39,0x39,0x39,0x39,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x30,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x2c,0x37,0x3a,0x22,0x37,0x22,0x2c,0x38,0x3a,0x22,0x38,0x22,0x2c,0x39,0x3a,0x22,0x39,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x31,0x31,0x3a,0x22,0x31,0x31,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x22,0x7d,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x31,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x31,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x2c,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x2e,0x62,0x6c,0x75,0x65,0x2e,0x35,0x30,0x30,0x22,0x2c,0x22,0x23,0x33,0x62,0x38,0x32,0x66,0x36,0x22,0x29,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x7d,0x29,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x57,0x69,0x64,0x74,0x68,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x31,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x30,0x2e,0x35,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x7d,0x29,0x2c,0x72,0x69,0x6e,0x67,0x57,0x69,0x64,0x74,0x68,0x3a,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x33,0x70,0x78,0x22,0x2c,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x31,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x64,0x65,0x67,0x22,0x2c,0x31,0x3a,0x22,0x31,0x64,0x65,0x67,0x22,0x2c,0x32,0x3a,0x22,0x32,0x64,0x65,0x67,0x22,0x2c,0x33,0x3a,0x22,0x33,0x64,0x65,0x67,0x22,0x2c,0x36,0x3a,0x22,0x36,0x64,0x65,0x67,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x64,0x65,0x67,0x22,0x2c,0x34,0x35,0x3a,0x22,0x34,0x35,0x64,0x65,0x67,0x22,0x2c,0x39,0x30,0x3a,0x22,0x39,0x30,0x64,0x65,0x67,0x22,0x2c,0x31,0x38,0x30,0x3a,0x22,0x31,0x38,0x30,0x64,0x65,0x67,0x22,0x7d,0x2c,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x35,0x30,0x3a,0x22,0x2e,0x35,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x22,0x2c,0x31,0x35,0x30,0x3a,0x22,0x31,0x2e,0x35,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x32,0x22,0x7d,0x2c,0x73,0x63,0x61,0x6c,0x65,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x35,0x30,0x3a,0x22,0x2e,0x35,0x22,0x2c,0x37,0x35,0x3a,0x22,0x2e,0x37,0x35,0x22,0x2c,0x39,0x30,0x3a,0x22,0x2e,0x39,0x22,0x2c,0x39,0x35,0x3a,0x22,0x2e,0x39,0x35,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x22,0x2c,0x31,0x30,0x35,0x3a,0x22,0x31,0x2e,0x30,0x35,0x22,0x2c,0x31,0x31,0x30,0x3a,0x22,0x31,0x2e,0x31,0x22,0x2c,0x31,0x32,0x35,0x3a,0x22,0x31,0x2e,0x32,0x35,0x22,0x2c,0x31,0x35,0x30,0x3a,0x22,0x31,0x2e,0x35,0x22,0x7d,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x3a,0x7b,0x73,0x6d,0x3a,0x22,0x36,0x34,0x30,0x70,0x78,0x22,0x2c,0x6d,0x64,0x3a,0x22,0x37,0x36,0x38,0x70,0x78,0x22,0x2c,0x6c,0x67,0x3a,0x22,0x31,0x30,0x32,0x34,0x70,0x78,0x22,0x2c,0x78,0x6c,0x3a,0x22,0x31,0x32,0x38,0x30,0x70,0x78,0x22,0x2c,0x22,0x32,0x78,0x6c,0x22,0x3a,0x22,0x31,0x35,0x33,0x36,0x70,0x78,0x22,0x7d,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x4d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x7d,0x29,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x50,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x73,0x65,0x70,0x69,0x61,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x2c,0x73,0x6b,0x65,0x77,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x64,0x65,0x67,0x22,0x2c,0x31,0x3a,0x22,0x31,0x64,0x65,0x67,0x22,0x2c,0x32,0x3a,0x22,0x32,0x64,0x65,0x67,0x22,0x2c,0x33,0x3a,0x22,0x33,0x64,0x65,0x67,0x22,0x2c,0x36,0x3a,0x22,0x36,0x64,0x65,0x67,0x22,0x2c,0x31,0x32,0x3a,0x22,0x31,0x32,0x64,0x65,0x67,0x22,0x7d,0x2c,0x73,0x70,0x61,0x63,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x7d,0x29,0x2c,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x7b,0x70,0x78,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x2e,0x35,0x3a,0x22,0x30,0x2e,0x31,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x3a,0x22,0x30,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x2e,0x35,0x3a,0x22,0x30,0x2e,0x33,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x32,0x3a,0x22,0x30,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x32,0x2e,0x35,0x3a,0x22,0x30,0x2e,0x36,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x33,0x3a,0x22,0x30,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x33,0x2e,0x35,0x3a,0x22,0x30,0x2e,0x38,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x34,0x3a,0x22,0x31,0x72,0x65,0x6d,0x22,0x2c,0x35,0x3a,0x22,0x31,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x36,0x3a,0x22,0x31,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x37,0x3a,0x22,0x31,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x38,0x3a,0x22,0x32,0x72,0x65,0x6d,0x22,0x2c,0x39,0x3a,0x22,0x32,0x2e,0x32,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x30,0x3a,0x22,0x32,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x31,0x3a,0x22,0x32,0x2e,0x37,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x32,0x3a,0x22,0x33,0x72,0x65,0x6d,0x22,0x2c,0x31,0x34,0x3a,0x22,0x33,0x2e,0x35,0x72,0x65,0x6d,0x22,0x2c,0x31,0x36,0x3a,0x22,0x34,0x72,0x65,0x6d,0x22,0x2c,0x32,0x30,0x3a,0x22,0x35,0x72,0x65,0x6d,0x22,0x2c,0x32,0x34,0x3a,0x22,0x36,0x72,0x65,0x6d,0x22,0x2c,0x32,0x38,0x3a,0x22,0x37,0x72,0x65,0x6d,0x22,0x2c,0x33,0x32,0x3a,0x22,0x38,0x72,0x65,0x6d,0x22,0x2c,0x33,0x36,0x3a,0x22,0x39,0x72,0x65,0x6d,0x22,0x2c,0x34,0x30,0x3a,0x22,0x31,0x30,0x72,0x65,0x6d,0x22,0x2c,0x34,0x34,0x3a,0x22,0x31,0x31,0x72,0x65,0x6d,0x22,0x2c,0x34,0x38,0x3a,0x22,0x31,0x32,0x72,0x65,0x6d,0x22,0x2c,0x35,0x32,0x3a,0x22,0x31,0x33,0x72,0x65,0x6d,0x22,0x2c,0x35,0x36,0x3a,0x22,0x31,0x34,0x72,0x65,0x6d,0x22,0x2c,0x36,0x30,0x3a,0x22,0x31,0x35,0x72,0x65,0x6d,0x22,0x2c,0x36,0x34,0x3a,0x22,0x31,0x36,0x72,0x65,0x6d,0x22,0x2c,0x37,0x32,0x3a,0x22,0x31,0x38,0x72,0x65,0x6d,0x22,0x2c,0x38,0x30,0x3a,0x22,0x32,0x30,0x72,0x65,0x6d,0x22,0x2c,0x39,0x36,0x3a,0x22,0x32,0x34,0x72,0x65,0x6d,0x22,0x7d,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x7d,0x29,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x22,0x2c,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x7d,0x2c,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x3a,0x7b,0x7d,0x2c,0x64,0x61,0x74,0x61,0x3a,0x7b,0x7d,0x2c,0x74,0x65,0x78,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x2c,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x54,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x22,0x66,0x72,0x6f,0x6d,0x2d,0x66,0x6f,0x6e,0x74,0x22,0x3a,0x22,0x66,0x72,0x6f,0x6d,0x2d,0x66,0x6f,0x6e,0x74,0x22,0x2c,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x31,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x74,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x7d,0x29,0x2c,0x74,0x65,0x78,0x74,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x72,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x2c,0x74,0x65,0x78,0x74,0x55,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x30,0x3a,0x22,0x30,0x70,0x78,0x22,0x2c,0x31,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x32,0x3a,0x22,0x32,0x70,0x78,0x22,0x2c,0x34,0x3a,0x22,0x34,0x70,0x78,0x22,0x2c,0x38,0x3a,0x22,0x38,0x70,0x78,0x22,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x7b,0x63,0x65,0x6e,0x74,0x65,0x72,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x74,0x6f,0x70,0x3a,0x22,0x74,0x6f,0x70,0x22,0x2c,0x22,0x74,0x6f,0x70,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x22,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x72,0x69,0x67,0x68,0x74,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x6c,0x65,0x66,0x74,0x22,0x2c,0x6c,0x65,0x66,0x74,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x74,0x6f,0x70,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x22,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x22,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x3a,0x7b,0x30,0x3a,0x22,0x30,0x73,0x22,0x2c,0x37,0x35,0x3a,0x22,0x37,0x35,0x6d,0x73,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x30,0x30,0x6d,0x73,0x22,0x2c,0x31,0x35,0x30,0x3a,0x22,0x31,0x35,0x30,0x6d,0x73,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x32,0x30,0x30,0x6d,0x73,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x33,0x30,0x30,0x6d,0x73,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x35,0x30,0x30,0x6d,0x73,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x37,0x30,0x30,0x6d,0x73,0x22,0x2c,0x31,0x65,0x33,0x3a,0x22,0x31,0x30,0x30,0x30,0x6d,0x73,0x22,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x31,0x35,0x30,0x6d,0x73,0x22,0x2c,0x30,0x3a,0x22,0x30,0x73,0x22,0x2c,0x37,0x35,0x3a,0x22,0x37,0x35,0x6d,0x73,0x22,0x2c,0x31,0x30,0x30,0x3a,0x22,0x31,0x30,0x30,0x6d,0x73,0x22,0x2c,0x31,0x35,0x30,0x3a,0x22,0x31,0x35,0x30,0x6d,0x73,0x22,0x2c,0x32,0x30,0x30,0x3a,0x22,0x32,0x30,0x30,0x6d,0x73,0x22,0x2c,0x33,0x30,0x30,0x3a,0x22,0x33,0x30,0x30,0x6d,0x73,0x22,0x2c,0x35,0x30,0x30,0x3a,0x22,0x35,0x30,0x30,0x6d,0x73,0x22,0x2c,0x37,0x30,0x30,0x3a,0x22,0x37,0x30,0x30,0x6d,0x73,0x22,0x2c,0x31,0x65,0x33,0x3a,0x22,0x31,0x30,0x30,0x30,0x6d,0x73,0x22,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x7b,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x61,0x6c,0x6c,0x3a,0x22,0x61,0x6c,0x6c,0x22,0x2c,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x66,0x69,0x6c,0x6c,0x2c,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x20,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x66,0x69,0x6c,0x6c,0x2c,0x20,0x73,0x74,0x72,0x6f,0x6b,0x65,0x22,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x22,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x34,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x32,0x2c,0x20,0x31,0x29,0x22,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x22,0x2c,0x69,0x6e,0x3a,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x34,0x2c,0x20,0x30,0x2c,0x20,0x31,0x2c,0x20,0x31,0x29,0x22,0x2c,0x6f,0x75,0x74,0x3a,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x32,0x2c,0x20,0x31,0x29,0x22,0x2c,0x22,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x22,0x3a,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x28,0x30,0x2e,0x34,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2e,0x32,0x2c,0x20,0x31,0x29,0x22,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x22,0x31,0x2f,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x33,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x33,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x31,0x2f,0x34,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x32,0x2f,0x34,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x34,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x29,0x2c,0x73,0x69,0x7a,0x65,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x22,0x31,0x2f,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x33,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x33,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x31,0x2f,0x34,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x32,0x2f,0x34,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x34,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x2f,0x35,0x22,0x3a,0x22,0x32,0x30,0x25,0x22,0x2c,0x22,0x32,0x2f,0x35,0x22,0x3a,0x22,0x34,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x35,0x22,0x3a,0x22,0x36,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x35,0x22,0x3a,0x22,0x38,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x36,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x32,0x2f,0x36,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x33,0x2f,0x36,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x36,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x35,0x2f,0x36,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x31,0x2f,0x31,0x32,0x22,0x3a,0x22,0x38,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x31,0x32,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x33,0x2f,0x31,0x32,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x34,0x2f,0x31,0x32,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x35,0x2f,0x31,0x32,0x22,0x3a,0x22,0x34,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x36,0x2f,0x31,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x37,0x2f,0x31,0x32,0x22,0x3a,0x22,0x35,0x38,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x38,0x2f,0x31,0x32,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x39,0x2f,0x31,0x32,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x30,0x2f,0x31,0x32,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x31,0x31,0x2f,0x31,0x32,0x22,0x3a,0x22,0x39,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x29,0x2c,0x77,0x69,0x64,0x74,0x68,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x2e,0x2e,0x2e,0x72,0x28,0x22,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x2c,0x22,0x31,0x2f,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x33,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x33,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x31,0x2f,0x34,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x32,0x2f,0x34,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x34,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x2f,0x35,0x22,0x3a,0x22,0x32,0x30,0x25,0x22,0x2c,0x22,0x32,0x2f,0x35,0x22,0x3a,0x22,0x34,0x30,0x25,0x22,0x2c,0x22,0x33,0x2f,0x35,0x22,0x3a,0x22,0x36,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x35,0x22,0x3a,0x22,0x38,0x30,0x25,0x22,0x2c,0x22,0x31,0x2f,0x36,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x32,0x2f,0x36,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x33,0x2f,0x36,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x34,0x2f,0x36,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x35,0x2f,0x36,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x31,0x2f,0x31,0x32,0x22,0x3a,0x22,0x38,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x32,0x2f,0x31,0x32,0x22,0x3a,0x22,0x31,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x33,0x2f,0x31,0x32,0x22,0x3a,0x22,0x32,0x35,0x25,0x22,0x2c,0x22,0x34,0x2f,0x31,0x32,0x22,0x3a,0x22,0x33,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x35,0x2f,0x31,0x32,0x22,0x3a,0x22,0x34,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x36,0x2f,0x31,0x32,0x22,0x3a,0x22,0x35,0x30,0x25,0x22,0x2c,0x22,0x37,0x2f,0x31,0x32,0x22,0x3a,0x22,0x35,0x38,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x38,0x2f,0x31,0x32,0x22,0x3a,0x22,0x36,0x36,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x22,0x39,0x2f,0x31,0x32,0x22,0x3a,0x22,0x37,0x35,0x25,0x22,0x2c,0x22,0x31,0x30,0x2f,0x31,0x32,0x22,0x3a,0x22,0x38,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x25,0x22,0x2c,0x22,0x31,0x31,0x2f,0x31,0x32,0x22,0x3a,0x22,0x39,0x31,0x2e,0x36,0x36,0x36,0x36,0x36,0x37,0x25,0x22,0x2c,0x66,0x75,0x6c,0x6c,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x22,0x31,0x30,0x30,0x76,0x77,0x22,0x2c,0x73,0x76,0x77,0x3a,0x22,0x31,0x30,0x30,0x73,0x76,0x77,0x22,0x2c,0x6c,0x76,0x77,0x3a,0x22,0x31,0x30,0x30,0x6c,0x76,0x77,0x22,0x2c,0x64,0x76,0x77,0x3a,0x22,0x31,0x30,0x30,0x64,0x76,0x77,0x22,0x2c,0x6d,0x69,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x6d,0x61,0x78,0x3a,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x66,0x69,0x74,0x3a,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x29,0x2c,0x77,0x69,0x6c,0x6c,0x43,0x68,0x61,0x6e,0x67,0x65,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x3a,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x22,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x7d,0x2c,0x7a,0x49,0x6e,0x64,0x65,0x78,0x3a,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x30,0x3a,0x22,0x30,0x22,0x2c,0x31,0x30,0x3a,0x22,0x31,0x30,0x22,0x2c,0x32,0x30,0x3a,0x22,0x32,0x30,0x22,0x2c,0x33,0x30,0x3a,0x22,0x33,0x30,0x22,0x2c,0x34,0x30,0x3a,0x22,0x34,0x30,0x22,0x2c,0x35,0x30,0x3a,0x22,0x35,0x30,0x22,0x7d,0x7d,0x2c,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x5b,0x5d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6e,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x28,0x72,0x3f,0x2e,0x70,0x72,0x65,0x73,0x65,0x74,0x73,0x3f,0x3f,0x5b,0x74,0x63,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5d,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x74,0x6e,0x28,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3f,0x6e,0x28,0x29,0x3a,0x6e,0x29,0x29,0x2c,0x74,0x3d,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x7b,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x6e,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x22,0x23,0x33,0x62,0x38,0x32,0x66,0x36,0x37,0x66,0x22,0x2c,0x2e,0x2e,0x2e,0x6e,0x28,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x29,0x7d,0x29,0x7d,0x7d,0x2c,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x42,0x79,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x7b,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x31,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x31,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x31,0x2c,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x31,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x31,0x2c,0x74,0x65,0x78,0x74,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x31,0x7d,0x7d,0x7d,0x2c,0x69,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6e,0x3d,0x3e,0x77,0x65,0x28,0x72,0x2c,0x6e,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x74,0x5b,0x6e,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x72,0x2c,0x2e,0x2e,0x2e,0x69,0x2c,0x2e,0x2e,0x2e,0x65,0x5d,0x7d,0x76,0x61,0x72,0x20,0x74,0x63,0x2c,0x72,0x63,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x74,0x63,0x3d,0x70,0x65,0x28,0x65,0x6e,0x28,0x29,0x29,0x3b,0x63,0x74,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x63,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x69,0x63,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x7a,0x72,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x72,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x2c,0x2e,0x2e,0x2e,0x65,0x5d,0x3d,0x74,0x6e,0x28,0x72,0x5b,0x30,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x28,0x5b,0x2e,0x2e,0x2e,0x72,0x2c,0x2e,0x2e,0x2e,0x65,0x5d,0x29,0x7d,0x76,0x61,0x72,0x20,0x69,0x61,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x5a,0x66,0x28,0x29,0x3b,0x72,0x63,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x55,0x72,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x55,0x72,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x6d,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6d,0x65,0x2c,0x65,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6d,0x65,0x3d,0x7b,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x3a,0x72,0x3d,0x3e,0x72,0x2c,0x65,0x78,0x74,0x6e,0x61,0x6d,0x65,0x3a,0x72,0x3d,0x3e,0x22,0x2e,0x22,0x2b,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2e,0x22,0x29,0x2e,0x70,0x6f,0x70,0x28,0x29,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x72,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x78,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x63,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7c,0x7c,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x61,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x6e,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x21,0x67,0x78,0x28,0x72,0x29,0x3f,0x6e,0x75,0x6c,0x6c,0x3a,0x72,0x6e,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x6e,0x63,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3f,0x6d,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3a,0x72,0x6e,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x72,0x6e,0x28,0x72,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3f,0x6e,0x75,0x6c,0x6c,0x3a,0x6e,0x63,0x28,0x72,0x29,0x3f,0x6d,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x72,0x29,0x3a,0x79,0x78,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x79,0x78,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x72,0x20,0x6f,0x66,0x20,0x6d,0x78,0x29,0x74,0x72,0x79,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6d,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x65,0x2e,0x61,0x63,0x63,0x65,0x73,0x73,0x53,0x79,0x6e,0x63,0x28,0x65,0x29,0x2c,0x65,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x7d,0x76,0x61,0x72,0x20,0x6d,0x78,0x2c,0x73,0x63,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x65,0x74,0x28,0x29,0x3b,0x6d,0x78,0x3d,0x5b,0x22,0x2e,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6d,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x73,0x22,0x2c,0x22,0x2e,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x74,0x73,0x22,0x2c,0x22,0x2e,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6d,0x74,0x73,0x22,0x5d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x63,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x61,0x63,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x73,0x61,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x61,0x2c,0x61,0x61,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x73,0x61,0x3d,0x7b,0x70,0x61,0x72,0x73,0x65,0x3a,0x72,0x3d,0x3e,0x28,0x7b,0x68,0x72,0x65,0x66,0x3a,0x72,0x7d,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x61,0x3d,0x78,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x6e,0x3d,0x78,0x28,0x28,0x62,0x33,0x2c,0x75,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6f,0x63,0x3d,0x28,0x57,0x69,0x28,0x29,0x2c,0x6b,0x66,0x29,0x2c,0x6c,0x63,0x3d,0x6f,0x61,0x28,0x29,0x2c,0x5a,0x74,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x45,0x72,0x72,0x6f,0x72,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x43,0x73,0x73,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x65,0x2c,0x61,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x61,0x29,0x2c,0x6e,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x6e,0x29,0x2c,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x73,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3d,0x69,0x29,0x3a,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x3d,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3d,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3d,0x69,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x3d,0x69,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x29,0x2c,0x45,0x72,0x72,0x6f,0x72,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x53,0x74,0x61,0x63,0x6b,0x54,0x72,0x61,0x63,0x65,0x26,0x26,0x45,0x72,0x72,0x6f,0x72,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x53,0x74,0x61,0x63,0x6b,0x54,0x72,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x5a,0x74,0x29,0x7d,0x73,0x65,0x74,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3f,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2b,0x22,0x3a,0x20,0x22,0x3a,0x22,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x3f,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x3a,0x22,0x3c,0x63,0x73,0x73,0x20,0x69,0x6e,0x70,0x75,0x74,0x3e,0x22,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2b,0x3d,0x22,0x3a,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x2b,0x22,0x3a,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2b,0x3d,0x22,0x3a,0x20,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x7d,0x73,0x68,0x6f,0x77,0x53,0x6f,0x75,0x72,0x63,0x65,0x43,0x6f,0x64,0x65,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x65,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x65,0x3d,0x6f,0x63,0x2e,0x69,0x73,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x29,0x2c,0x6c,0x63,0x26,0x26,0x65,0x26,0x26,0x28,0x74,0x3d,0x6c,0x63,0x28,0x74,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x72,0x3f,0x5c,0x6e,0x2f,0x29,0x2c,0x6e,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x2d,0x33,0x2c,0x30,0x29,0x2c,0x61,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x2b,0x32,0x2c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x73,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x61,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6f,0x2c,0x6c,0x3b,0x69,0x66,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x62,0x6f,0x6c,0x64,0x3a,0x63,0x2c,0x72,0x65,0x64,0x3a,0x66,0x2c,0x67,0x72,0x61,0x79,0x3a,0x64,0x7d,0x3d,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x73,0x28,0x21,0x30,0x29,0x3b,0x6f,0x3d,0x70,0x3d,0x3e,0x63,0x28,0x66,0x28,0x70,0x29,0x29,0x2c,0x6c,0x3d,0x70,0x3d,0x3e,0x64,0x28,0x70,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x6f,0x3d,0x6c,0x3d,0x63,0x3d,0x3e,0x63,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6e,0x2c,0x61,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x63,0x2c,0x66,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x6e,0x2b,0x31,0x2b,0x66,0x2c,0x70,0x3d,0x22,0x20,0x22,0x2b,0x28,0x22,0x20,0x22,0x2b,0x64,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x2d,0x73,0x29,0x2b,0x22,0x20,0x7c,0x20,0x22,0x3b,0x69,0x66,0x28,0x64,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x6c,0x28,0x70,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x64,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x29,0x2b,0x63,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x31,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x74,0x5d,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x28,0x22,0x3e,0x22,0x29,0x2b,0x6c,0x28,0x70,0x29,0x2b,0x63,0x2b,0x60,0x0a,0x20,0x60,0x2b,0x68,0x2b,0x6f,0x28,0x22,0x5e,0x22,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x20,0x22,0x2b,0x6c,0x28,0x70,0x29,0x2b,0x63,0x7d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x0a,0x60,0x29,0x7d,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x6f,0x77,0x53,0x6f,0x75,0x72,0x63,0x65,0x43,0x6f,0x64,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x28,0x65,0x3d,0x60,0x0a,0x0a,0x60,0x2b,0x65,0x2b,0x60,0x0a,0x60,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2b,0x22,0x3a,0x20,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x2b,0x65,0x7d,0x7d,0x3b,0x75,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5a,0x74,0x3b,0x5a,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x5a,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x6e,0x3d,0x78,0x28,0x28,0x77,0x33,0x2c,0x6c,0x61,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6c,0x61,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x69,0x73,0x43,0x6c,0x65,0x61,0x6e,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x69,0x73,0x43,0x6c,0x65,0x61,0x6e,0x22,0x29,0x3b,0x6c,0x61,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x6d,0x79,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x6d,0x79,0x22,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x75,0x61,0x3d,0x78,0x28,0x28,0x76,0x33,0x2c,0x63,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x66,0x63,0x3d,0x7b,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x22,0x3a,0x20,0x22,0x2c,0x69,0x6e,0x64,0x65,0x6e,0x74,0x3a,0x22,0x20,0x20,0x20,0x20,0x22,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x63,0x6c,0x3a,0x60,0x0a,0x60,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x52,0x75,0x6c,0x65,0x3a,0x60,0x0a,0x60,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x4f,0x70,0x65,0x6e,0x3a,0x22,0x20,0x22,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x6c,0x6f,0x73,0x65,0x3a,0x60,0x0a,0x60,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x60,0x0a,0x60,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x60,0x0a,0x60,0x2c,0x65,0x6d,0x70,0x74,0x79,0x42,0x6f,0x64,0x79,0x3a,0x22,0x22,0x2c,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4c,0x65,0x66,0x74,0x3a,0x22,0x20,0x22,0x2c,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x52,0x69,0x67,0x68,0x74,0x3a,0x22,0x20,0x22,0x2c,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x21,0x31,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x78,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x5b,0x30,0x5d,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x7d,0x76,0x61,0x72,0x20,0x61,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x3d,0x65,0x7d,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x5b,0x65,0x2e,0x74,0x79,0x70,0x65,0x5d,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x41,0x53,0x54,0x20,0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x22,0x2b,0x65,0x2e,0x74,0x79,0x70,0x65,0x2b,0x22,0x2e,0x20,0x4d,0x61,0x79,0x62,0x65,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x72,0x2e,0x22,0x29,0x3b,0x74,0x68,0x69,0x73,0x5b,0x65,0x2e,0x74,0x79,0x70,0x65,0x5d,0x28,0x65,0x2c,0x74,0x29,0x7d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x62,0x6f,0x64,0x79,0x28,0x65,0x29,0x7d,0x72,0x6f,0x6f,0x74,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x62,0x6f,0x64,0x79,0x28,0x65,0x29,0x2c,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x29,0x7d,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4c,0x65,0x66,0x74,0x22,0x29,0x2c,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x52,0x69,0x67,0x68,0x74,0x22,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x22,0x2f,0x2a,0x22,0x2b,0x74,0x2b,0x65,0x2e,0x74,0x65,0x78,0x74,0x2b,0x69,0x2b,0x22,0x2a,0x2f,0x22,0x2c,0x65,0x29,0x7d,0x64,0x65,0x63,0x6c,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x2c,0x22,0x63,0x6f,0x6c,0x6f,0x6e,0x22,0x29,0x2c,0x6e,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2b,0x69,0x2b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x3b,0x65,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x26,0x26,0x28,0x6e,0x2b,0x3d,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x7c,0x7c,0x22,0x20,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x29,0x2c,0x74,0x26,0x26,0x28,0x6e,0x2b,0x3d,0x22,0x3b,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x6e,0x2c,0x65,0x29,0x7d,0x72,0x75,0x6c,0x65,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x29,0x29,0x2c,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x77,0x6e,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x77,0x6e,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2c,0x65,0x2c,0x22,0x65,0x6e,0x64,0x22,0x29,0x7d,0x61,0x74,0x72,0x75,0x6c,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x22,0x40,0x22,0x2b,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x6e,0x3d,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3f,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x22,0x70,0x61,0x72,0x61,0x6d,0x73,0x22,0x29,0x3a,0x22,0x22,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x69,0x2b,0x3d,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x3a,0x6e,0x26,0x26,0x28,0x69,0x2b,0x3d,0x22,0x20,0x22,0x29,0x2c,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x74,0x68,0x69,0x73,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x28,0x65,0x2c,0x69,0x2b,0x6e,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x28,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x28,0x74,0x3f,0x22,0x3b,0x22,0x3a,0x22,0x22,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x69,0x2b,0x6e,0x2b,0x61,0x2c,0x65,0x29,0x7d,0x7d,0x62,0x6f,0x64,0x79,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x3e,0x30,0x26,0x26,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x74,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3b,0x29,0x74,0x2d,0x3d,0x31,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x30,0x3b,0x6e,0x3c,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6e,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x6e,0x5d,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x61,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x3b,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x61,0x2c,0x74,0x21,0x3d,0x3d,0x6e,0x7c,0x7c,0x69,0x29,0x7d,0x7d,0x62,0x6c,0x6f,0x63,0x6b,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x4f,0x70,0x65,0x6e,0x22,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x74,0x2b,0x69,0x2b,0x22,0x7b,0x22,0x2c,0x65,0x2c,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x62,0x6f,0x64,0x79,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x29,0x3a,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x65,0x6d,0x70,0x74,0x79,0x42,0x6f,0x64,0x79,0x22,0x29,0x2c,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x69,0x6c,0x64,0x65,0x72,0x28,0x22,0x7d,0x22,0x2c,0x65,0x2c,0x22,0x65,0x6e,0x64,0x22,0x29,0x7d,0x72,0x61,0x77,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x69,0x66,0x28,0x69,0x7c,0x7c,0x28,0x69,0x3d,0x74,0x29,0x2c,0x74,0x26,0x26,0x28,0x6e,0x3d,0x65,0x2e,0x72,0x61,0x77,0x73,0x5b,0x74,0x5d,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x26,0x26,0x28,0x21,0x61,0x7c,0x7c,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x61,0x2e,0x66,0x69,0x72,0x73,0x74,0x3d,0x3d,0x3d,0x65,0x7c,0x7c,0x61,0x26,0x26,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x3b,0x69,0x66,0x28,0x21,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x63,0x5b,0x69,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x72,0x61,0x77,0x43,0x61,0x63,0x68,0x65,0x7c,0x7c,0x28,0x73,0x2e,0x72,0x61,0x77,0x43,0x61,0x63,0x68,0x65,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x2e,0x72,0x61,0x77,0x43,0x61,0x63,0x68,0x65,0x5b,0x69,0x5d,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x72,0x61,0x77,0x43,0x61,0x63,0x68,0x65,0x5b,0x69,0x5d,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x41,0x66,0x74,0x65,0x72,0x28,0x65,0x2c,0x69,0x29,0x3b,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x22,0x72,0x61,0x77,0x22,0x2b,0x62,0x78,0x28,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x5b,0x6f,0x5d,0x3f,0x6e,0x3d,0x74,0x68,0x69,0x73,0x5b,0x6f,0x5d,0x28,0x73,0x2c,0x65,0x29,0x3a,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x6c,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x6e,0x3d,0x6c,0x2e,0x72,0x61,0x77,0x73,0x5b,0x74,0x5d,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x28,0x6e,0x3d,0x66,0x63,0x5b,0x69,0x5d,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x43,0x61,0x63,0x68,0x65,0x5b,0x69,0x5d,0x3d,0x6e,0x2c,0x6e,0x7d,0x72,0x61,0x77,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x69,0x2e,0x6c,0x61,0x73,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x28,0x74,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x29,0x2c,0x74,0x7d,0x72,0x61,0x77,0x45,0x6d,0x70,0x74,0x79,0x42,0x6f,0x64,0x79,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x74,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x29,0x2c,0x74,0x7d,0x72,0x61,0x77,0x49,0x6e,0x64,0x65,0x6e,0x74,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x69,0x66,0x28,0x6e,0x26,0x26,0x6e,0x21,0x3d,0x3d,0x65,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x3d,0x3d,0x65,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x74,0x3d,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x53,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2c,0x21,0x31,0x7d,0x7d,0x29,0x2c,0x74,0x7d,0x72,0x61,0x77,0x42,0x65,0x66,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x28,0x6e,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x6e,0x5d,0x2b,0x24,0x2f,0x2c,0x22,0x22,0x29,0x29,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x74,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x63,0x6c,0x22,0x29,0x3a,0x69,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x53,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x2c,0x69,0x7d,0x72,0x61,0x77,0x42,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x6e,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x6e,0x5d,0x2b,0x24,0x2f,0x2c,0x22,0x22,0x29,0x29,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x74,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x52,0x75,0x6c,0x65,0x22,0x29,0x3a,0x69,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x53,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x2c,0x69,0x7d,0x72,0x61,0x77,0x42,0x65,0x66,0x6f,0x72,0x65,0x52,0x75,0x6c,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x28,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x21,0x3d,0x3d,0x65,0x7c,0x7c,0x65,0x2e,0x66,0x69,0x72,0x73,0x74,0x21,0x3d,0x3d,0x69,0x29,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x6e,0x5d,0x2b,0x24,0x2f,0x2c,0x22,0x22,0x29,0x29,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x74,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x53,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x2c,0x74,0x7d,0x72,0x61,0x77,0x42,0x65,0x66,0x6f,0x72,0x65,0x43,0x6c,0x6f,0x73,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x2c,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x6e,0x5d,0x2b,0x24,0x2f,0x2c,0x22,0x22,0x29,0x29,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x74,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x53,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x2c,0x74,0x7d,0x72,0x61,0x77,0x42,0x65,0x66,0x6f,0x72,0x65,0x4f,0x70,0x65,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x28,0x74,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x29,0x2c,0x74,0x7d,0x72,0x61,0x77,0x43,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x73,0x3a,0x5d,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x74,0x7d,0x62,0x65,0x66,0x6f,0x72,0x65,0x41,0x66,0x74,0x65,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x63,0x6c,0x22,0x29,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x52,0x75,0x6c,0x65,0x22,0x29,0x3a,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x6c,0x6f,0x73,0x65,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x61,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6e,0x26,0x26,0x6e,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3b,0x29,0x61,0x2b,0x3d,0x31,0x2c,0x6e,0x3d,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x69,0x66,0x28,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x65,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x22,0x69,0x6e,0x64,0x65,0x6e,0x74,0x22,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x30,0x3b,0x6f,0x3c,0x61,0x3b,0x6f,0x2b,0x2b,0x29,0x69,0x2b,0x3d,0x73,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x2c,0x6e,0x3d,0x65,0x2e,0x72,0x61,0x77,0x73,0x5b,0x74,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x69,0x3f,0x6e,0x2e,0x72,0x61,0x77,0x3a,0x69,0x7d,0x7d,0x3b,0x63,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x61,0x6e,0x3b,0x61,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x61,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x72,0x3d,0x78,0x28,0x28,0x78,0x33,0x2c,0x70,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x77,0x78,0x3d,0x75,0x61,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6e,0x65,0x77,0x20,0x77,0x78,0x28,0x65,0x29,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x29,0x7d,0x70,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x61,0x3b,0x66,0x61,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x66,0x61,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x72,0x3d,0x78,0x28,0x28,0x6b,0x33,0x2c,0x64,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x7b,0x69,0x73,0x43,0x6c,0x65,0x61,0x6e,0x3a,0x6f,0x6e,0x2c,0x6d,0x79,0x3a,0x76,0x78,0x7d,0x3d,0x73,0x6e,0x28,0x29,0x2c,0x78,0x78,0x3d,0x6e,0x6e,0x28,0x29,0x2c,0x6b,0x78,0x3d,0x75,0x61,0x28,0x29,0x2c,0x53,0x78,0x3d,0x56,0x72,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x72,0x29,0x7b,0x69,0x66,0x28,0x21,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x2c,0x69,0x29,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x78,0x79,0x43,0x61,0x63,0x68,0x65,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x72,0x5b,0x69,0x5d,0x2c,0x61,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3b,0x69,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x26,0x26,0x61,0x3d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x65,0x26,0x26,0x28,0x74,0x5b,0x69,0x5d,0x3d,0x65,0x29,0x3a,0x69,0x3d,0x3d,0x3d,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x3f,0x74,0x5b,0x69,0x5d,0x3d,0x6e,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x3f,0x74,0x5b,0x69,0x5d,0x3d,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x63,0x61,0x28,0x73,0x2c,0x74,0x29,0x29,0x3a,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x6e,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x6e,0x3d,0x63,0x61,0x28,0x6e,0x29,0x29,0x2c,0x74,0x5b,0x69,0x5d,0x3d,0x6e,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x76,0x61,0x72,0x20,0x6c,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x3d,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x5b,0x6f,0x6e,0x5d,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x5b,0x76,0x78,0x5d,0x3d,0x21,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x69,0x6e,0x20,0x65,0x29,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x64,0x65,0x73,0x22,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x5b,0x74,0x5d,0x29,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x74,0x68,0x69,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x69,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x69,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x5b,0x74,0x5d,0x3d,0x65,0x5b,0x74,0x5d,0x7d,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x69,0x2c,0x65,0x6e,0x64,0x3a,0x6e,0x7d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x42,0x79,0x28,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x69,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x69,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2c,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6e,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2c,0x74,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x78,0x78,0x28,0x65,0x29,0x7d,0x77,0x61,0x72,0x6e,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x74,0x68,0x69,0x73,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x69,0x6e,0x20,0x69,0x29,0x6e,0x5b,0x61,0x5d,0x3d,0x69,0x5b,0x61,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x74,0x2c,0x6e,0x29,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x74,0x68,0x69,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x74,0x68,0x69,0x73,0x7d,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x3d,0x53,0x78,0x29,0x7b,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x26,0x26,0x28,0x65,0x3d,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x22,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x69,0x3d,0x3e,0x7b,0x74,0x2b,0x3d,0x69,0x7d,0x29,0x2c,0x74,0x7d,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x69,0x6e,0x20,0x65,0x29,0x74,0x68,0x69,0x73,0x5b,0x74,0x5d,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x63,0x61,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x65,0x29,0x74,0x5b,0x69,0x5d,0x3d,0x65,0x5b,0x69,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x2c,0x74,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x41,0x66,0x74,0x65,0x72,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x2c,0x74,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2c,0x69,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x65,0x29,0x6e,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x3f,0x69,0x3d,0x21,0x30,0x3a,0x69,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x28,0x74,0x2c,0x6e,0x29,0x2c,0x74,0x3d,0x6e,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x74,0x2c,0x6e,0x29,0x3b,0x69,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x6e,0x65,0x78,0x74,0x28,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x65,0x2b,0x31,0x5d,0x7d,0x70,0x72,0x65,0x76,0x28,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x65,0x2d,0x31,0x5d,0x7d,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x61,0x66,0x74,0x65,0x72,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2c,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x72,0x6f,0x6f,0x74,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x3b,0x29,0x65,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x72,0x61,0x77,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x6b,0x78,0x28,0x29,0x2e,0x72,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x2c,0x65,0x2c,0x74,0x29,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x52,0x61,0x77,0x73,0x28,0x65,0x29,0x7b,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x2c,0x65,0x7c,0x7c,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x7d,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7b,0x7d,0x2c,0x6e,0x3d,0x74,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x74,0x3d,0x74,0x7c,0x7c,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x29,0x7b,0x69,0x66,0x28,0x21,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x73,0x29,0x7c,0x7c,0x73,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x7c,0x7c,0x73,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x78,0x79,0x43,0x61,0x63,0x68,0x65,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x68,0x69,0x73,0x5b,0x73,0x5d,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x29,0x29,0x69,0x5b,0x73,0x5d,0x3d,0x6f,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x6c,0x2e,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x3f,0x6c,0x2e,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x74,0x29,0x3a,0x6c,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6f,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x6f,0x2e,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x29,0x69,0x5b,0x73,0x5d,0x3d,0x6f,0x2e,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x74,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x73,0x3d,0x3d,0x3d,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x2e,0x67,0x65,0x74,0x28,0x6f,0x2e,0x69,0x6e,0x70,0x75,0x74,0x29,0x3b,0x6c,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x6c,0x3d,0x61,0x2c,0x74,0x2e,0x73,0x65,0x74,0x28,0x6f,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2c,0x61,0x29,0x2c,0x61,0x2b,0x2b,0x29,0x2c,0x69,0x5b,0x73,0x5d,0x3d,0x7b,0x69,0x6e,0x70,0x75,0x74,0x49,0x64,0x3a,0x6c,0x2c,0x73,0x74,0x61,0x72,0x74,0x3a,0x6f,0x2e,0x73,0x74,0x61,0x72,0x74,0x2c,0x65,0x6e,0x64,0x3a,0x6f,0x2e,0x65,0x6e,0x64,0x7d,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x5b,0x73,0x5d,0x3d,0x6f,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x28,0x69,0x2e,0x69,0x6e,0x70,0x75,0x74,0x73,0x3d,0x5b,0x2e,0x2e,0x2e,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x29,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x73,0x2e,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x28,0x29,0x29,0x29,0x2c,0x69,0x7d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x3d,0x30,0x3b,0x61,0x3c,0x65,0x3b,0x61,0x2b,0x2b,0x29,0x74,0x5b,0x61,0x5d,0x3d,0x3d,0x3d,0x60,0x0a,0x60,0x3f,0x28,0x69,0x3d,0x31,0x2c,0x6e,0x2b,0x3d,0x31,0x29,0x3a,0x69,0x2b,0x3d,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x69,0x7d,0x7d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x42,0x79,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x3b,0x69,0x66,0x28,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x77,0x6f,0x72,0x64,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x2e,0x77,0x6f,0x72,0x64,0x29,0x3b,0x69,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x69,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x72,0x61,0x6e,0x67,0x65,0x42,0x79,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2c,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3f,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2b,0x31,0x7d,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2b,0x31,0x7d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x77,0x6f,0x72,0x64,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x2e,0x77,0x6f,0x72,0x64,0x29,0x3b,0x6e,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x6e,0x29,0x2c,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x6e,0x2b,0x65,0x2e,0x77,0x6f,0x72,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x3f,0x74,0x3d,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x3a,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x26,0x26,0x28,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x29,0x2c,0x65,0x2e,0x65,0x6e,0x64,0x3f,0x69,0x3d,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x3a,0x65,0x2e,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x65,0x2e,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x3a,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x73,0x69,0x64,0x65,0x28,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x31,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x69,0x2e,0x6c,0x69,0x6e,0x65,0x3c,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x7c,0x7c,0x69,0x2e,0x6c,0x69,0x6e,0x65,0x3d,0x3d,0x3d,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x26,0x26,0x69,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3c,0x3d,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x29,0x26,0x26,0x28,0x69,0x3d,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2b,0x31,0x7d,0x29,0x2c,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x74,0x2c,0x65,0x6e,0x64,0x3a,0x69,0x7d,0x7d,0x67,0x65,0x74,0x50,0x72,0x6f,0x78,0x79,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x5b,0x74,0x5d,0x3d,0x3d,0x3d,0x69,0x7c,0x7c,0x28,0x65,0x5b,0x74,0x5d,0x3d,0x69,0x2c,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x70,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x61,0x6d,0x73,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x26,0x26,0x65,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x29,0x2c,0x21,0x30,0x7d,0x2c,0x67,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x22,0x3f,0x65,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3f,0x28,0x29,0x3d,0x3e,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x29,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x3a,0x65,0x5b,0x74,0x5d,0x7d,0x7d,0x7d,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x43,0x61,0x63,0x68,0x65,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x78,0x79,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x29,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x43,0x61,0x63,0x68,0x65,0x7d,0x61,0x64,0x64,0x54,0x6f,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x4e,0x6f,0x64,0x65,0x3d,0x74,0x68,0x69,0x73,0x2c,0x65,0x2e,0x73,0x74,0x61,0x63,0x6b,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x26,0x26,0x2f,0x5c,0x6e,0x5c,0x73,0x7b,0x34,0x7d,0x61,0x74,0x20,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x2e,0x73,0x74,0x61,0x63,0x6b,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x65,0x2e,0x73,0x74,0x61,0x63,0x6b,0x3d,0x65,0x2e,0x73,0x74,0x61,0x63,0x6b,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x6e,0x5c,0x73,0x7b,0x34,0x7d,0x61,0x74,0x20,0x2f,0x2c,0x60,0x24,0x26,0x24,0x7b,0x74,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x7d,0x3a,0x24,0x7b,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x7d,0x3a,0x24,0x7b,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x24,0x26,0x60,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x5b,0x6f,0x6e,0x5d,0x29,0x7b,0x74,0x68,0x69,0x73,0x5b,0x6f,0x6e,0x5d,0x3d,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x29,0x65,0x5b,0x6f,0x6e,0x5d,0x3d,0x21,0x31,0x7d,0x7d,0x67,0x65,0x74,0x20,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x7d,0x3b,0x64,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6c,0x6e,0x3b,0x6c,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x6c,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x57,0x72,0x3d,0x78,0x28,0x28,0x53,0x33,0x2c,0x68,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x41,0x78,0x3d,0x48,0x72,0x28,0x29,0x2c,0x75,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x41,0x78,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x65,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x65,0x3d,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x29,0x3b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x7d,0x67,0x65,0x74,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x2d,0x22,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x24,0x22,0x7d,0x7d,0x3b,0x68,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x75,0x6e,0x3b,0x75,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x75,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x61,0x3d,0x78,0x28,0x28,0x41,0x33,0x2c,0x6d,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6d,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x3a,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x22,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x28,0x65,0x2c,0x69,0x3d,0x3e,0x7b,0x74,0x2b,0x3d,0x69,0x7d,0x29,0x2c,0x5b,0x74,0x5d,0x7d,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x47,0x72,0x3d,0x78,0x28,0x28,0x43,0x33,0x2c,0x67,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x43,0x78,0x3d,0x48,0x72,0x28,0x29,0x2c,0x66,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x43,0x78,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x7d,0x7d,0x3b,0x67,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x6e,0x3b,0x66,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x66,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x45,0x74,0x3d,0x78,0x28,0x28,0x5f,0x33,0x2c,0x43,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x7b,0x69,0x73,0x43,0x6c,0x65,0x61,0x6e,0x3a,0x79,0x63,0x2c,0x6d,0x79,0x3a,0x62,0x63,0x7d,0x3d,0x73,0x6e,0x28,0x29,0x2c,0x77,0x63,0x3d,0x57,0x72,0x28,0x29,0x2c,0x76,0x63,0x3d,0x47,0x72,0x28,0x29,0x2c,0x5f,0x78,0x3d,0x48,0x72,0x28,0x29,0x2c,0x78,0x63,0x2c,0x64,0x61,0x2c,0x68,0x61,0x2c,0x6b,0x63,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x63,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x53,0x63,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x29,0x2c,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x65,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x63,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x72,0x5b,0x79,0x63,0x5d,0x3d,0x21,0x31,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x72,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x41,0x63,0x28,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x46,0x65,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x5f,0x78,0x7b,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x65,0x61,0x63,0x68,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x29,0x2c,0x69,0x2c,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x74,0x5d,0x3c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x74,0x5d,0x2c,0x6e,0x3d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x2c,0x69,0x29,0x2c,0x6e,0x21,0x3d,0x3d,0x21,0x31,0x29,0x3b,0x29,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x74,0x5d,0x2b,0x3d,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x74,0x5d,0x2c,0x6e,0x7d,0x77,0x61,0x6c,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x61,0x63,0x68,0x28,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x74,0x72,0x79,0x7b,0x6e,0x3d,0x65,0x28,0x74,0x2c,0x69,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x61,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x2e,0x61,0x64,0x64,0x54,0x6f,0x45,0x72,0x72,0x6f,0x72,0x28,0x61,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x26,0x26,0x28,0x6e,0x3d,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x65,0x29,0x29,0x2c,0x6e,0x7d,0x29,0x7d,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3f,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x3f,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x69,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x3a,0x28,0x74,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x29,0x7d,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3f,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x3f,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x3a,0x28,0x74,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x29,0x7d,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3f,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x3f,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x69,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x3a,0x28,0x74,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x29,0x7d,0x77,0x61,0x6c,0x6b,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x28,0x74,0x2c,0x69,0x29,0x7d,0x29,0x7d,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x65,0x3d,0x65,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x72,0x73,0x74,0x2c,0x22,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x22,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x6e,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6e,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6e,0x5d,0x2b,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x52,0x61,0x77,0x73,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x73,0x75,0x70,0x65,0x72,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x52,0x61,0x77,0x73,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x74,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x52,0x61,0x77,0x73,0x28,0x65,0x29,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x69,0x3d,0x3d,0x3d,0x30,0x3f,0x22,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x22,0x3a,0x21,0x31,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x2c,0x6e,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x3b,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x30,0x2c,0x6f,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6f,0x5d,0x2c,0x69,0x3c,0x3d,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6f,0x5d,0x3d,0x73,0x2b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x3b,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x6e,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2b,0x31,0x2c,0x30,0x2c,0x73,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x2c,0x69,0x3c,0x61,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x3d,0x61,0x2b,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x65,0x29,0x7b,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x65,0x5d,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x65,0x2c,0x31,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x69,0x5d,0x2c,0x74,0x3e,0x3d,0x65,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x69,0x5d,0x3d,0x74,0x2d,0x31,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x6c,0x6c,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7c,0x7c,0x28,0x69,0x3d,0x74,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x6e,0x3d,0x3e,0x7b,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x26,0x26,0x21,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x29,0x7c,0x7c,0x74,0x2e,0x66,0x61,0x73,0x74,0x26,0x26,0x21,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x2e,0x66,0x61,0x73,0x74,0x29,0x7c,0x7c,0x28,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x69,0x29,0x29,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x65,0x76,0x65,0x72,0x79,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x65,0x29,0x7d,0x73,0x6f,0x6d,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x65,0x29,0x7d,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x65,0x3a,0x28,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x26,0x26,0x28,0x65,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x29,0x29,0x7d,0x67,0x65,0x74,0x20,0x66,0x69,0x72,0x73,0x74,0x28,0x29,0x7b,0x69,0x66,0x28,0x21,0x21,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x7d,0x67,0x65,0x74,0x20,0x6c,0x61,0x73,0x74,0x28,0x29,0x7b,0x69,0x66,0x28,0x21,0x21,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x65,0x3d,0x53,0x63,0x28,0x78,0x63,0x28,0x65,0x29,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x29,0x7b,0x65,0x3d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x65,0x29,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6e,0x2c,0x22,0x69,0x67,0x6e,0x6f,0x72,0x65,0x22,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x7b,0x65,0x3d,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x65,0x29,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6e,0x2c,0x22,0x69,0x67,0x6e,0x6f,0x72,0x65,0x22,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x65,0x3d,0x5b,0x65,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x56,0x61,0x6c,0x75,0x65,0x20,0x66,0x69,0x65,0x6c,0x64,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x22,0x29,0x3b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x2c,0x65,0x3d,0x5b,0x6e,0x65,0x77,0x20,0x77,0x63,0x28,0x65,0x29,0x5d,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x65,0x3d,0x5b,0x6e,0x65,0x77,0x20,0x64,0x61,0x28,0x65,0x29,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x65,0x3d,0x5b,0x6e,0x65,0x77,0x20,0x68,0x61,0x28,0x65,0x29,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x2e,0x74,0x65,0x78,0x74,0x29,0x65,0x3d,0x5b,0x6e,0x65,0x77,0x20,0x76,0x63,0x28,0x65,0x29,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x69,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x28,0x6e,0x5b,0x62,0x63,0x5d,0x7c,0x7c,0x46,0x65,0x2e,0x72,0x65,0x62,0x75,0x69,0x6c,0x64,0x28,0x6e,0x29,0x2c,0x6e,0x3d,0x6e,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6e,0x29,0x2c,0x6e,0x5b,0x79,0x63,0x5d,0x26,0x26,0x41,0x63,0x28,0x6e,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x74,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x28,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x53,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2c,0x6e,0x29,0x29,0x7d,0x67,0x65,0x74,0x50,0x72,0x6f,0x78,0x79,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x5b,0x74,0x5d,0x3d,0x3d,0x3d,0x69,0x7c,0x7c,0x28,0x65,0x5b,0x74,0x5d,0x3d,0x69,0x2c,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x61,0x6d,0x73,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x29,0x26,0x26,0x65,0x2e,0x6d,0x61,0x72,0x6b,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x29,0x2c,0x21,0x30,0x7d,0x2c,0x67,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x22,0x3f,0x65,0x3a,0x65,0x5b,0x74,0x5d,0x3f,0x74,0x3d,0x3d,0x3d,0x22,0x65,0x61,0x63,0x68,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x77,0x61,0x6c,0x6b,0x22,0x29,0x3f,0x28,0x2e,0x2e,0x2e,0x69,0x29,0x3d,0x3e,0x65,0x5b,0x74,0x5d,0x28,0x2e,0x2e,0x2e,0x69,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x28,0x61,0x2c,0x73,0x29,0x3d,0x3e,0x6e,0x28,0x61,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x2c,0x73,0x29,0x3a,0x6e,0x29,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x65,0x76,0x65,0x72,0x79,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x6f,0x6d,0x65,0x22,0x3f,0x69,0x3d,0x3e,0x65,0x5b,0x74,0x5d,0x28,0x28,0x6e,0x2c,0x2e,0x2e,0x2e,0x61,0x29,0x3d,0x3e,0x69,0x28,0x6e,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x2c,0x2e,0x2e,0x2e,0x61,0x29,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3f,0x28,0x29,0x3d,0x3e,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x29,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x64,0x65,0x73,0x22,0x3f,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x69,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x72,0x73,0x74,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x6c,0x61,0x73,0x74,0x22,0x3f,0x65,0x5b,0x74,0x5d,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x3a,0x65,0x5b,0x74,0x5d,0x3a,0x65,0x5b,0x74,0x5d,0x7d,0x7d,0x7d,0x67,0x65,0x74,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x3d,0x30,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x2b,0x3d,0x31,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x65,0x5d,0x3d,0x30,0x2c,0x65,0x7d,0x7d,0x3b,0x46,0x65,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x61,0x72,0x73,0x65,0x3d,0x72,0x3d,0x3e,0x7b,0x78,0x63,0x3d,0x72,0x7d,0x3b,0x46,0x65,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6c,0x65,0x3d,0x72,0x3d,0x3e,0x7b,0x64,0x61,0x3d,0x72,0x7d,0x3b,0x46,0x65,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x41,0x74,0x52,0x75,0x6c,0x65,0x3d,0x72,0x3d,0x3e,0x7b,0x68,0x61,0x3d,0x72,0x7d,0x3b,0x46,0x65,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x6f,0x6f,0x74,0x3d,0x72,0x3d,0x3e,0x7b,0x6b,0x63,0x3d,0x72,0x7d,0x3b,0x43,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x46,0x65,0x3b,0x46,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x46,0x65,0x3b,0x46,0x65,0x2e,0x72,0x65,0x62,0x75,0x69,0x6c,0x64,0x3d,0x72,0x3d,0x3e,0x7b,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x2c,0x68,0x61,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x2c,0x64,0x61,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x2c,0x77,0x63,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x2c,0x76,0x63,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x2c,0x6b,0x63,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x5b,0x62,0x63,0x5d,0x3d,0x21,0x30,0x2c,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x65,0x3d,0x3e,0x7b,0x46,0x65,0x2e,0x72,0x65,0x62,0x75,0x69,0x6c,0x64,0x28,0x65,0x29,0x7d,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x6e,0x3d,0x78,0x28,0x28,0x45,0x33,0x2c,0x4f,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x45,0x78,0x3d,0x45,0x74,0x28,0x29,0x2c,0x5f,0x63,0x2c,0x45,0x63,0x2c,0x65,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x45,0x78,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x2e,0x2e,0x2e,0x65,0x7d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x7d,0x74,0x6f,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x5f,0x63,0x28,0x6e,0x65,0x77,0x20,0x45,0x63,0x2c,0x74,0x68,0x69,0x73,0x2c,0x65,0x29,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x7d,0x7d,0x3b,0x65,0x72,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x61,0x7a,0x79,0x52,0x65,0x73,0x75,0x6c,0x74,0x3d,0x72,0x3d,0x3e,0x7b,0x5f,0x63,0x3d,0x72,0x7d,0x3b,0x65,0x72,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x3d,0x72,0x3d,0x3e,0x7b,0x45,0x63,0x3d,0x72,0x7d,0x3b,0x4f,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x65,0x72,0x3b,0x65,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x65,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6d,0x61,0x3d,0x78,0x28,0x28,0x4f,0x33,0x2c,0x52,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x54,0x63,0x3d,0x7b,0x7d,0x3b,0x52,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x54,0x63,0x5b,0x65,0x5d,0x7c,0x7c,0x28,0x54,0x63,0x5b,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x65,0x29,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x67,0x61,0x3d,0x78,0x28,0x28,0x54,0x33,0x2c,0x50,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x70,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x78,0x74,0x3d,0x65,0x2c,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x26,0x26,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x2e,0x72,0x61,0x6e,0x67,0x65,0x42,0x79,0x28,0x74,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x3d,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3d,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x3d,0x69,0x2e,0x65,0x6e,0x64,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x74,0x29,0x74,0x68,0x69,0x73,0x5b,0x69,0x5d,0x3d,0x74,0x5b,0x69,0x5d,0x7d,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x3f,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x78,0x74,0x2c,0x7b,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2c,0x69,0x6e,0x64,0x65,0x78,0x3a,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x77,0x6f,0x72,0x64,0x3a,0x74,0x68,0x69,0x73,0x2e,0x77,0x6f,0x72,0x64,0x7d,0x29,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3f,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2b,0x22,0x3a,0x20,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x78,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x74,0x65,0x78,0x74,0x7d,0x7d,0x3b,0x50,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x70,0x6e,0x3b,0x70,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x70,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x68,0x6e,0x3d,0x78,0x28,0x28,0x52,0x33,0x2c,0x49,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x4f,0x78,0x3d,0x67,0x61,0x28,0x29,0x2c,0x64,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x73,0x3d,0x69,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x7d,0x77,0x61,0x72,0x6e,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x74,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x26,0x26,0x28,0x74,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x4f,0x78,0x28,0x65,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x29,0x2c,0x69,0x7d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x65,0x3d,0x3e,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x22,0x29,0x7d,0x67,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x7d,0x7d,0x3b,0x49,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x64,0x6e,0x3b,0x64,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x64,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x63,0x3d,0x78,0x28,0x28,0x50,0x33,0x2c,0x4c,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x79,0x61,0x3d,0x22,0x27,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x44,0x63,0x3d,0x27,0x22,0x27,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x6d,0x6e,0x3d,0x22,0x5c,0x5c,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x71,0x63,0x3d,0x22,0x2f,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x67,0x6e,0x3d,0x60,0x0a,0x60,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x51,0x72,0x3d,0x22,0x20,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x79,0x6e,0x3d,0x22,0x5c,0x66,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x62,0x6e,0x3d,0x22,0x09,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x77,0x6e,0x3d,0x22,0x5c,0x72,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x54,0x78,0x3d,0x22,0x5b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x52,0x78,0x3d,0x22,0x5d,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x50,0x78,0x3d,0x22,0x28,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x49,0x78,0x3d,0x22,0x29,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x44,0x78,0x3d,0x22,0x7b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x71,0x78,0x3d,0x22,0x7d,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x24,0x78,0x3d,0x22,0x3b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4c,0x78,0x3d,0x22,0x2a,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4d,0x78,0x3d,0x22,0x3a,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4e,0x78,0x3d,0x22,0x40,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x76,0x6e,0x3d,0x2f,0x5b,0x5c,0x74,0x5c,0x6e,0x5c,0x66,0x5c,0x72,0x20,0x22,0x23,0x27,0x28,0x29,0x2f,0x3b,0x5b,0x5c,0x5c,0x5c,0x5d,0x7b,0x7d,0x5d,0x2f,0x67,0x2c,0x78,0x6e,0x3d,0x2f,0x5b,0x5c,0x74,0x5c,0x6e,0x5c,0x66,0x5c,0x72,0x20,0x21,0x22,0x23,0x27,0x28,0x29,0x3a,0x3b,0x40,0x5b,0x5c,0x5c,0x5c,0x5d,0x7b,0x7d,0x5d,0x7c,0x5c,0x2f,0x28,0x3f,0x3d,0x5c,0x2a,0x29,0x2f,0x67,0x2c,0x42,0x78,0x3d,0x2f,0x2e,0x5b,0x5c,0x6e,0x22,0x27,0x28,0x2f,0x5c,0x5c,0x5d,0x2f,0x2c,0x24,0x63,0x3d,0x2f,0x5b,0x5c,0x64,0x61,0x2d,0x66,0x5d,0x2f,0x69,0x3b,0x4c,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x63,0x73,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x4f,0x66,0x28,0x29,0x2c,0x6e,0x3d,0x74,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x45,0x72,0x72,0x6f,0x72,0x73,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x2c,0x63,0x2c,0x66,0x2c,0x64,0x2c,0x70,0x2c,0x68,0x2c,0x62,0x2c,0x76,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x79,0x3d,0x30,0x2c,0x77,0x3d,0x5b,0x5d,0x2c,0x6b,0x3d,0x5b,0x5d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x28,0x54,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x22,0x2b,0x54,0x2c,0x79,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x79,0x3e,0x3d,0x76,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x28,0x54,0x29,0x7b,0x69,0x66,0x28,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x69,0x66,0x28,0x79,0x3e,0x3d,0x76,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x46,0x3d,0x54,0x3f,0x54,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x55,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3a,0x21,0x31,0x3b,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x61,0x3d,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x79,0x29,0x2c,0x61,0x29,0x7b,0x63,0x61,0x73,0x65,0x20,0x67,0x6e,0x3a,0x63,0x61,0x73,0x65,0x20,0x51,0x72,0x3a,0x63,0x61,0x73,0x65,0x20,0x62,0x6e,0x3a,0x63,0x61,0x73,0x65,0x20,0x77,0x6e,0x3a,0x63,0x61,0x73,0x65,0x20,0x79,0x6e,0x3a,0x7b,0x73,0x3d,0x79,0x3b,0x64,0x6f,0x20,0x73,0x2b,0x3d,0x31,0x2c,0x61,0x3d,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x61,0x3d,0x3d,0x3d,0x51,0x72,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x67,0x6e,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x62,0x6e,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x77,0x6e,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x79,0x6e,0x29,0x3b,0x62,0x3d,0x5b,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x29,0x5d,0x2c,0x79,0x3d,0x73,0x2d,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x63,0x61,0x73,0x65,0x20,0x54,0x78,0x3a,0x63,0x61,0x73,0x65,0x20,0x52,0x78,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x78,0x3a,0x63,0x61,0x73,0x65,0x20,0x71,0x78,0x3a,0x63,0x61,0x73,0x65,0x20,0x4d,0x78,0x3a,0x63,0x61,0x73,0x65,0x20,0x24,0x78,0x3a,0x63,0x61,0x73,0x65,0x20,0x49,0x78,0x3a,0x7b,0x6c,0x65,0x74,0x20,0x59,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x61,0x29,0x3b,0x62,0x3d,0x5b,0x59,0x2c,0x59,0x2c,0x79,0x5d,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x63,0x61,0x73,0x65,0x20,0x50,0x78,0x3a,0x7b,0x69,0x66,0x28,0x70,0x3d,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x77,0x2e,0x70,0x6f,0x70,0x28,0x29,0x5b,0x31,0x5d,0x3a,0x22,0x22,0x2c,0x68,0x3d,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x79,0x2b,0x31,0x29,0x2c,0x70,0x3d,0x3d,0x3d,0x22,0x75,0x72,0x6c,0x22,0x26,0x26,0x68,0x21,0x3d,0x3d,0x79,0x61,0x26,0x26,0x68,0x21,0x3d,0x3d,0x44,0x63,0x26,0x26,0x68,0x21,0x3d,0x3d,0x51,0x72,0x26,0x26,0x68,0x21,0x3d,0x3d,0x67,0x6e,0x26,0x26,0x68,0x21,0x3d,0x3d,0x62,0x6e,0x26,0x26,0x68,0x21,0x3d,0x3d,0x79,0x6e,0x26,0x26,0x68,0x21,0x3d,0x3d,0x77,0x6e,0x29,0x7b,0x73,0x3d,0x79,0x3b,0x64,0x6f,0x7b,0x69,0x66,0x28,0x66,0x3d,0x21,0x31,0x2c,0x73,0x3d,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x29,0x22,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x73,0x3d,0x3d,0x3d,0x2d,0x31,0x29,0x69,0x66,0x28,0x6e,0x7c,0x7c,0x46,0x29,0x7b,0x73,0x3d,0x79,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x45,0x28,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x64,0x3d,0x73,0x3b,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x6d,0x6e,0x3b,0x29,0x64,0x2d,0x3d,0x31,0x2c,0x66,0x3d,0x21,0x66,0x7d,0x77,0x68,0x69,0x6c,0x65,0x28,0x66,0x29,0x3b,0x62,0x3d,0x5b,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x79,0x3d,0x73,0x7d,0x65,0x6c,0x73,0x65,0x20,0x73,0x3d,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x29,0x22,0x2c,0x79,0x2b,0x31,0x29,0x2c,0x6c,0x3d,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x73,0x3d,0x3d,0x3d,0x2d,0x31,0x7c,0x7c,0x42,0x78,0x2e,0x74,0x65,0x73,0x74,0x28,0x6c,0x29,0x3f,0x62,0x3d,0x5b,0x22,0x28,0x22,0x2c,0x22,0x28,0x22,0x2c,0x79,0x5d,0x3a,0x28,0x62,0x3d,0x5b,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x22,0x2c,0x6c,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x79,0x3d,0x73,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x63,0x61,0x73,0x65,0x20,0x79,0x61,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x63,0x3a,0x7b,0x6f,0x3d,0x61,0x3d,0x3d,0x3d,0x79,0x61,0x3f,0x22,0x27,0x22,0x3a,0x27,0x22,0x27,0x2c,0x73,0x3d,0x79,0x3b,0x64,0x6f,0x7b,0x69,0x66,0x28,0x66,0x3d,0x21,0x31,0x2c,0x73,0x3d,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6f,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x73,0x3d,0x3d,0x3d,0x2d,0x31,0x29,0x69,0x66,0x28,0x6e,0x7c,0x7c,0x46,0x29,0x7b,0x73,0x3d,0x79,0x2b,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x45,0x28,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x64,0x3d,0x73,0x3b,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x6d,0x6e,0x3b,0x29,0x64,0x2d,0x3d,0x31,0x2c,0x66,0x3d,0x21,0x66,0x7d,0x77,0x68,0x69,0x6c,0x65,0x28,0x66,0x29,0x3b,0x62,0x3d,0x5b,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x79,0x3d,0x73,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x63,0x61,0x73,0x65,0x20,0x4e,0x78,0x3a,0x7b,0x76,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x79,0x2b,0x31,0x2c,0x76,0x6e,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x2c,0x76,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x30,0x3f,0x73,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3a,0x73,0x3d,0x76,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x2d,0x32,0x2c,0x62,0x3d,0x5b,0x22,0x61,0x74,0x2d,0x77,0x6f,0x72,0x64,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x79,0x3d,0x73,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x63,0x61,0x73,0x65,0x20,0x6d,0x6e,0x3a,0x7b,0x66,0x6f,0x72,0x28,0x73,0x3d,0x79,0x2c,0x63,0x3d,0x21,0x30,0x3b,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x2b,0x31,0x29,0x3d,0x3d,0x3d,0x6d,0x6e,0x3b,0x29,0x73,0x2b,0x3d,0x31,0x2c,0x63,0x3d,0x21,0x63,0x3b,0x69,0x66,0x28,0x61,0x3d,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x2b,0x31,0x29,0x2c,0x63,0x26,0x26,0x61,0x21,0x3d,0x3d,0x71,0x63,0x26,0x26,0x61,0x21,0x3d,0x3d,0x51,0x72,0x26,0x26,0x61,0x21,0x3d,0x3d,0x67,0x6e,0x26,0x26,0x61,0x21,0x3d,0x3d,0x62,0x6e,0x26,0x26,0x61,0x21,0x3d,0x3d,0x77,0x6e,0x26,0x26,0x61,0x21,0x3d,0x3d,0x79,0x6e,0x26,0x26,0x28,0x73,0x2b,0x3d,0x31,0x2c,0x24,0x63,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x73,0x29,0x29,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x3b,0x24,0x63,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x73,0x2b,0x31,0x29,0x29,0x3b,0x29,0x73,0x2b,0x3d,0x31,0x3b,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x73,0x2b,0x31,0x29,0x3d,0x3d,0x3d,0x51,0x72,0x26,0x26,0x28,0x73,0x2b,0x3d,0x31,0x29,0x7d,0x62,0x3d,0x5b,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x79,0x3d,0x73,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x7b,0x61,0x3d,0x3d,0x3d,0x71,0x63,0x26,0x26,0x69,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x79,0x2b,0x31,0x29,0x3d,0x3d,0x3d,0x4c,0x78,0x3f,0x28,0x73,0x3d,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2a,0x2f,0x22,0x2c,0x79,0x2b,0x32,0x29,0x2b,0x31,0x2c,0x73,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x6e,0x7c,0x7c,0x46,0x3f,0x73,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x45,0x28,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x2c,0x62,0x3d,0x5b,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x79,0x3d,0x73,0x29,0x3a,0x28,0x78,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x79,0x2b,0x31,0x2c,0x78,0x6e,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x2c,0x78,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x30,0x3f,0x73,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3a,0x73,0x3d,0x78,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x2d,0x32,0x2c,0x62,0x3d,0x5b,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x73,0x2b,0x31,0x29,0x2c,0x79,0x2c,0x73,0x5d,0x2c,0x77,0x2e,0x70,0x75,0x73,0x68,0x28,0x62,0x29,0x2c,0x79,0x3d,0x73,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x2b,0x2b,0x2c,0x62,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x28,0x54,0x29,0x7b,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x54,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x62,0x61,0x63,0x6b,0x3a,0x4e,0x2c,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x3a,0x42,0x2c,0x65,0x6e,0x64,0x4f,0x66,0x46,0x69,0x6c,0x65,0x3a,0x4f,0x2c,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x53,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x6e,0x3d,0x78,0x28,0x28,0x49,0x33,0x2c,0x42,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x4e,0x63,0x3d,0x45,0x74,0x28,0x29,0x2c,0x59,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4e,0x63,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x7d,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7d,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x2e,0x2e,0x2e,0x65,0x29,0x7d,0x7d,0x3b,0x42,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x59,0x72,0x3b,0x59,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x59,0x72,0x3b,0x4e,0x63,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x41,0x74,0x52,0x75,0x6c,0x65,0x28,0x59,0x72,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x72,0x3d,0x78,0x28,0x28,0x44,0x33,0x2c,0x55,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x46,0x63,0x3d,0x45,0x74,0x28,0x29,0x2c,0x6a,0x63,0x2c,0x7a,0x63,0x2c,0x55,0x74,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x46,0x63,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x74,0x26,0x26,0x69,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x65,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x73,0x75,0x70,0x65,0x72,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x29,0x7b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x22,0x29,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x3f,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x72,0x73,0x74,0x21,0x3d,0x3d,0x74,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x61,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x74,0x6f,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x6a,0x63,0x28,0x6e,0x65,0x77,0x20,0x7a,0x63,0x2c,0x74,0x68,0x69,0x73,0x2c,0x65,0x29,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x7d,0x7d,0x3b,0x55,0x74,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x61,0x7a,0x79,0x52,0x65,0x73,0x75,0x6c,0x74,0x3d,0x72,0x3d,0x3e,0x7b,0x6a,0x63,0x3d,0x72,0x7d,0x3b,0x55,0x74,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x3d,0x72,0x3d,0x3e,0x7b,0x7a,0x63,0x3d,0x72,0x7d,0x3b,0x55,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x55,0x74,0x3b,0x55,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x55,0x74,0x3b,0x46,0x63,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x6f,0x6f,0x74,0x28,0x55,0x74,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x62,0x61,0x3d,0x78,0x28,0x28,0x71,0x33,0x2c,0x56,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x4b,0x72,0x3d,0x7b,0x73,0x70,0x6c,0x69,0x74,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x22,0x22,0x2c,0x61,0x3d,0x21,0x31,0x2c,0x73,0x3d,0x30,0x2c,0x6f,0x3d,0x21,0x31,0x2c,0x6c,0x3d,0x22,0x22,0x2c,0x63,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x66,0x20,0x6f,0x66,0x20,0x72,0x29,0x63,0x3f,0x63,0x3d,0x21,0x31,0x3a,0x66,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x3f,0x63,0x3d,0x21,0x30,0x3a,0x6f,0x3f,0x66,0x3d,0x3d,0x3d,0x6c,0x26,0x26,0x28,0x6f,0x3d,0x21,0x31,0x29,0x3a,0x66,0x3d,0x3d,0x3d,0x27,0x22,0x27,0x7c,0x7c,0x66,0x3d,0x3d,0x3d,0x22,0x27,0x22,0x3f,0x28,0x6f,0x3d,0x21,0x30,0x2c,0x6c,0x3d,0x66,0x29,0x3a,0x66,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x3f,0x73,0x2b,0x3d,0x31,0x3a,0x66,0x3d,0x3d,0x3d,0x22,0x29,0x22,0x3f,0x73,0x3e,0x30,0x26,0x26,0x28,0x73,0x2d,0x3d,0x31,0x29,0x3a,0x73,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x66,0x29,0x26,0x26,0x28,0x61,0x3d,0x21,0x30,0x29,0x2c,0x61,0x3f,0x28,0x6e,0x21,0x3d,0x3d,0x22,0x22,0x26,0x26,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x6e,0x3d,0x22,0x22,0x2c,0x61,0x3d,0x21,0x31,0x29,0x3a,0x6e,0x2b,0x3d,0x66,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x74,0x7c,0x7c,0x6e,0x21,0x3d,0x3d,0x22,0x22,0x29,0x26,0x26,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x69,0x7d,0x2c,0x73,0x70,0x61,0x63,0x65,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x22,0x20,0x22,0x2c,0x60,0x0a,0x60,0x2c,0x22,0x09,0x22,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x72,0x2c,0x65,0x29,0x7d,0x2c,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x72,0x2c,0x5b,0x22,0x2c,0x22,0x5d,0x2c,0x21,0x30,0x29,0x7d,0x7d,0x3b,0x56,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4b,0x72,0x3b,0x4b,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x4b,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x6e,0x3d,0x78,0x28,0x28,0x24,0x33,0x2c,0x57,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x48,0x63,0x3d,0x45,0x74,0x28,0x29,0x2c,0x46,0x78,0x3d,0x62,0x61,0x28,0x29,0x2c,0x58,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x48,0x63,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x7d,0x67,0x65,0x74,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x78,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x7d,0x73,0x65,0x74,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3f,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x2c,0x5c,0x73,0x2a,0x2f,0x29,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x69,0x3d,0x74,0x3f,0x74,0x5b,0x30,0x5d,0x3a,0x22,0x2c,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x2c,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x4f,0x70,0x65,0x6e,0x22,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x65,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x69,0x29,0x7d,0x7d,0x3b,0x57,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x58,0x72,0x3b,0x58,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x58,0x72,0x3b,0x48,0x63,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6c,0x65,0x28,0x58,0x72,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x58,0x63,0x3d,0x78,0x28,0x28,0x4c,0x33,0x2c,0x4b,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6a,0x78,0x3d,0x57,0x72,0x28,0x29,0x2c,0x7a,0x78,0x3d,0x4d,0x63,0x28,0x29,0x2c,0x55,0x78,0x3d,0x47,0x72,0x28,0x29,0x2c,0x56,0x78,0x3d,0x6b,0x6e,0x28,0x29,0x2c,0x48,0x78,0x3d,0x74,0x72,0x28,0x29,0x2c,0x47,0x63,0x3d,0x53,0x6e,0x28,0x29,0x2c,0x51,0x63,0x3d,0x7b,0x65,0x6d,0x70,0x74,0x79,0x3a,0x21,0x30,0x2c,0x73,0x70,0x61,0x63,0x65,0x3a,0x21,0x30,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x78,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x65,0x3e,0x3d,0x30,0x3b,0x65,0x2d,0x2d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x5b,0x65,0x5d,0x2c,0x69,0x3d,0x74,0x5b,0x33,0x5d,0x7c,0x7c,0x74,0x5b,0x32,0x5d,0x3b,0x69,0x66,0x28,0x69,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x7d,0x76,0x61,0x72,0x20,0x59,0x63,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x3d,0x6e,0x65,0x77,0x20,0x48,0x78,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x22,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x73,0x74,0x6f,0x6d,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x7b,0x69,0x6e,0x70,0x75,0x74,0x3a,0x65,0x2c,0x73,0x74,0x61,0x72,0x74,0x3a,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x30,0x2c,0x6c,0x69,0x6e,0x65,0x3a,0x31,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x31,0x7d,0x7d,0x7d,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x3d,0x7a,0x78,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x29,0x7d,0x70,0x61,0x72,0x73,0x65,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x21,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x65,0x6e,0x64,0x4f,0x66,0x46,0x69,0x6c,0x65,0x28,0x29,0x3b,0x29,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x29,0x2c,0x65,0x5b,0x30,0x5d,0x29,0x7b,0x63,0x61,0x73,0x65,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2b,0x3d,0x65,0x5b,0x31,0x5d,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x22,0x3b,0x22,0x3a,0x74,0x68,0x69,0x73,0x2e,0x66,0x72,0x65,0x65,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x22,0x7d,0x22,0x3a,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x22,0x61,0x74,0x2d,0x77,0x6f,0x72,0x64,0x22,0x3a,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x72,0x75,0x6c,0x65,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x22,0x7b,0x22,0x3a,0x74,0x68,0x69,0x73,0x2e,0x65,0x6d,0x70,0x74,0x79,0x52,0x75,0x6c,0x65,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6f,0x74,0x68,0x65,0x72,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x46,0x69,0x6c,0x65,0x28,0x29,0x7d,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x55,0x78,0x3b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x69,0x74,0x28,0x74,0x2c,0x65,0x5b,0x32,0x5d,0x29,0x2c,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x65,0x5b,0x33,0x5d,0x7c,0x7c,0x65,0x5b,0x32,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x5b,0x31,0x5d,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x2c,0x2d,0x32,0x29,0x3b,0x69,0x66,0x28,0x2f,0x5e,0x5c,0x73,0x2a,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x29,0x74,0x2e,0x74,0x65,0x78,0x74,0x3d,0x22,0x22,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6c,0x65,0x66,0x74,0x3d,0x69,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x72,0x69,0x67,0x68,0x74,0x3d,0x22,0x22,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x28,0x5c,0x73,0x2a,0x29,0x28,0x5b,0x5e,0x5d,0x2a,0x5c,0x53,0x29,0x28,0x5c,0x73,0x2a,0x29,0x24,0x2f,0x29,0x3b,0x74,0x2e,0x74,0x65,0x78,0x74,0x3d,0x6e,0x5b,0x32,0x5d,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6c,0x65,0x66,0x74,0x3d,0x6e,0x5b,0x31,0x5d,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x72,0x69,0x67,0x68,0x74,0x3d,0x6e,0x5b,0x33,0x5d,0x7d,0x7d,0x65,0x6d,0x70,0x74,0x79,0x52,0x75,0x6c,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x47,0x63,0x3b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x69,0x74,0x28,0x74,0x2c,0x65,0x5b,0x32,0x5d,0x29,0x2c,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x22,0x22,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3d,0x22,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x74,0x7d,0x6f,0x74,0x68,0x65,0x72,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x6e,0x3d,0x21,0x31,0x2c,0x61,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x73,0x3d,0x5b,0x5d,0x2c,0x6f,0x3d,0x65,0x5b,0x31,0x5d,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x2d,0x22,0x29,0x2c,0x6c,0x3d,0x5b,0x5d,0x2c,0x63,0x3d,0x65,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x63,0x3b,0x29,0x7b,0x69,0x66,0x28,0x69,0x3d,0x63,0x5b,0x30,0x5d,0x2c,0x6c,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x29,0x61,0x7c,0x7c,0x28,0x61,0x3d,0x63,0x29,0x2c,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x3f,0x22,0x29,0x22,0x3a,0x22,0x5d,0x22,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6f,0x26,0x26,0x6e,0x26,0x26,0x69,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x29,0x61,0x7c,0x7c,0x28,0x61,0x3d,0x63,0x29,0x2c,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x7d,0x22,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x3b,0x22,0x29,0x69,0x66,0x28,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x63,0x6c,0x28,0x6c,0x2c,0x6f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x28,0x6c,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x7d,0x22,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x62,0x61,0x63,0x6b,0x28,0x6c,0x2e,0x70,0x6f,0x70,0x28,0x29,0x29,0x2c,0x74,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x3d,0x3d,0x3d,0x22,0x3a,0x22,0x26,0x26,0x28,0x6e,0x3d,0x21,0x30,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x3d,0x3d,0x3d,0x73,0x5b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x26,0x26,0x28,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x61,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x29,0x3b,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x29,0x7d,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x65,0x6e,0x64,0x4f,0x66,0x46,0x69,0x6c,0x65,0x28,0x29,0x26,0x26,0x28,0x74,0x3d,0x21,0x30,0x29,0x2c,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x28,0x61,0x29,0x2c,0x74,0x26,0x26,0x6e,0x29,0x7b,0x69,0x66,0x28,0x21,0x6f,0x29,0x66,0x6f,0x72,0x28,0x3b,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x63,0x3d,0x6c,0x5b,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x21,0x28,0x63,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x63,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x3b,0x29,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x62,0x61,0x63,0x6b,0x28,0x6c,0x2e,0x70,0x6f,0x70,0x28,0x29,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x63,0x6c,0x28,0x6c,0x2c,0x6f,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x57,0x6f,0x72,0x64,0x28,0x6c,0x29,0x7d,0x72,0x75,0x6c,0x65,0x28,0x65,0x29,0x7b,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x47,0x63,0x3b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x69,0x74,0x28,0x74,0x2c,0x65,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x29,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x41,0x6e,0x64,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x46,0x72,0x6f,0x6d,0x45,0x6e,0x64,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x74,0x2c,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x2c,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x74,0x7d,0x64,0x65,0x63,0x6c,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x6a,0x78,0x3b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x69,0x74,0x28,0x69,0x2c,0x65,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6e,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x3b,0x22,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x21,0x30,0x2c,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x29,0x2c,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x5b,0x33,0x5d,0x7c,0x7c,0x6e,0x5b,0x32,0x5d,0x7c,0x7c,0x57,0x78,0x28,0x65,0x29,0x29,0x3b,0x65,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x3b,0x29,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x57,0x6f,0x72,0x64,0x28,0x65,0x29,0x2c,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2b,0x3d,0x65,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x5b,0x31,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x65,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x29,0x2c,0x69,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x22,0x22,0x3b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x65,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x63,0x3d,0x3d,0x3d,0x22,0x3a,0x22,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x69,0x2e,0x70,0x72,0x6f,0x70,0x2b,0x3d,0x65,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x5b,0x31,0x5d,0x7d,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3d,0x22,0x22,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x69,0x66,0x28,0x61,0x3d,0x65,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x2c,0x61,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x3a,0x22,0x29,0x7b,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x2b,0x3d,0x61,0x5b,0x31,0x5d,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x61,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x2f,0x5c,0x77,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x5b,0x31,0x5d,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x57,0x6f,0x72,0x64,0x28,0x5b,0x61,0x5d,0x29,0x2c,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x2b,0x3d,0x61,0x5b,0x31,0x5d,0x3b,0x28,0x69,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x5f,0x22,0x7c,0x7c,0x69,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2a,0x22,0x29,0x26,0x26,0x28,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2b,0x3d,0x69,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x30,0x5d,0x2c,0x69,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x69,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x5b,0x5d,0x2c,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6f,0x3d,0x65,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x2c,0x21,0x28,0x6f,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x6f,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x3b,0x29,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x63,0x68,0x65,0x63,0x6b,0x4d,0x69,0x73,0x73,0x65,0x64,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x63,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x63,0x3e,0x3d,0x30,0x3b,0x63,0x2d,0x2d,0x29,0x7b,0x69,0x66,0x28,0x61,0x3d,0x65,0x5b,0x63,0x5d,0x2c,0x61,0x5b,0x31,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x29,0x7b,0x69,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x21,0x30,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x28,0x65,0x2c,0x63,0x29,0x3b,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x72,0x6f,0x6d,0x45,0x6e,0x64,0x28,0x65,0x29,0x2b,0x66,0x2c,0x66,0x21,0x3d,0x3d,0x22,0x20,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x26,0x26,0x28,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x66,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x61,0x5b,0x31,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x29,0x2c,0x64,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x3d,0x63,0x3b,0x70,0x3e,0x30,0x3b,0x70,0x2d,0x2d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x66,0x5b,0x70,0x5d,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x64,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x21,0x22,0x29,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x68,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x64,0x3d,0x66,0x2e,0x70,0x6f,0x70,0x28,0x29,0x5b,0x31,0x5d,0x2b,0x64,0x7d,0x64,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x21,0x22,0x29,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x69,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x21,0x30,0x2c,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x64,0x2c,0x65,0x3d,0x66,0x29,0x7d,0x69,0x66,0x28,0x61,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x61,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x63,0x3d,0x3e,0x63,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x63,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x26,0x26,0x28,0x69,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x2b,0x3d,0x73,0x2e,0x6d,0x61,0x70,0x28,0x63,0x3d,0x3e,0x63,0x5b,0x31,0x5d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x2c,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x69,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x2c,0x74,0x29,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x22,0x29,0x26,0x26,0x21,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x68,0x65,0x63,0x6b,0x4d,0x69,0x73,0x73,0x65,0x64,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7d,0x61,0x74,0x72,0x75,0x6c,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x56,0x78,0x3b,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x65,0x5b,0x31,0x5d,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x6e,0x61,0x6d,0x65,0x64,0x41,0x74,0x72,0x75,0x6c,0x65,0x28,0x74,0x2c,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x69,0x74,0x28,0x74,0x2c,0x65,0x5b,0x32,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x3d,0x21,0x31,0x2c,0x6f,0x3d,0x21,0x31,0x2c,0x6c,0x3d,0x5b,0x5d,0x2c,0x63,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x21,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x65,0x6e,0x64,0x4f,0x66,0x46,0x69,0x6c,0x65,0x28,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x29,0x2c,0x69,0x3d,0x65,0x5b,0x30,0x5d,0x2c,0x69,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x3f,0x63,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x3f,0x22,0x29,0x22,0x3a,0x22,0x5d,0x22,0x29,0x3a,0x69,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x26,0x26,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3f,0x63,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x7d,0x22,0x29,0x3a,0x69,0x3d,0x3d,0x3d,0x63,0x5b,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x26,0x26,0x63,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x3b,0x22,0x29,0x7b,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x65,0x5b,0x32,0x5d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x29,0x7b,0x6f,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x7d,0x22,0x29,0x7b,0x69,0x66,0x28,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x66,0x6f,0x72,0x28,0x61,0x3d,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x6e,0x3d,0x6c,0x5b,0x61,0x5d,0x3b,0x6e,0x26,0x26,0x6e,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x3b,0x29,0x6e,0x3d,0x6c,0x5b,0x2d,0x2d,0x61,0x5d,0x3b,0x6e,0x26,0x26,0x28,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x5b,0x33,0x5d,0x7c,0x7c,0x6e,0x5b,0x32,0x5d,0x29,0x29,0x7d,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x64,0x28,0x65,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x6c,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x6c,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x65,0x6e,0x64,0x4f,0x66,0x46,0x69,0x6c,0x65,0x28,0x29,0x29,0x7b,0x73,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x41,0x6e,0x64,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x46,0x72,0x6f,0x6d,0x45,0x6e,0x64,0x28,0x6c,0x29,0x2c,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x28,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x41,0x6e,0x64,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x46,0x72,0x6f,0x6d,0x53,0x74,0x61,0x72,0x74,0x28,0x6c,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x28,0x74,0x2c,0x22,0x70,0x61,0x72,0x61,0x6d,0x73,0x22,0x2c,0x6c,0x29,0x2c,0x73,0x26,0x26,0x28,0x65,0x3d,0x6c,0x5b,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x65,0x5b,0x33,0x5d,0x7c,0x7c,0x65,0x5b,0x32,0x5d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x2c,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x3d,0x22,0x22,0x29,0x29,0x3a,0x28,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x4e,0x61,0x6d,0x65,0x3d,0x22,0x22,0x2c,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x22,0x29,0x2c,0x6f,0x26,0x26,0x28,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x74,0x29,0x7d,0x65,0x6e,0x64,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x22,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x65,0x5b,0x32,0x5d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x6f,0x73,0x65,0x28,0x65,0x29,0x7d,0x65,0x6e,0x64,0x46,0x69,0x6c,0x65,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x7d,0x66,0x72,0x65,0x65,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2b,0x3d,0x65,0x5b,0x31,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x74,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x21,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x77,0x6e,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x26,0x26,0x28,0x74,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x77,0x6e,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x22,0x22,0x29,0x7d,0x7d,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x2c,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x74,0x2e,0x63,0x6f,0x6c,0x7d,0x7d,0x69,0x6e,0x69,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x2c,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x74,0x29,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x7d,0x2c,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x22,0x22,0x2c,0x65,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x21,0x31,0x29,0x7d,0x72,0x61,0x77,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x2c,0x73,0x2c,0x6f,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6c,0x3d,0x22,0x22,0x2c,0x63,0x3d,0x21,0x30,0x2c,0x66,0x2c,0x64,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x3d,0x30,0x3b,0x70,0x3c,0x6f,0x3b,0x70,0x2b,0x3d,0x31,0x29,0x61,0x3d,0x69,0x5b,0x70,0x5d,0x2c,0x73,0x3d,0x61,0x5b,0x30,0x5d,0x2c,0x73,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x70,0x3d,0x3d,0x3d,0x6f,0x2d,0x31,0x26,0x26,0x21,0x6e,0x3f,0x63,0x3d,0x21,0x31,0x3a,0x73,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3f,0x28,0x64,0x3d,0x69,0x5b,0x70,0x2d,0x31,0x5d,0x3f,0x69,0x5b,0x70,0x2d,0x31,0x5d,0x5b,0x30,0x5d,0x3a,0x22,0x65,0x6d,0x70,0x74,0x79,0x22,0x2c,0x66,0x3d,0x69,0x5b,0x70,0x2b,0x31,0x5d,0x3f,0x69,0x5b,0x70,0x2b,0x31,0x5d,0x5b,0x30,0x5d,0x3a,0x22,0x65,0x6d,0x70,0x74,0x79,0x22,0x2c,0x21,0x51,0x63,0x5b,0x64,0x5d,0x26,0x26,0x21,0x51,0x63,0x5b,0x66,0x5d,0x3f,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x3f,0x63,0x3d,0x21,0x31,0x3a,0x6c,0x2b,0x3d,0x61,0x5b,0x31,0x5d,0x3a,0x63,0x3d,0x21,0x31,0x29,0x3a,0x6c,0x2b,0x3d,0x61,0x5b,0x31,0x5d,0x3b,0x69,0x66,0x28,0x21,0x63,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x69,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x68,0x2c,0x62,0x29,0x3d,0x3e,0x68,0x2b,0x62,0x5b,0x31,0x5d,0x2c,0x22,0x22,0x29,0x3b,0x65,0x2e,0x72,0x61,0x77,0x73,0x5b,0x74,0x5d,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6c,0x2c,0x72,0x61,0x77,0x3a,0x70,0x7d,0x7d,0x65,0x5b,0x74,0x5d,0x3d,0x6c,0x7d,0x73,0x70,0x61,0x63,0x65,0x73,0x41,0x6e,0x64,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x46,0x72,0x6f,0x6d,0x45,0x6e,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x3d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x21,0x28,0x74,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x74,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x3b,0x29,0x69,0x3d,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x5b,0x31,0x5d,0x2b,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x73,0x70,0x61,0x63,0x65,0x73,0x41,0x6e,0x64,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x46,0x72,0x6f,0x6d,0x53,0x74,0x61,0x72,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x3d,0x65,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x2c,0x21,0x28,0x74,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x74,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x3b,0x29,0x69,0x2b,0x3d,0x65,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x5b,0x31,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x72,0x6f,0x6d,0x45,0x6e,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x3d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x5b,0x30,0x5d,0x2c,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x3b,0x29,0x69,0x3d,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x5b,0x31,0x5d,0x2b,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x72,0x6f,0x6d,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x3b,0x6e,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6e,0x2b,0x2b,0x29,0x69,0x2b,0x3d,0x65,0x5b,0x6e,0x5d,0x5b,0x31,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x74,0x2c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x74,0x29,0x2c,0x69,0x7d,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x30,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x73,0x2c,0x6f,0x5d,0x6f,0x66,0x20,0x65,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x7b,0x69,0x66,0x28,0x69,0x3d,0x6f,0x2c,0x6e,0x3d,0x69,0x5b,0x30,0x5d,0x2c,0x6e,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x26,0x26,0x28,0x74,0x2b,0x3d,0x31,0x29,0x2c,0x6e,0x3d,0x3d,0x3d,0x22,0x29,0x22,0x26,0x26,0x28,0x74,0x2d,0x3d,0x31,0x29,0x2c,0x74,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x6e,0x3d,0x3d,0x3d,0x22,0x3a,0x22,0x29,0x69,0x66,0x28,0x21,0x61,0x29,0x74,0x68,0x69,0x73,0x2e,0x64,0x6f,0x75,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6f,0x6e,0x28,0x69,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x69,0x66,0x28,0x61,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x61,0x5b,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x67,0x69,0x64,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x7d,0x61,0x3d,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x28,0x65,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x32,0x5d,0x7d,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x32,0x5d,0x2b,0x31,0x7d,0x29,0x7d,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x57,0x6f,0x72,0x64,0x28,0x65,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x77,0x6f,0x72,0x64,0x22,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x7d,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x30,0x5d,0x5b,0x32,0x5d,0x2b,0x65,0x5b,0x30,0x5d,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x29,0x7d,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x6f,0x73,0x65,0x28,0x65,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x7d,0x22,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x32,0x5d,0x7d,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x32,0x5d,0x2b,0x31,0x7d,0x29,0x7d,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x65,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x65,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x29,0x7d,0x64,0x6f,0x75,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x44,0x6f,0x75,0x62,0x6c,0x65,0x20,0x63,0x6f,0x6c,0x6f,0x6e,0x22,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x32,0x5d,0x7d,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x5b,0x32,0x5d,0x2b,0x65,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x29,0x7d,0x75,0x6e,0x6e,0x61,0x6d,0x65,0x64,0x41,0x74,0x72,0x75,0x6c,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x41,0x74,0x2d,0x72,0x75,0x6c,0x65,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x74,0x5b,0x32,0x5d,0x7d,0x2c,0x7b,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x74,0x5b,0x32,0x5d,0x2b,0x74,0x5b,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x29,0x7d,0x70,0x72,0x65,0x63,0x68,0x65,0x63,0x6b,0x4d,0x69,0x73,0x73,0x65,0x64,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x29,0x7b,0x7d,0x63,0x68,0x65,0x63,0x6b,0x4d,0x69,0x73,0x73,0x65,0x64,0x53,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x30,0x2c,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x2d,0x31,0x3b,0x61,0x3e,0x3d,0x30,0x26,0x26,0x28,0x6e,0x3d,0x65,0x5b,0x61,0x5d,0x2c,0x21,0x28,0x6e,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x28,0x69,0x2b,0x3d,0x31,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x29,0x29,0x29,0x3b,0x61,0x2d,0x2d,0x29,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x4d,0x69,0x73,0x73,0x65,0x64,0x20,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x22,0x2c,0x6e,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x3f,0x6e,0x5b,0x33,0x5d,0x2b,0x31,0x3a,0x6e,0x5b,0x32,0x5d,0x29,0x7d,0x7d,0x3b,0x4b,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x59,0x63,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4a,0x63,0x3d,0x78,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x65,0x70,0x3d,0x78,0x28,0x28,0x42,0x33,0x2c,0x5a,0x63,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x47,0x78,0x3d,0x22,0x75,0x73,0x65,0x61,0x6e,0x64,0x6f,0x6d,0x2d,0x32,0x36,0x54,0x31,0x39,0x38,0x33,0x34,0x30,0x50,0x58,0x37,0x35,0x70,0x78,0x4a,0x41,0x43,0x4b,0x56,0x45,0x52,0x59,0x4d,0x49,0x4e,0x44,0x42,0x55,0x53,0x48,0x57,0x4f,0x4c,0x46,0x5f,0x47,0x51,0x5a,0x62,0x66,0x67,0x68,0x6a,0x6b,0x6c,0x71,0x76,0x77,0x79,0x7a,0x72,0x69,0x63,0x74,0x22,0x2c,0x51,0x78,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x32,0x31,0x29,0x3d,0x3e,0x28,0x74,0x3d,0x65,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x22,0x22,0x2c,0x6e,0x3d,0x74,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6e,0x2d,0x2d,0x3b,0x29,0x69,0x2b,0x3d,0x72,0x5b,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x2a,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7c,0x30,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x2c,0x59,0x78,0x3d,0x28,0x72,0x3d,0x32,0x31,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x22,0x22,0x2c,0x74,0x3d,0x72,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x2d,0x2d,0x3b,0x29,0x65,0x2b,0x3d,0x47,0x78,0x5b,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x2a,0x36,0x34,0x7c,0x30,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x3b,0x5a,0x63,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x6e,0x61,0x6e,0x6f,0x69,0x64,0x3a,0x59,0x78,0x2c,0x63,0x75,0x73,0x74,0x6f,0x6d,0x41,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x3a,0x51,0x78,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x61,0x3d,0x78,0x28,0x28,0x46,0x33,0x2c,0x74,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x74,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x43,0x6e,0x3d,0x78,0x28,0x28,0x6a,0x33,0x2c,0x73,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x7b,0x53,0x6f,0x75,0x72,0x63,0x65,0x4d,0x61,0x70,0x43,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x3a,0x4b,0x78,0x2c,0x53,0x6f,0x75,0x72,0x63,0x65,0x4d,0x61,0x70,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x3a,0x58,0x78,0x7d,0x3d,0x4a,0x63,0x28,0x29,0x2c,0x7b,0x66,0x69,0x6c,0x65,0x55,0x52,0x4c,0x54,0x6f,0x50,0x61,0x74,0x68,0x3a,0x72,0x70,0x2c,0x70,0x61,0x74,0x68,0x54,0x6f,0x46,0x69,0x6c,0x65,0x55,0x52,0x4c,0x3a,0x41,0x6e,0x7d,0x3d,0x28,0x61,0x61,0x28,0x29,0x2c,0x61,0x63,0x29,0x2c,0x7b,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x3a,0x76,0x61,0x2c,0x69,0x73,0x41,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3a,0x78,0x61,0x7d,0x3d,0x28,0x65,0x74,0x28,0x29,0x2c,0x55,0x72,0x29,0x2c,0x7b,0x6e,0x61,0x6e,0x6f,0x69,0x64,0x3a,0x4a,0x78,0x7d,0x3d,0x65,0x70,0x28,0x29,0x2c,0x6b,0x61,0x3d,0x6f,0x61,0x28,0x29,0x2c,0x69,0x70,0x3d,0x6e,0x6e,0x28,0x29,0x2c,0x5a,0x78,0x3d,0x77,0x61,0x28,0x29,0x2c,0x53,0x61,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x66,0x72,0x6f,0x6d,0x4f,0x66,0x66,0x73,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x22,0x29,0x2c,0x65,0x31,0x3d,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x4b,0x78,0x26,0x26,0x58,0x78,0x29,0x2c,0x6e,0x70,0x3d,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x76,0x61,0x26,0x26,0x78,0x61,0x29,0x2c,0x4a,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x21,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x24,0x7b,0x65,0x7d,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x43,0x53,0x53,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x60,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x3d,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x5c,0x75,0x46,0x45,0x46,0x46,0x22,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x5c,0x75,0x46,0x46,0x46,0x45,0x22,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x42,0x4f,0x4d,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x42,0x4f,0x4d,0x3d,0x21,0x31,0x2c,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x26,0x26,0x28,0x21,0x6e,0x70,0x7c,0x7c,0x2f,0x5e,0x5c,0x77,0x2b,0x3a,0x5c,0x2f,0x5c,0x2f,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x29,0x7c,0x7c,0x78,0x61,0x28,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x29,0x3f,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x3a,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x76,0x61,0x28,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x29,0x29,0x2c,0x6e,0x70,0x26,0x26,0x65,0x31,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x5a,0x78,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x65,0x78,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x3d,0x69,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x28,0x29,0x2e,0x66,0x69,0x6c,0x65,0x3b,0x21,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x26,0x26,0x6e,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x6e,0x29,0x29,0x7d,0x7d,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x64,0x3d,0x22,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x63,0x73,0x73,0x20,0x22,0x2b,0x4a,0x78,0x28,0x36,0x29,0x2b,0x22,0x3e,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x29,0x7d,0x66,0x72,0x6f,0x6d,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x5b,0x53,0x61,0x5d,0x29,0x69,0x3d,0x74,0x68,0x69,0x73,0x5b,0x53,0x61,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x3b,0x69,0x3d,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x30,0x2c,0x6c,0x3d,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6f,0x3c,0x6c,0x3b,0x6f,0x2b,0x2b,0x29,0x69,0x5b,0x6f,0x5d,0x3d,0x73,0x2c,0x73,0x2b,0x3d,0x61,0x5b,0x6f,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x31,0x3b,0x74,0x68,0x69,0x73,0x5b,0x53,0x61,0x5d,0x3d,0x69,0x7d,0x74,0x3d,0x69,0x5b,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x30,0x3b,0x69,0x66,0x28,0x65,0x3e,0x3d,0x74,0x29,0x6e,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x32,0x2c,0x73,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6e,0x3c,0x61,0x3b,0x29,0x69,0x66,0x28,0x73,0x3d,0x6e,0x2b,0x28,0x61,0x2d,0x6e,0x3e,0x3e,0x31,0x29,0x2c,0x65,0x3c,0x69,0x5b,0x73,0x5d,0x29,0x61,0x3d,0x73,0x2d,0x31,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x3e,0x3d,0x69,0x5b,0x73,0x2b,0x31,0x5d,0x29,0x6e,0x3d,0x73,0x2b,0x31,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6e,0x3d,0x73,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x6e,0x2b,0x31,0x2c,0x63,0x6f,0x6c,0x3a,0x65,0x2d,0x69,0x5b,0x6e,0x5d,0x2b,0x31,0x7d,0x7d,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x2c,0x73,0x2c,0x6f,0x3b,0x69,0x66,0x28,0x74,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x2c,0x66,0x3d,0x69,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x74,0x3d,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x69,0x3d,0x64,0x2e,0x63,0x6f,0x6c,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x3d,0x63,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x69,0x3d,0x63,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x66,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x66,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x73,0x3d,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x6f,0x3d,0x64,0x2e,0x63,0x6f,0x6c,0x7d,0x65,0x6c,0x73,0x65,0x20,0x73,0x3d,0x66,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x6f,0x3d,0x66,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x74,0x29,0x3b,0x74,0x3d,0x63,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x69,0x3d,0x63,0x2e,0x63,0x6f,0x6c,0x7d,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x28,0x74,0x2c,0x69,0x2c,0x73,0x2c,0x6f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x3f,0x61,0x3d,0x6e,0x65,0x77,0x20,0x69,0x70,0x28,0x65,0x2c,0x6c,0x2e,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x6c,0x2e,0x6c,0x69,0x6e,0x65,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x6c,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6c,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2c,0x6c,0x2e,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x6c,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x6c,0x2e,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6c,0x2e,0x65,0x6e,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x2c,0x6c,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x6c,0x2e,0x66,0x69,0x6c,0x65,0x2c,0x6e,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x29,0x3a,0x61,0x3d,0x6e,0x65,0x77,0x20,0x69,0x70,0x28,0x65,0x2c,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x74,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x69,0x7d,0x2c,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x69,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x73,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6f,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x2c,0x6e,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x29,0x2c,0x61,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3d,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x69,0x2c,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3a,0x73,0x2c,0x65,0x6e,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6f,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x26,0x26,0x28,0x41,0x6e,0x26,0x26,0x28,0x61,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x75,0x72,0x6c,0x3d,0x41,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x2c,0x61,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x29,0x2c,0x61,0x7d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x28,0x29,0x2c,0x73,0x3d,0x61,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x46,0x6f,0x72,0x28,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x74,0x7d,0x29,0x3b,0x69,0x66,0x28,0x21,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x26,0x26,0x28,0x6f,0x3d,0x61,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x46,0x6f,0x72,0x28,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x69,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6e,0x7d,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3b,0x78,0x61,0x28,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3f,0x6c,0x3d,0x41,0x6e,0x28,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3a,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x55,0x52,0x4c,0x28,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x28,0x29,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x52,0x6f,0x6f,0x74,0x7c,0x7c,0x41,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x2e,0x6d,0x61,0x70,0x46,0x69,0x6c,0x65,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x7b,0x75,0x72,0x6c,0x3a,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x6c,0x69,0x6e,0x65,0x3a,0x73,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x73,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2c,0x65,0x6e,0x64,0x4c,0x69,0x6e,0x65,0x3a,0x6f,0x26,0x26,0x6f,0x2e,0x6c,0x69,0x6e,0x65,0x2c,0x65,0x6e,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x6f,0x26,0x26,0x6f,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x7d,0x3b,0x69,0x66,0x28,0x6c,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6c,0x65,0x3a,0x22,0x29,0x69,0x66,0x28,0x72,0x70,0x29,0x63,0x2e,0x66,0x69,0x6c,0x65,0x3d,0x72,0x70,0x28,0x6c,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x66,0x69,0x6c,0x65,0x3a,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x62,0x75,0x69,0x6c,0x64,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x61,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x46,0x6f,0x72,0x28,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x26,0x26,0x28,0x63,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x66,0x29,0x2c,0x63,0x7d,0x6d,0x61,0x70,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x2f,0x5e,0x5c,0x77,0x2b,0x3a,0x5c,0x2f,0x5c,0x2f,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x29,0x3f,0x65,0x3a,0x76,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x28,0x29,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x52,0x6f,0x6f,0x74,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x2e,0x72,0x6f,0x6f,0x74,0x7c,0x7c,0x22,0x2e,0x22,0x2c,0x65,0x29,0x7d,0x67,0x65,0x74,0x20,0x66,0x72,0x6f,0x6d,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6c,0x65,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x69,0x64,0x7d,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x7b,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x5b,0x22,0x68,0x61,0x73,0x42,0x4f,0x4d,0x22,0x2c,0x22,0x63,0x73,0x73,0x22,0x2c,0x22,0x66,0x69,0x6c,0x65,0x22,0x2c,0x22,0x69,0x64,0x22,0x5d,0x29,0x74,0x68,0x69,0x73,0x5b,0x74,0x5d,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x65,0x5b,0x74,0x5d,0x3d,0x74,0x68,0x69,0x73,0x5b,0x74,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x26,0x26,0x28,0x65,0x2e,0x6d,0x61,0x70,0x3d,0x7b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x7d,0x2c,0x65,0x2e,0x6d,0x61,0x70,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x26,0x26,0x28,0x65,0x2e,0x6d,0x61,0x70,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x29,0x2c,0x65,0x7d,0x7d,0x3b,0x73,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4a,0x72,0x3b,0x4a,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x4a,0x72,0x3b,0x6b,0x61,0x26,0x26,0x6b,0x61,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x49,0x6e,0x70,0x75,0x74,0x26,0x26,0x6b,0x61,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x49,0x6e,0x70,0x75,0x74,0x28,0x4a,0x72,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x45,0x6e,0x3d,0x78,0x28,0x28,0x7a,0x33,0x2c,0x61,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x74,0x31,0x3d,0x45,0x74,0x28,0x29,0x2c,0x72,0x31,0x3d,0x58,0x63,0x28,0x29,0x2c,0x69,0x31,0x3d,0x43,0x6e,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x69,0x31,0x28,0x72,0x2c,0x65,0x29,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x72,0x31,0x28,0x74,0x29,0x3b,0x74,0x72,0x79,0x7b,0x69,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x6e,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x61,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5f,0x6e,0x3b,0x5f,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x5f,0x6e,0x3b,0x74,0x31,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x61,0x72,0x73,0x65,0x28,0x5f,0x6e,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5f,0x61,0x3d,0x78,0x28,0x28,0x56,0x33,0x2c,0x66,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x7b,0x69,0x73,0x43,0x6c,0x65,0x61,0x6e,0x3a,0x74,0x74,0x2c,0x6d,0x79,0x3a,0x6e,0x31,0x7d,0x3d,0x73,0x6e,0x28,0x29,0x2c,0x73,0x31,0x3d,0x70,0x61,0x28,0x29,0x2c,0x61,0x31,0x3d,0x56,0x72,0x28,0x29,0x2c,0x6f,0x31,0x3d,0x45,0x74,0x28,0x29,0x2c,0x6c,0x31,0x3d,0x63,0x6e,0x28,0x29,0x2c,0x55,0x33,0x3d,0x6d,0x61,0x28,0x29,0x2c,0x6f,0x70,0x3d,0x68,0x6e,0x28,0x29,0x2c,0x75,0x31,0x3d,0x45,0x6e,0x28,0x29,0x2c,0x66,0x31,0x3d,0x74,0x72,0x28,0x29,0x2c,0x63,0x31,0x3d,0x7b,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x3a,0x22,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x72,0x6f,0x6f,0x74,0x3a,0x22,0x52,0x6f,0x6f,0x74,0x22,0x2c,0x61,0x74,0x72,0x75,0x6c,0x65,0x3a,0x22,0x41,0x74,0x52,0x75,0x6c,0x65,0x22,0x2c,0x72,0x75,0x6c,0x65,0x3a,0x22,0x52,0x75,0x6c,0x65,0x22,0x2c,0x64,0x65,0x63,0x6c,0x3a,0x22,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x22,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x7d,0x2c,0x70,0x31,0x3d,0x7b,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x21,0x30,0x2c,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x3a,0x21,0x30,0x2c,0x4f,0x6e,0x63,0x65,0x3a,0x21,0x30,0x2c,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x3a,0x21,0x30,0x2c,0x52,0x6f,0x6f,0x74,0x3a,0x21,0x30,0x2c,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x21,0x30,0x2c,0x52,0x75,0x6c,0x65,0x3a,0x21,0x30,0x2c,0x41,0x74,0x52,0x75,0x6c,0x65,0x3a,0x21,0x30,0x2c,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x21,0x30,0x2c,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x2c,0x52,0x75,0x6c,0x65,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x2c,0x41,0x74,0x52,0x75,0x6c,0x65,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x2c,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x2c,0x52,0x6f,0x6f,0x74,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x2c,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x2c,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x3a,0x21,0x30,0x7d,0x2c,0x64,0x31,0x3d,0x7b,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x21,0x30,0x2c,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x3a,0x21,0x30,0x2c,0x4f,0x6e,0x63,0x65,0x3a,0x21,0x30,0x7d,0x2c,0x72,0x72,0x3d,0x30,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5a,0x72,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x74,0x68,0x65,0x6e,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x70,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x21,0x31,0x2c,0x74,0x3d,0x63,0x31,0x5b,0x72,0x2e,0x74,0x79,0x70,0x65,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x3f,0x65,0x3d,0x72,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x28,0x65,0x3d,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x2c,0x65,0x26,0x26,0x72,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x3f,0x5b,0x74,0x2c,0x74,0x2b,0x22,0x2d,0x22,0x2b,0x65,0x2c,0x72,0x72,0x2c,0x74,0x2b,0x22,0x45,0x78,0x69,0x74,0x22,0x2c,0x74,0x2b,0x22,0x45,0x78,0x69,0x74,0x2d,0x22,0x2b,0x65,0x5d,0x3a,0x65,0x3f,0x5b,0x74,0x2c,0x74,0x2b,0x22,0x2d,0x22,0x2b,0x65,0x2c,0x74,0x2b,0x22,0x45,0x78,0x69,0x74,0x22,0x2c,0x74,0x2b,0x22,0x45,0x78,0x69,0x74,0x2d,0x22,0x2b,0x65,0x5d,0x3a,0x72,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x3f,0x5b,0x74,0x2c,0x72,0x72,0x2c,0x74,0x2b,0x22,0x45,0x78,0x69,0x74,0x22,0x5d,0x3a,0x5b,0x74,0x2c,0x74,0x2b,0x22,0x45,0x78,0x69,0x74,0x22,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x3f,0x65,0x3d,0x5b,0x22,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x72,0x72,0x2c,0x22,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x45,0x78,0x69,0x74,0x22,0x5d,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3f,0x65,0x3d,0x5b,0x22,0x52,0x6f,0x6f,0x74,0x22,0x2c,0x72,0x72,0x2c,0x22,0x52,0x6f,0x6f,0x74,0x45,0x78,0x69,0x74,0x22,0x5d,0x3a,0x65,0x3d,0x6c,0x70,0x28,0x72,0x29,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x72,0x2c,0x65,0x76,0x65,0x6e,0x74,0x73,0x3a,0x65,0x2c,0x65,0x76,0x65,0x6e,0x74,0x49,0x6e,0x64,0x65,0x78,0x3a,0x30,0x2c,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x3a,0x5b,0x5d,0x2c,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x49,0x6e,0x64,0x65,0x78,0x3a,0x30,0x2c,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x3a,0x30,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x61,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x5b,0x74,0x74,0x5d,0x3d,0x21,0x31,0x2c,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x65,0x3d,0x3e,0x41,0x61,0x28,0x65,0x29,0x29,0x2c,0x72,0x7d,0x76,0x61,0x72,0x20,0x43,0x61,0x3d,0x7b,0x7d,0x2c,0x70,0x74,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x64,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x3d,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x7c,0x7c,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x29,0x6e,0x3d,0x41,0x61,0x28,0x74,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x70,0x74,0x7c,0x7c,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x6f,0x70,0x29,0x6e,0x3d,0x41,0x61,0x28,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x29,0x2c,0x74,0x2e,0x6d,0x61,0x70,0x26,0x26,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x6d,0x61,0x70,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x28,0x69,0x2e,0x6d,0x61,0x70,0x3d,0x7b,0x7d,0x29,0x2c,0x69,0x2e,0x6d,0x61,0x70,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x7c,0x7c,0x28,0x69,0x2e,0x6d,0x61,0x70,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3d,0x21,0x31,0x29,0x2c,0x69,0x2e,0x6d,0x61,0x70,0x2e,0x70,0x72,0x65,0x76,0x3d,0x74,0x2e,0x6d,0x61,0x70,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x75,0x31,0x3b,0x69,0x2e,0x73,0x79,0x6e,0x74,0x61,0x78,0x26,0x26,0x28,0x61,0x3d,0x69,0x2e,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x70,0x61,0x72,0x73,0x65,0x29,0x2c,0x69,0x2e,0x70,0x61,0x72,0x73,0x65,0x72,0x26,0x26,0x28,0x61,0x3d,0x69,0x2e,0x70,0x61,0x72,0x73,0x65,0x72,0x29,0x2c,0x61,0x2e,0x70,0x61,0x72,0x73,0x65,0x26,0x26,0x28,0x61,0x3d,0x61,0x2e,0x70,0x61,0x72,0x73,0x65,0x29,0x3b,0x74,0x72,0x79,0x7b,0x6e,0x3d,0x61,0x28,0x74,0x2c,0x69,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x73,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3d,0x73,0x7d,0x6e,0x26,0x26,0x21,0x6e,0x5b,0x6e,0x31,0x5d,0x26,0x26,0x6f,0x31,0x2e,0x72,0x65,0x62,0x75,0x69,0x6c,0x64,0x28,0x6e,0x29,0x7d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x6f,0x70,0x28,0x65,0x2c,0x6e,0x2c,0x69,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x3d,0x7b,0x2e,0x2e,0x2e,0x43,0x61,0x2c,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x3a,0x43,0x61,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x61,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x61,0x2e,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x3f,0x7b,0x2e,0x2e,0x2e,0x61,0x2c,0x2e,0x2e,0x2e,0x61,0x2e,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x7d,0x3a,0x61,0x29,0x7d,0x67,0x65,0x74,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x61,0x67,0x5d,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x4c,0x61,0x7a,0x79,0x52,0x65,0x73,0x75,0x6c,0x74,0x22,0x7d,0x67,0x65,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x7d,0x67,0x65,0x74,0x20,0x6f,0x70,0x74,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x70,0x74,0x73,0x7d,0x67,0x65,0x74,0x20,0x63,0x73,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x2e,0x63,0x73,0x73,0x7d,0x67,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x67,0x65,0x74,0x20,0x6d,0x61,0x70,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x2e,0x6d,0x61,0x70,0x7d,0x67,0x65,0x74,0x20,0x72,0x6f,0x6f,0x74,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x67,0x65,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x7d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x73,0x28,0x29,0x7d,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x7d,0x74,0x68,0x65,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7d,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x65,0x2c,0x65,0x29,0x7d,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3f,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x3f,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x3a,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6e,0x41,0x73,0x79,0x6e,0x63,0x28,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x29,0x7d,0x73,0x79,0x6e,0x63,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6e,0x4f,0x6e,0x52,0x6f,0x6f,0x74,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x5a,0x72,0x28,0x74,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x7d,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x56,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x21,0x65,0x5b,0x74,0x74,0x5d,0x3b,0x29,0x65,0x5b,0x74,0x74,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x53,0x79,0x6e,0x63,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x2e,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x29,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x73,0x69,0x74,0x53,0x79,0x6e,0x63,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x2e,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x2c,0x74,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x73,0x69,0x74,0x53,0x79,0x6e,0x63,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x2e,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x2c,0x65,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x7d,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x64,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x64,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x79,0x6e,0x63,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x70,0x74,0x73,0x2c,0x74,0x3d,0x61,0x31,0x3b,0x65,0x2e,0x73,0x79,0x6e,0x74,0x61,0x78,0x26,0x26,0x28,0x74,0x3d,0x65,0x2e,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x29,0x2c,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x72,0x26,0x26,0x28,0x74,0x3d,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x72,0x29,0x2c,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x73,0x31,0x28,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x70,0x74,0x73,0x29,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x73,0x73,0x3d,0x6e,0x5b,0x30,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6d,0x61,0x70,0x3d,0x6e,0x5b,0x31,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x7d,0x77,0x61,0x6c,0x6b,0x53,0x79,0x6e,0x63,0x28,0x65,0x29,0x7b,0x65,0x5b,0x74,0x74,0x5d,0x3d,0x21,0x30,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6c,0x70,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x29,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x72,0x72,0x29,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x65,0x2e,0x65,0x61,0x63,0x68,0x28,0x6e,0x3d,0x3e,0x7b,0x6e,0x5b,0x74,0x74,0x5d,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x53,0x79,0x6e,0x63,0x28,0x6e,0x29,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x5b,0x69,0x5d,0x3b,0x69,0x66,0x28,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x73,0x69,0x74,0x53,0x79,0x6e,0x63,0x28,0x6e,0x2c,0x65,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x7d,0x76,0x69,0x73,0x69,0x74,0x53,0x79,0x6e,0x63,0x28,0x65,0x2c,0x74,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x5d,0x6f,0x66,0x20,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x69,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3b,0x74,0x72,0x79,0x7b,0x61,0x3d,0x6e,0x28,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x73,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x73,0x2c,0x74,0x2e,0x70,0x72,0x6f,0x78,0x79,0x4f,0x66,0x29,0x7d,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x26,0x26,0x21,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x5a,0x72,0x28,0x61,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x7d,0x7d,0x72,0x75,0x6e,0x4f,0x6e,0x52,0x6f,0x6f,0x74,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x65,0x3b,0x74,0x72,0x79,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x65,0x2e,0x4f,0x6e,0x63,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x65,0x2e,0x4f,0x6e,0x63,0x65,0x28,0x69,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5a,0x72,0x28,0x74,0x5b,0x30,0x5d,0x29,0x3f,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x28,0x74,0x29,0x3a,0x74,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x4f,0x6e,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x74,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x74,0x29,0x7d,0x7d,0x67,0x65,0x74,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x73,0x65,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x63,0x73,0x73,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x63,0x62,0x29,0x20,0x74,0x6f,0x20,0x77,0x6f,0x72,0x6b,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x22,0x29,0x7d,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3b,0x74,0x72,0x79,0x7b,0x74,0x26,0x26,0x74,0x2e,0x61,0x64,0x64,0x54,0x6f,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3d,0x65,0x2c,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x43,0x73,0x73,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x22,0x26,0x26,0x21,0x65,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3f,0x28,0x65,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x69,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x2c,0x65,0x2e,0x73,0x65,0x74,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x29,0x29,0x3a,0x69,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x6e,0x29,0x7b,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x6e,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x61,0x73,0x79,0x6e,0x63,0x20,0x72,0x75,0x6e,0x41,0x73,0x79,0x6e,0x63,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x3b,0x65,0x3c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x65,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x5b,0x65,0x5d,0x2c,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6e,0x4f,0x6e,0x52,0x6f,0x6f,0x74,0x28,0x74,0x29,0x3b,0x69,0x66,0x28,0x5a,0x72,0x28,0x69,0x29,0x29,0x74,0x72,0x79,0x7b,0x61,0x77,0x61,0x69,0x74,0x20,0x69,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x6e,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x29,0x7d,0x7d,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x56,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x21,0x65,0x5b,0x74,0x74,0x5d,0x3b,0x29,0x7b,0x65,0x5b,0x74,0x74,0x5d,0x3d,0x21,0x30,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x75,0x70,0x28,0x65,0x29,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x73,0x69,0x74,0x54,0x69,0x63,0x6b,0x28,0x74,0x29,0x3b,0x69,0x66,0x28,0x5a,0x72,0x28,0x69,0x29,0x29,0x74,0x72,0x79,0x7b,0x61,0x77,0x61,0x69,0x74,0x20,0x69,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x6e,0x6f,0x64,0x65,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x2c,0x61,0x29,0x7d,0x7d,0x7d,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x2e,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x2e,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x74,0x3b,0x74,0x72,0x79,0x7b,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x69,0x28,0x61,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x29,0x3b,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x28,0x6e,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x69,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x6e,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x29,0x7d,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x29,0x7d,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x56,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x3d,0x7b,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x28,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x5b,0x69,0x5d,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x5b,0x69,0x5d,0x3d,0x5b,0x5d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x5b,0x69,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x74,0x2c,0x6e,0x5d,0x29,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x70,0x31,0x5b,0x69,0x5d,0x26,0x26,0x2f,0x5e,0x5b,0x41,0x2d,0x5a,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x24,0x7b,0x69,0x7d,0x20,0x69,0x6e,0x20,0x24,0x7b,0x74,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x7d,0x2e,0x20,0x54,0x72,0x79,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x28,0x24,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x7d,0x20,0x6e,0x6f,0x77,0x29,0x2e,0x60,0x29,0x3b,0x69,0x66,0x28,0x21,0x64,0x31,0x5b,0x69,0x5d,0x29,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x5b,0x69,0x5d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x69,0x6e,0x20,0x74,0x5b,0x69,0x5d,0x29,0x6e,0x3d,0x3d,0x3d,0x22,0x2a,0x22,0x3f,0x65,0x28,0x74,0x2c,0x69,0x2c,0x74,0x5b,0x69,0x5d,0x5b,0x6e,0x5d,0x29,0x3a,0x65,0x28,0x74,0x2c,0x69,0x2b,0x22,0x2d,0x22,0x2b,0x6e,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x74,0x5b,0x69,0x5d,0x5b,0x6e,0x5d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x5b,0x69,0x5d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x65,0x28,0x74,0x2c,0x69,0x2c,0x74,0x5b,0x69,0x5d,0x29,0x7d,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x7d,0x76,0x69,0x73,0x69,0x74,0x54,0x69,0x63,0x6b,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x69,0x2c,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x3a,0x6e,0x7d,0x3d,0x74,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x69,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x26,0x26,0x21,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7b,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x69,0x66,0x28,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x49,0x6e,0x64,0x65,0x78,0x3c,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x73,0x2c,0x6f,0x5d,0x3d,0x6e,0x5b,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x49,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x31,0x2c,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x49,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x3d,0x5b,0x5d,0x2c,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x49,0x6e,0x64,0x65,0x78,0x3d,0x30,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x61,0x73,0x74,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x73,0x3b,0x74,0x72,0x79,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x28,0x69,0x2e,0x74,0x6f,0x50,0x72,0x6f,0x78,0x79,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x6c,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x6c,0x2c,0x69,0x29,0x7d,0x7d,0x69,0x66,0x28,0x74,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x21,0x3d,0x3d,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x2c,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6f,0x3d,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x5d,0x3b,0x29,0x69,0x66,0x28,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x2b,0x3d,0x31,0x2c,0x21,0x6f,0x5b,0x74,0x74,0x5d,0x29,0x7b,0x6f,0x5b,0x74,0x74,0x5d,0x3d,0x21,0x30,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x75,0x70,0x28,0x6f,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x74,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x30,0x2c,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x69,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x7d,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x2e,0x65,0x76,0x65,0x6e,0x74,0x73,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x2e,0x65,0x76,0x65,0x6e,0x74,0x49,0x6e,0x64,0x65,0x78,0x3c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x61,0x5b,0x74,0x2e,0x65,0x76,0x65,0x6e,0x74,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x69,0x66,0x28,0x74,0x2e,0x65,0x76,0x65,0x6e,0x74,0x49,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x31,0x2c,0x73,0x3d,0x3d,0x3d,0x72,0x72,0x29,0x7b,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x69,0x5b,0x74,0x74,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x69,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x5b,0x73,0x5d,0x29,0x7b,0x74,0x2e,0x76,0x69,0x73,0x69,0x74,0x6f,0x72,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x5b,0x73,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x7d,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x7d,0x7d,0x3b,0x70,0x74,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x6f,0x73,0x74,0x63,0x73,0x73,0x3d,0x72,0x3d,0x3e,0x7b,0x43,0x61,0x3d,0x72,0x7d,0x3b,0x66,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x70,0x74,0x3b,0x70,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x70,0x74,0x3b,0x66,0x31,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x61,0x7a,0x79,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x70,0x74,0x29,0x3b,0x6c,0x31,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x61,0x7a,0x79,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x70,0x74,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x70,0x3d,0x78,0x28,0x28,0x57,0x33,0x2c,0x63,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x68,0x31,0x3d,0x70,0x61,0x28,0x29,0x2c,0x6d,0x31,0x3d,0x56,0x72,0x28,0x29,0x2c,0x48,0x33,0x3d,0x6d,0x61,0x28,0x29,0x2c,0x67,0x31,0x3d,0x45,0x6e,0x28,0x29,0x2c,0x79,0x31,0x3d,0x68,0x6e,0x28,0x29,0x2c,0x4f,0x6e,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x74,0x3d,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x64,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x73,0x73,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x70,0x74,0x73,0x3d,0x69,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6d,0x61,0x70,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x2c,0x61,0x3d,0x6d,0x31,0x3b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x79,0x31,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x2c,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x70,0x74,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x73,0x73,0x3d,0x74,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x3b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x22,0x72,0x6f,0x6f,0x74,0x22,0x2c,0x7b,0x67,0x65,0x74,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x6e,0x65,0x77,0x20,0x68,0x31,0x28,0x61,0x2c,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x70,0x74,0x73,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x6f,0x2e,0x69,0x73,0x4d,0x61,0x70,0x28,0x29,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x6c,0x2c,0x63,0x5d,0x3d,0x6f,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x6c,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x73,0x73,0x3d,0x6c,0x29,0x2c,0x63,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6d,0x61,0x70,0x3d,0x63,0x29,0x7d,0x7d,0x67,0x65,0x74,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x61,0x67,0x5d,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x4e,0x6f,0x57,0x6f,0x72,0x6b,0x52,0x65,0x73,0x75,0x6c,0x74,0x22,0x7d,0x67,0x65,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x7d,0x67,0x65,0x74,0x20,0x6f,0x70,0x74,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6f,0x70,0x74,0x73,0x7d,0x67,0x65,0x74,0x20,0x63,0x73,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x73,0x73,0x7d,0x67,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x63,0x73,0x73,0x7d,0x67,0x65,0x74,0x20,0x6d,0x61,0x70,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6d,0x61,0x70,0x7d,0x67,0x65,0x74,0x20,0x72,0x6f,0x6f,0x74,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x3b,0x6c,0x65,0x74,0x20,0x65,0x2c,0x74,0x3d,0x67,0x31,0x3b,0x74,0x72,0x79,0x7b,0x65,0x3d,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x73,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x70,0x74,0x73,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x69,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3d,0x69,0x7d,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x3d,0x65,0x2c,0x65,0x7d,0x67,0x65,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x73,0x73,0x7d,0x74,0x68,0x65,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7d,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x65,0x2c,0x65,0x29,0x7d,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3f,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x3a,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x7d,0x73,0x79,0x6e,0x63,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x7d,0x7d,0x3b,0x63,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4f,0x6e,0x3b,0x4f,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x4f,0x6e,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x68,0x70,0x3d,0x78,0x28,0x28,0x47,0x33,0x2c,0x64,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x62,0x31,0x3d,0x70,0x70,0x28,0x29,0x2c,0x77,0x31,0x3d,0x5f,0x61,0x28,0x29,0x2c,0x76,0x31,0x3d,0x63,0x6e,0x28,0x29,0x2c,0x78,0x31,0x3d,0x74,0x72,0x28,0x29,0x2c,0x69,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x3d,0x5b,0x5d,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22,0x38,0x2e,0x34,0x2e,0x32,0x34,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7d,0x75,0x73,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5b,0x65,0x5d,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x72,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x72,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x73,0x79,0x6e,0x74,0x61,0x78,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x6e,0x65,0x77,0x20,0x62,0x31,0x28,0x74,0x68,0x69,0x73,0x2c,0x65,0x2c,0x74,0x29,0x3a,0x6e,0x65,0x77,0x20,0x77,0x31,0x28,0x74,0x68,0x69,0x73,0x2c,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x66,0x28,0x69,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x69,0x3d,0x69,0x28,0x29,0x3a,0x69,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x29,0x74,0x3d,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x69,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x69,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x29,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x28,0x69,0x2e,0x70,0x61,0x72,0x73,0x65,0x7c,0x7c,0x69,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x29,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x69,0x2b,0x22,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x7d,0x3b,0x64,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x69,0x72,0x3b,0x69,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x69,0x72,0x3b,0x78,0x31,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x69,0x72,0x29,0x3b,0x76,0x31,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x28,0x69,0x72,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x67,0x70,0x3d,0x78,0x28,0x28,0x51,0x33,0x2c,0x6d,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6b,0x31,0x3d,0x57,0x72,0x28,0x29,0x2c,0x53,0x31,0x3d,0x77,0x61,0x28,0x29,0x2c,0x41,0x31,0x3d,0x47,0x72,0x28,0x29,0x2c,0x43,0x31,0x3d,0x6b,0x6e,0x28,0x29,0x2c,0x5f,0x31,0x3d,0x43,0x6e,0x28,0x29,0x2c,0x45,0x31,0x3d,0x74,0x72,0x28,0x29,0x2c,0x4f,0x31,0x3d,0x53,0x6e,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x69,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x65,0x69,0x28,0x6e,0x29,0x29,0x3b,0x6c,0x65,0x74,0x7b,0x69,0x6e,0x70,0x75,0x74,0x73,0x3a,0x74,0x2c,0x2e,0x2e,0x2e,0x69,0x7d,0x3d,0x72,0x3b,0x69,0x66,0x28,0x74,0x29,0x7b,0x65,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x7b,0x2e,0x2e,0x2e,0x6e,0x2c,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3a,0x5f,0x31,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x7d,0x3b,0x61,0x2e,0x6d,0x61,0x70,0x26,0x26,0x28,0x61,0x2e,0x6d,0x61,0x70,0x3d,0x7b,0x2e,0x2e,0x2e,0x61,0x2e,0x6d,0x61,0x70,0x2c,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3a,0x53,0x31,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x7d,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x7d,0x7d,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x65,0x69,0x28,0x6e,0x2c,0x65,0x29,0x29,0x29,0x2c,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x69,0x6e,0x70,0x75,0x74,0x49,0x64,0x3a,0x6e,0x2c,0x2e,0x2e,0x2e,0x61,0x7d,0x3d,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x61,0x2c,0x6e,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x69,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3d,0x65,0x5b,0x6e,0x5d,0x29,0x7d,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x45,0x31,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x6b,0x31,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x4f,0x31,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x41,0x31,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x43,0x31,0x28,0x69,0x29,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x22,0x2b,0x72,0x2e,0x74,0x79,0x70,0x65,0x29,0x7d,0x6d,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x65,0x69,0x3b,0x65,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x65,0x69,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x24,0x65,0x3d,0x78,0x28,0x28,0x59,0x33,0x2c,0x53,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x54,0x31,0x3d,0x6e,0x6e,0x28,0x29,0x2c,0x79,0x70,0x3d,0x57,0x72,0x28,0x29,0x2c,0x52,0x31,0x3d,0x5f,0x61,0x28,0x29,0x2c,0x50,0x31,0x3d,0x45,0x74,0x28,0x29,0x2c,0x45,0x61,0x3d,0x68,0x70,0x28,0x29,0x2c,0x49,0x31,0x3d,0x56,0x72,0x28,0x29,0x2c,0x44,0x31,0x3d,0x67,0x70,0x28,0x29,0x2c,0x62,0x70,0x3d,0x63,0x6e,0x28,0x29,0x2c,0x71,0x31,0x3d,0x67,0x61,0x28,0x29,0x2c,0x77,0x70,0x3d,0x47,0x72,0x28,0x29,0x2c,0x76,0x70,0x3d,0x6b,0x6e,0x28,0x29,0x2c,0x24,0x31,0x3d,0x68,0x6e,0x28,0x29,0x2c,0x4c,0x31,0x3d,0x43,0x6e,0x28,0x29,0x2c,0x4d,0x31,0x3d,0x45,0x6e,0x28,0x29,0x2c,0x4e,0x31,0x3d,0x62,0x61,0x28,0x29,0x2c,0x78,0x70,0x3d,0x53,0x6e,0x28,0x29,0x2c,0x6b,0x70,0x3d,0x74,0x72,0x28,0x29,0x2c,0x42,0x31,0x3d,0x48,0x72,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5a,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x5b,0x30,0x5d,0x29,0x26,0x26,0x28,0x72,0x3d,0x72,0x5b,0x30,0x5d,0x29,0x2c,0x6e,0x65,0x77,0x20,0x45,0x61,0x28,0x72,0x29,0x7d,0x5a,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x21,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x28,0x2e,0x2e,0x2e,0x73,0x29,0x7b,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x26,0x26,0x21,0x69,0x26,0x26,0x28,0x69,0x3d,0x21,0x30,0x2c,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x65,0x2b,0x60,0x3a,0x20,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x77,0x61,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2e,0x20,0x4d,0x69,0x67,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x67,0x75,0x69,0x64,0x65,0x3a,0x0a,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x65,0x76,0x69,0x6c,0x6d,0x61,0x72,0x74,0x69,0x61,0x6e,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x63,0x68,0x72,0x6f,0x6e,0x69,0x63,0x6c,0x65,0x73,0x2f,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x2d,0x38,0x2d,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2d,0x6d,0x69,0x67,0x72,0x61,0x74,0x69,0x6f,0x6e,0x60,0x29,0x2c,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x4c,0x41,0x4e,0x47,0x26,0x26,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x4c,0x41,0x4e,0x47,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x63,0x6e,0x22,0x29,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x65,0x2b,0x60,0x3a,0x20,0x5c,0x75,0x39,0x31,0x43,0x43,0x5c,0x75,0x39,0x37,0x36,0x32,0x20,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x5c,0x75,0x38,0x38,0x41,0x42,0x5c,0x75,0x35,0x46,0x30,0x33,0x5c,0x75,0x37,0x35,0x32,0x38,0x2e,0x20,0x5c,0x75,0x38,0x46,0x43,0x31,0x5c,0x75,0x37,0x39,0x46,0x42,0x5c,0x75,0x36,0x33,0x30,0x37,0x5c,0x75,0x35,0x33,0x35,0x37,0x3a,0x0a,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x63,0x74,0x65,0x63,0x68,0x2e,0x63,0x6f,0x6d,0x2f,0x74,0x6f,0x70,0x69,0x63,0x2f,0x32,0x32,0x32,0x36,0x60,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x28,0x2e,0x2e,0x2e,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3d,0x65,0x2c,0x6f,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x45,0x61,0x28,0x29,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x6f,0x7d,0x6c,0x65,0x74,0x20,0x61,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6e,0x2c,0x22,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x22,0x2c,0x7b,0x67,0x65,0x74,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7c,0x7c,0x28,0x61,0x3d,0x6e,0x28,0x29,0x29,0x2c,0x61,0x7d,0x7d,0x29,0x2c,0x6e,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x2c,0x6f,0x2c,0x6c,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5a,0x28,0x5b,0x6e,0x28,0x6c,0x29,0x5d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x73,0x2c,0x6f,0x29,0x7d,0x2c,0x6e,0x7d,0x3b,0x5a,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x3d,0x49,0x31,0x3b,0x5a,0x2e,0x70,0x61,0x72,0x73,0x65,0x3d,0x4d,0x31,0x3b,0x5a,0x2e,0x66,0x72,0x6f,0x6d,0x4a,0x53,0x4f,0x4e,0x3d,0x44,0x31,0x3b,0x5a,0x2e,0x6c,0x69,0x73,0x74,0x3d,0x4e,0x31,0x3b,0x5a,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x72,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x77,0x70,0x28,0x72,0x29,0x3b,0x5a,0x2e,0x61,0x74,0x52,0x75,0x6c,0x65,0x3d,0x72,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x76,0x70,0x28,0x72,0x29,0x3b,0x5a,0x2e,0x64,0x65,0x63,0x6c,0x3d,0x72,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x79,0x70,0x28,0x72,0x29,0x3b,0x5a,0x2e,0x72,0x75,0x6c,0x65,0x3d,0x72,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x78,0x70,0x28,0x72,0x29,0x3b,0x5a,0x2e,0x72,0x6f,0x6f,0x74,0x3d,0x72,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x6b,0x70,0x28,0x72,0x29,0x3b,0x5a,0x2e,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x3d,0x72,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x62,0x70,0x28,0x72,0x29,0x3b,0x5a,0x2e,0x43,0x73,0x73,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x3d,0x54,0x31,0x3b,0x5a,0x2e,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3d,0x79,0x70,0x3b,0x5a,0x2e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3d,0x50,0x31,0x3b,0x5a,0x2e,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x3d,0x45,0x61,0x3b,0x5a,0x2e,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x3d,0x62,0x70,0x3b,0x5a,0x2e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x77,0x70,0x3b,0x5a,0x2e,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x3d,0x71,0x31,0x3b,0x5a,0x2e,0x41,0x74,0x52,0x75,0x6c,0x65,0x3d,0x76,0x70,0x3b,0x5a,0x2e,0x52,0x65,0x73,0x75,0x6c,0x74,0x3d,0x24,0x31,0x3b,0x5a,0x2e,0x49,0x6e,0x70,0x75,0x74,0x3d,0x4c,0x31,0x3b,0x5a,0x2e,0x52,0x75,0x6c,0x65,0x3d,0x78,0x70,0x3b,0x5a,0x2e,0x52,0x6f,0x6f,0x74,0x3d,0x6b,0x70,0x3b,0x5a,0x2e,0x4e,0x6f,0x64,0x65,0x3d,0x42,0x31,0x3b,0x52,0x31,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x50,0x6f,0x73,0x74,0x63,0x73,0x73,0x28,0x5a,0x29,0x3b,0x53,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5a,0x3b,0x5a,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x5a,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x72,0x65,0x2c,0x65,0x65,0x2c,0x4b,0x33,0x2c,0x58,0x33,0x2c,0x4a,0x33,0x2c,0x5a,0x33,0x2c,0x65,0x49,0x2c,0x74,0x49,0x2c,0x72,0x49,0x2c,0x69,0x49,0x2c,0x6e,0x49,0x2c,0x73,0x49,0x2c,0x61,0x49,0x2c,0x6f,0x49,0x2c,0x6c,0x49,0x2c,0x75,0x49,0x2c,0x66,0x49,0x2c,0x63,0x49,0x2c,0x70,0x49,0x2c,0x64,0x49,0x2c,0x68,0x49,0x2c,0x6d,0x49,0x2c,0x67,0x49,0x2c,0x79,0x49,0x2c,0x62,0x49,0x2c,0x77,0x49,0x2c,0x4f,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x72,0x65,0x3d,0x70,0x65,0x28,0x24,0x65,0x28,0x29,0x29,0x2c,0x65,0x65,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x4b,0x33,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x2c,0x58,0x33,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x4a,0x53,0x4f,0x4e,0x2c,0x4a,0x33,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2c,0x5a,0x33,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x2c,0x65,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x6c,0x69,0x73,0x74,0x2c,0x74,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2c,0x72,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x69,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x61,0x74,0x52,0x75,0x6c,0x65,0x2c,0x6e,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x72,0x75,0x6c,0x65,0x2c,0x73,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x64,0x65,0x63,0x6c,0x2c,0x61,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x2c,0x6f,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x43,0x73,0x73,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x2c,0x6c,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x75,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x66,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x2c,0x63,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x44,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2c,0x70,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x64,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2c,0x68,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x41,0x74,0x52,0x75,0x6c,0x65,0x2c,0x6d,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x67,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x49,0x6e,0x70,0x75,0x74,0x2c,0x79,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x52,0x75,0x6c,0x65,0x2c,0x62,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x52,0x6f,0x6f,0x74,0x2c,0x77,0x49,0x3d,0x72,0x65,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x4e,0x6f,0x64,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x61,0x3d,0x78,0x28,0x28,0x78,0x49,0x2c,0x41,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x41,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x66,0x6f,0x72,0x28,0x65,0x3d,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x3f,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2e,0x22,0x29,0x3a,0x65,0x2c,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x72,0x3d,0x72,0x3f,0x72,0x5b,0x65,0x5b,0x69,0x5d,0x5d,0x3a,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x6e,0x3f,0x74,0x3a,0x72,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x52,0x6e,0x3d,0x78,0x28,0x28,0x54,0x6e,0x2c,0x43,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x54,0x6e,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x54,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x7a,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x31,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x65,0x3d,0x72,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x74,0x3d,0x22,0x22,0x2c,0x69,0x3d,0x21,0x31,0x2c,0x6e,0x3d,0x30,0x3b,0x6e,0x3c,0x36,0x26,0x26,0x65,0x5b,0x6e,0x5d,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x6e,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x61,0x3e,0x3d,0x39,0x37,0x26,0x26,0x61,0x3c,0x3d,0x31,0x30,0x32,0x7c,0x7c,0x61,0x3e,0x3d,0x34,0x38,0x26,0x26,0x61,0x3c,0x3d,0x35,0x37,0x3b,0x69,0x66,0x28,0x69,0x3d,0x61,0x3d,0x3d,0x3d,0x33,0x32,0x2c,0x21,0x73,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x74,0x2b,0x3d,0x65,0x5b,0x6e,0x5d,0x7d,0x69,0x66,0x28,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x30,0x29,0x7b,0x76,0x61,0x72,0x20,0x6f,0x3d,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x74,0x2c,0x31,0x36,0x29,0x2c,0x6c,0x3d,0x6f,0x3e,0x3d,0x35,0x35,0x32,0x39,0x36,0x26,0x26,0x6f,0x3c,0x3d,0x35,0x37,0x33,0x34,0x33,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x7c,0x7c,0x6f,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x6f,0x3e,0x31,0x31,0x31,0x34,0x31,0x31,0x31,0x3f,0x5b,0x22,0x5c,0x75,0x46,0x46,0x46,0x44,0x22,0x2c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x28,0x69,0x3f,0x31,0x3a,0x30,0x29,0x5d,0x3a,0x5b,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x28,0x6f,0x29,0x2c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x28,0x69,0x3f,0x31,0x3a,0x30,0x29,0x5d,0x7d,0x7d,0x76,0x61,0x72,0x20,0x6a,0x31,0x3d,0x2f,0x5c,0x5c,0x2f,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x31,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x6a,0x31,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x21,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x22,0x22,0x2c,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x69,0x66,0x28,0x72,0x5b,0x69,0x5d,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x46,0x31,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x2b,0x31,0x2c,0x69,0x2b,0x37,0x29,0x29,0x3b,0x69,0x66,0x28,0x6e,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x74,0x2b,0x3d,0x6e,0x5b,0x30,0x5d,0x2c,0x69,0x2b,0x3d,0x6e,0x5b,0x31,0x5d,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x72,0x5b,0x69,0x2b,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x29,0x7b,0x74,0x2b,0x3d,0x22,0x5c,0x5c,0x22,0x2c,0x69,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x69,0x2b,0x31,0x26,0x26,0x28,0x74,0x2b,0x3d,0x72,0x5b,0x69,0x5d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x74,0x2b,0x3d,0x72,0x5b,0x69,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x43,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x54,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x45,0x70,0x3d,0x78,0x28,0x28,0x50,0x6e,0x2c,0x5f,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x50,0x6e,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x50,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x55,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x31,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x65,0x3d,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x3e,0x31,0x3f,0x65,0x2d,0x31,0x3a,0x30,0x29,0x2c,0x69,0x3d,0x31,0x3b,0x69,0x3c,0x65,0x3b,0x69,0x2b,0x2b,0x29,0x74,0x5b,0x69,0x2d,0x31,0x5d,0x3d,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3b,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x3b,0x69,0x66,0x28,0x21,0x72,0x5b,0x6e,0x5d,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x72,0x3d,0x72,0x5b,0x6e,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x5f,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x50,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x54,0x70,0x3d,0x78,0x28,0x28,0x49,0x6e,0x2c,0x4f,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x49,0x6e,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x49,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x56,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x31,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x65,0x3d,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x3e,0x31,0x3f,0x65,0x2d,0x31,0x3a,0x30,0x29,0x2c,0x69,0x3d,0x31,0x3b,0x69,0x3c,0x65,0x3b,0x69,0x2b,0x2b,0x29,0x74,0x5b,0x69,0x2d,0x31,0x5d,0x3d,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3b,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x3b,0x72,0x5b,0x6e,0x5d,0x7c,0x7c,0x28,0x72,0x5b,0x6e,0x5d,0x3d,0x7b,0x7d,0x29,0x2c,0x72,0x3d,0x72,0x5b,0x6e,0x5d,0x7d,0x7d,0x4f,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x49,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x70,0x3d,0x78,0x28,0x28,0x44,0x6e,0x2c,0x52,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x44,0x6e,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x44,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x48,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x31,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x65,0x3d,0x22,0x22,0x2c,0x74,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2f,0x2a,0x22,0x29,0x2c,0x69,0x3d,0x30,0x3b,0x74,0x3e,0x3d,0x30,0x3b,0x29,0x7b,0x65,0x3d,0x65,0x2b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x74,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2a,0x2f,0x22,0x2c,0x74,0x2b,0x32,0x29,0x3b,0x69,0x66,0x28,0x6e,0x3c,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x69,0x3d,0x6e,0x2b,0x32,0x2c,0x74,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2f,0x2a,0x22,0x2c,0x69,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x65,0x2b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x29,0x2c,0x65,0x7d,0x52,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x44,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x69,0x3d,0x78,0x28,0x72,0x74,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x72,0x74,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x72,0x74,0x2e,0x75,0x6e,0x65,0x73,0x63,0x3d,0x72,0x74,0x2e,0x73,0x74,0x72,0x69,0x70,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x3d,0x72,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x3d,0x72,0x74,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x57,0x31,0x3d,0x71,0x6e,0x28,0x52,0x6e,0x28,0x29,0x29,0x3b,0x72,0x74,0x2e,0x75,0x6e,0x65,0x73,0x63,0x3d,0x57,0x31,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x76,0x61,0x72,0x20,0x47,0x31,0x3d,0x71,0x6e,0x28,0x45,0x70,0x28,0x29,0x29,0x3b,0x72,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x3d,0x47,0x31,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x76,0x61,0x72,0x20,0x51,0x31,0x3d,0x71,0x6e,0x28,0x54,0x70,0x28,0x29,0x29,0x3b,0x72,0x74,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3d,0x51,0x31,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x76,0x61,0x72,0x20,0x59,0x31,0x3d,0x71,0x6e,0x28,0x50,0x70,0x28,0x29,0x29,0x3b,0x72,0x74,0x2e,0x73,0x74,0x72,0x69,0x70,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x3d,0x59,0x31,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x64,0x74,0x3d,0x78,0x28,0x28,0x72,0x69,0x2c,0x71,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x72,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x72,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x49,0x70,0x3d,0x74,0x69,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x70,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x31,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x44,0x70,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x44,0x70,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x76,0x61,0x72,0x20,0x58,0x31,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x7c,0x7c,0x65,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6e,0x20,0x69,0x6e,0x20,0x65,0x29,0x69,0x66,0x28,0x21,0x21,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6e,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x65,0x5b,0x6e,0x5d,0x2c,0x73,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x61,0x3b,0x6e,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x26,0x26,0x73,0x3d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x74,0x26,0x26,0x28,0x69,0x5b,0x6e,0x5d,0x3d,0x74,0x29,0x3a,0x61,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x41,0x72,0x72,0x61,0x79,0x3f,0x69,0x5b,0x6e,0x5d,0x3d,0x61,0x2e,0x6d,0x61,0x70,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x28,0x6f,0x2c,0x69,0x29,0x7d,0x29,0x3a,0x69,0x5b,0x6e,0x5d,0x3d,0x72,0x28,0x61,0x2c,0x69,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x2c,0x4a,0x31,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x74,0x29,0x7b,0x74,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x74,0x3d,0x7b,0x7d,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x7c,0x7c,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x7c,0x7c,0x22,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x7d,0x76,0x61,0x72,0x20,0x65,0x3d,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x74,0x68,0x69,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x74,0x68,0x69,0x73,0x7d,0x2c,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x69,0x6e,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x2c,0x65,0x2e,0x6e,0x65,0x78,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x74,0x68,0x69,0x73,0x29,0x2b,0x31,0x29,0x7d,0x2c,0x65,0x2e,0x70,0x72,0x65,0x76,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x74,0x68,0x69,0x73,0x29,0x2d,0x31,0x29,0x7d,0x2c,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x58,0x31,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x61,0x20,0x69,0x6e,0x20,0x69,0x29,0x6e,0x5b,0x61,0x5d,0x3d,0x69,0x5b,0x61,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x2c,0x65,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x54,0x6f,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x41,0x6e,0x64,0x45,0x73,0x63,0x61,0x70,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x5b,0x69,0x5d,0x2c,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x69,0x5d,0x3b,0x74,0x68,0x69,0x73,0x5b,0x69,0x5d,0x3d,0x73,0x2b,0x6e,0x2c,0x6f,0x7c,0x7c,0x61,0x21,0x3d,0x3d,0x6e,0x3f,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x69,0x5d,0x3d,0x28,0x6f,0x7c,0x7c,0x73,0x29,0x2b,0x61,0x3a,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x69,0x5d,0x7d,0x2c,0x65,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x41,0x6e,0x64,0x45,0x73,0x63,0x61,0x70,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x5b,0x69,0x5d,0x3d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x69,0x5d,0x3d,0x61,0x7d,0x2c,0x65,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x57,0x69,0x74,0x68,0x6f,0x75,0x74,0x45,0x73,0x63,0x61,0x70,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x5b,0x69,0x5d,0x3d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x69,0x5d,0x7d,0x2c,0x65,0x2e,0x69,0x73,0x41,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x3e,0x69,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x3c,0x69,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6c,0x69,0x6e,0x65,0x3d,0x3d,0x3d,0x69,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3e,0x6e,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x6c,0x69,0x6e,0x65,0x3d,0x3d,0x3d,0x69,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3c,0x6e,0x29,0x7d,0x2c,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x69,0x5d,0x7c,0x7c,0x74,0x68,0x69,0x73,0x5b,0x69,0x5d,0x7d,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x29,0x7d,0x2c,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x7d,0x2c,0x4b,0x31,0x28,0x72,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x29,0x2c,0x69,0x7c,0x7c,0x22,0x22,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x28,0x30,0x2c,0x49,0x70,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x74,0x68,0x69,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x69,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x29,0x2c,0x69,0x7c,0x7c,0x22,0x22,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x28,0x30,0x2c,0x49,0x70,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x74,0x68,0x69,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x69,0x7d,0x7d,0x5d,0x29,0x2c,0x72,0x7d,0x28,0x29,0x3b,0x72,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x4a,0x31,0x3b,0x71,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x72,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x65,0x3d,0x78,0x28,0x69,0x65,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x69,0x65,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x69,0x65,0x2e,0x55,0x4e,0x49,0x56,0x45,0x52,0x53,0x41,0x4c,0x3d,0x69,0x65,0x2e,0x54,0x41,0x47,0x3d,0x69,0x65,0x2e,0x53,0x54,0x52,0x49,0x4e,0x47,0x3d,0x69,0x65,0x2e,0x53,0x45,0x4c,0x45,0x43,0x54,0x4f,0x52,0x3d,0x69,0x65,0x2e,0x52,0x4f,0x4f,0x54,0x3d,0x69,0x65,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x3d,0x69,0x65,0x2e,0x4e,0x45,0x53,0x54,0x49,0x4e,0x47,0x3d,0x69,0x65,0x2e,0x49,0x44,0x3d,0x69,0x65,0x2e,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x3d,0x69,0x65,0x2e,0x43,0x4f,0x4d,0x42,0x49,0x4e,0x41,0x54,0x4f,0x52,0x3d,0x69,0x65,0x2e,0x43,0x4c,0x41,0x53,0x53,0x3d,0x69,0x65,0x2e,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x5a,0x31,0x3d,0x22,0x74,0x61,0x67,0x22,0x3b,0x69,0x65,0x2e,0x54,0x41,0x47,0x3d,0x5a,0x31,0x3b,0x76,0x61,0x72,0x20,0x65,0x6b,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3b,0x69,0x65,0x2e,0x53,0x54,0x52,0x49,0x4e,0x47,0x3d,0x65,0x6b,0x3b,0x76,0x61,0x72,0x20,0x74,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x3b,0x69,0x65,0x2e,0x53,0x45,0x4c,0x45,0x43,0x54,0x4f,0x52,0x3d,0x74,0x6b,0x3b,0x76,0x61,0x72,0x20,0x72,0x6b,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3b,0x69,0x65,0x2e,0x52,0x4f,0x4f,0x54,0x3d,0x72,0x6b,0x3b,0x76,0x61,0x72,0x20,0x69,0x6b,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x3b,0x69,0x65,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x3d,0x69,0x6b,0x3b,0x76,0x61,0x72,0x20,0x6e,0x6b,0x3d,0x22,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x22,0x3b,0x69,0x65,0x2e,0x4e,0x45,0x53,0x54,0x49,0x4e,0x47,0x3d,0x6e,0x6b,0x3b,0x76,0x61,0x72,0x20,0x73,0x6b,0x3d,0x22,0x69,0x64,0x22,0x3b,0x69,0x65,0x2e,0x49,0x44,0x3d,0x73,0x6b,0x3b,0x76,0x61,0x72,0x20,0x61,0x6b,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3b,0x69,0x65,0x2e,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x3d,0x61,0x6b,0x3b,0x76,0x61,0x72,0x20,0x6f,0x6b,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x3b,0x69,0x65,0x2e,0x43,0x4f,0x4d,0x42,0x49,0x4e,0x41,0x54,0x4f,0x52,0x3d,0x6f,0x6b,0x3b,0x76,0x61,0x72,0x20,0x6c,0x6b,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x3b,0x69,0x65,0x2e,0x43,0x4c,0x41,0x53,0x53,0x3d,0x6c,0x6b,0x3b,0x76,0x61,0x72,0x20,0x75,0x6b,0x3d,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x3b,0x69,0x65,0x2e,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x3d,0x75,0x6b,0x3b,0x76,0x61,0x72,0x20,0x66,0x6b,0x3d,0x22,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x22,0x3b,0x69,0x65,0x2e,0x55,0x4e,0x49,0x56,0x45,0x52,0x53,0x41,0x4c,0x3d,0x66,0x6b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x24,0x6e,0x3d,0x78,0x28,0x28,0x69,0x69,0x2c,0x4e,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x69,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x69,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x63,0x6b,0x3d,0x64,0x6b,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x68,0x74,0x3d,0x70,0x6b,0x28,0x53,0x65,0x28,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x70,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x76,0x61,0x72,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x24,0x70,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x74,0x3a,0x65,0x7d,0x29,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x26,0x26,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x3b,0x76,0x61,0x72,0x20,0x74,0x3d,0x24,0x70,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x26,0x26,0x74,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x7b,0x7d,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x61,0x20,0x69,0x6e,0x20,0x72,0x29,0x69,0x66,0x28,0x61,0x21,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x2c,0x61,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x6e,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x28,0x72,0x2c,0x61,0x29,0x3a,0x6e,0x75,0x6c,0x6c,0x3b,0x73,0x26,0x26,0x28,0x73,0x2e,0x67,0x65,0x74,0x7c,0x7c,0x73,0x2e,0x73,0x65,0x74,0x29,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x69,0x2c,0x61,0x2c,0x73,0x29,0x3a,0x69,0x5b,0x61,0x5d,0x3d,0x72,0x5b,0x61,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x72,0x2c,0x74,0x26,0x26,0x74,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x69,0x29,0x2c,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x6b,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x72,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x7c,0x7c,0x72,0x5b,0x22,0x40,0x40,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x5d,0x3b,0x69,0x66,0x28,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x74,0x3d,0x74,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x29,0x29,0x2e,0x6e,0x65,0x78,0x74,0x2e,0x62,0x69,0x6e,0x64,0x28,0x74,0x29,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x7c,0x7c,0x28,0x74,0x3d,0x6d,0x6b,0x28,0x72,0x29,0x29,0x7c,0x7c,0x65,0x26,0x26,0x72,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x7b,0x74,0x26,0x26,0x28,0x72,0x3d,0x74,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3e,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x7b,0x64,0x6f,0x6e,0x65,0x3a,0x21,0x30,0x7d,0x3a,0x7b,0x64,0x6f,0x6e,0x65,0x3a,0x21,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x72,0x5b,0x69,0x2b,0x2b,0x5d,0x7d,0x7d,0x7d,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x61,0x74,0x74,0x65,0x6d,0x70,0x74,0x20,0x74,0x6f,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x20,0x6e,0x6f,0x6e,0x2d,0x69,0x74,0x65,0x72,0x61,0x62,0x6c,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x0a,0x49,0x6e,0x20,0x6f,0x72,0x64,0x65,0x72,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x69,0x74,0x65,0x72,0x61,0x62,0x6c,0x65,0x2c,0x20,0x6e,0x6f,0x6e,0x2d,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x20,0x6d,0x75,0x73,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x28,0x29,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2e,0x60,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x21,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4c,0x70,0x28,0x72,0x2c,0x65,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x38,0x2c,0x2d,0x31,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x72,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x26,0x26,0x28,0x74,0x3d,0x72,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x2c,0x74,0x3d,0x3d,0x3d,0x22,0x4d,0x61,0x70,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x53,0x65,0x74,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x41,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x22,0x7c,0x7c,0x2f,0x5e,0x28,0x3f,0x3a,0x55,0x69,0x7c,0x49,0x29,0x6e,0x74,0x28,0x3f,0x3a,0x38,0x7c,0x31,0x36,0x7c,0x33,0x32,0x29,0x28,0x3f,0x3a,0x43,0x6c,0x61,0x6d,0x70,0x65,0x64,0x29,0x3f,0x41,0x72,0x72,0x61,0x79,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4c,0x70,0x28,0x72,0x2c,0x65,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x70,0x28,0x72,0x2c,0x65,0x29,0x7b,0x28,0x65,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x65,0x3e,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x26,0x26,0x28,0x65,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x3b,0x74,0x3c,0x65,0x3b,0x74,0x2b,0x2b,0x29,0x69,0x5b,0x74,0x5d,0x3d,0x72,0x5b,0x74,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x70,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x6b,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x4d,0x70,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x4d,0x70,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x79,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x54,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x54,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x62,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x79,0x6b,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x69,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x6e,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x61,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x6e,0x5d,0x7d,0x2c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x6e,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x28,0x6e,0x29,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x6e,0x2c,0x31,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x2c,0x61,0x3e,0x3d,0x6e,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x73,0x5d,0x3d,0x61,0x2d,0x31,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x6c,0x6c,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6e,0x3d,0x68,0x6b,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x61,0x3b,0x21,0x28,0x61,0x3d,0x6e,0x28,0x29,0x29,0x2e,0x64,0x6f,0x6e,0x65,0x3b,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x65,0x6d,0x70,0x74,0x79,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x6c,0x6c,0x28,0x29,0x7d,0x2c,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x61,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x6e,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x73,0x2b,0x31,0x2c,0x30,0x2c,0x61,0x29,0x2c,0x61,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x3b,0x76,0x61,0x72,0x20,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6c,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6c,0x5d,0x2c,0x73,0x3c,0x3d,0x6f,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6c,0x5d,0x3d,0x6f,0x2b,0x31,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x61,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x6e,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x73,0x2c,0x30,0x2c,0x61,0x29,0x2c,0x61,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x74,0x68,0x69,0x73,0x3b,0x76,0x61,0x72,0x20,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6c,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x29,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6c,0x5d,0x2c,0x6f,0x3c,0x3d,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x6c,0x5d,0x3d,0x6f,0x2b,0x31,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x5f,0x66,0x69,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x41,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x29,0x7b,0x69,0x66,0x28,0x6f,0x2e,0x61,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x6f,0x2e,0x61,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x3b,0x69,0x66,0x28,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x3d,0x6c,0x2c,0x21,0x31,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6f,0x2e,0x69,0x73,0x41,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x3d,0x6f,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x73,0x7d,0x2c,0x74,0x2e,0x61,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x41,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x66,0x69,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x41,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x7d,0x2c,0x74,0x2e,0x5f,0x69,0x6e,0x66,0x65,0x72,0x45,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7c,0x7c,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x7c,0x7c,0x7b,0x7d,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x29,0x29,0x7d,0x2c,0x74,0x2e,0x65,0x61,0x63,0x68,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x3d,0x30,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x2b,0x2b,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x73,0x74,0x45,0x61,0x63,0x68,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x61,0x5d,0x3d,0x30,0x2c,0x21,0x21,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x73,0x2c,0x6f,0x3b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x61,0x5d,0x3c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x61,0x5d,0x2c,0x6f,0x3d,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x28,0x73,0x29,0x2c,0x73,0x29,0x2c,0x6f,0x21,0x3d,0x3d,0x21,0x31,0x29,0x3b,0x29,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x61,0x5d,0x2b,0x3d,0x31,0x3b,0x69,0x66,0x28,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x65,0x73,0x5b,0x61,0x5d,0x2c,0x6f,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x2c,0x73,0x29,0x7b,0x76,0x61,0x72,0x20,0x6f,0x3d,0x6e,0x28,0x61,0x2c,0x73,0x29,0x3b,0x69,0x66,0x28,0x6f,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6f,0x3d,0x61,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x6e,0x29,0x29,0x2c,0x6f,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x43,0x4c,0x41,0x53,0x53,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x43,0x4f,0x4d,0x42,0x49,0x4e,0x41,0x54,0x4f,0x52,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x49,0x64,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x49,0x44,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x4e,0x45,0x53,0x54,0x49,0x4e,0x47,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x50,0x73,0x65,0x75,0x64,0x6f,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x54,0x61,0x67,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x54,0x41,0x47,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x68,0x74,0x2e,0x55,0x4e,0x49,0x56,0x45,0x52,0x53,0x41,0x4c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x73,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x2e,0x73,0x70,0x6c,0x69,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2c,0x73,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x2c,0x6c,0x2c,0x63,0x29,0x7b,0x76,0x61,0x72,0x20,0x66,0x3d,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x6c,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6c,0x29,0x2c,0x66,0x3f,0x28,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x73,0x3d,0x5b,0x5d,0x29,0x3a,0x63,0x3d,0x3d,0x3d,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x26,0x26,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x6f,0x7d,0x2c,0x5b,0x5d,0x29,0x7d,0x2c,0x74,0x2e,0x6d,0x61,0x70,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x6e,0x2c,0x61,0x29,0x7d,0x2c,0x74,0x2e,0x65,0x76,0x65,0x72,0x79,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x73,0x6f,0x72,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x7d,0x2c,0x67,0x6b,0x28,0x65,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x66,0x69,0x72,0x73,0x74,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x28,0x30,0x29,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x6c,0x61,0x73,0x74,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x7d,0x5d,0x29,0x2c,0x65,0x7d,0x28,0x63,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x69,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x62,0x6b,0x3b,0x4e,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x69,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x61,0x3d,0x78,0x28,0x28,0x6e,0x69,0x2c,0x46,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6e,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6e,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x77,0x6b,0x3d,0x78,0x6b,0x28,0x24,0x6e,0x28,0x29,0x29,0x2c,0x76,0x6b,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x78,0x6b,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x70,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6b,0x6b,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x42,0x70,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x42,0x70,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x52,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x52,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x41,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x53,0x6b,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x69,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x76,0x6b,0x2e,0x52,0x4f,0x4f,0x54,0x2c,0x6e,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x2c,0x73,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x73,0x29,0x29,0x2c,0x61,0x7d,0x2c,0x5b,0x5d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x43,0x6f,0x6d,0x6d,0x61,0x3f,0x6e,0x2b,0x22,0x2c,0x22,0x3a,0x6e,0x7d,0x2c,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x72,0x72,0x6f,0x72,0x3f,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x72,0x72,0x6f,0x72,0x28,0x6e,0x2c,0x61,0x29,0x3a,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x29,0x7d,0x2c,0x6b,0x6b,0x28,0x65,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x65,0x72,0x72,0x6f,0x72,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x72,0x72,0x6f,0x72,0x3d,0x6e,0x7d,0x7d,0x5d,0x29,0x2c,0x65,0x7d,0x28,0x77,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x6e,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x41,0x6b,0x3b,0x46,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6e,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x44,0x61,0x3d,0x78,0x28,0x28,0x73,0x69,0x2c,0x6a,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x73,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x73,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x43,0x6b,0x3d,0x45,0x6b,0x28,0x24,0x6e,0x28,0x29,0x29,0x2c,0x5f,0x6b,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x6b,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x49,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x49,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x49,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x49,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x54,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x4f,0x6b,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x5f,0x6b,0x2e,0x53,0x45,0x4c,0x45,0x43,0x54,0x4f,0x52,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x43,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x73,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x54,0x6b,0x3b,0x6a,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x73,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4c,0x6e,0x3d,0x78,0x28,0x28,0x41,0x49,0x2c,0x7a,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x52,0x6b,0x3d,0x7b,0x7d,0x2c,0x50,0x6b,0x3d,0x52,0x6b,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2c,0x49,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x7b,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6e,0x20,0x69,0x6e,0x20,0x74,0x29,0x69,0x5b,0x6e,0x5d,0x3d,0x50,0x6b,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x65,0x2c,0x6e,0x29,0x3f,0x65,0x5b,0x6e,0x5d,0x3a,0x74,0x5b,0x6e,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x2c,0x44,0x6b,0x3d,0x2f,0x5b,0x20,0x2d,0x2c,0x5c,0x2e,0x5c,0x2f,0x3a,0x2d,0x40,0x5c,0x5b,0x2d,0x5c,0x5e,0x60,0x5c,0x7b,0x2d,0x7e,0x5d,0x2f,0x2c,0x71,0x6b,0x3d,0x2f,0x5b,0x20,0x2d,0x2c,0x5c,0x2e,0x5c,0x2f,0x3a,0x2d,0x40,0x5c,0x5b,0x5c,0x5d,0x5c,0x5e,0x60,0x5c,0x7b,0x2d,0x7e,0x5d,0x2f,0x2c,0x24,0x6b,0x3d,0x2f,0x28,0x5e,0x7c,0x5c,0x5c,0x2b,0x29,0x3f,0x28,0x5c,0x5c,0x5b,0x41,0x2d,0x46,0x30,0x2d,0x39,0x5d,0x7b,0x31,0x2c,0x36,0x7d,0x29,0x5c,0x78,0x32,0x30,0x28,0x3f,0x21,0x5b,0x61,0x2d,0x66,0x41,0x2d,0x46,0x30,0x2d,0x39,0x5c,0x78,0x32,0x30,0x5d,0x29,0x2f,0x67,0x2c,0x71,0x61,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x3d,0x49,0x6b,0x28,0x74,0x2c,0x72,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x2c,0x74,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x21,0x3d,0x22,0x73,0x69,0x6e,0x67,0x6c,0x65,0x22,0x26,0x26,0x74,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x21,0x3d,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x26,0x26,0x28,0x74,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x3d,0x22,0x73,0x69,0x6e,0x67,0x6c,0x65,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x3d,0x3d,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x3f,0x27,0x22,0x27,0x3a,0x22,0x27,0x22,0x2c,0x6e,0x3d,0x74,0x2e,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x2c,0x61,0x3d,0x65,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x30,0x29,0x2c,0x73,0x3d,0x22,0x22,0x2c,0x6f,0x3d,0x30,0x2c,0x6c,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6f,0x3c,0x6c,0x3b,0x29,0x7b,0x76,0x61,0x72,0x20,0x63,0x3d,0x65,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x6f,0x2b,0x2b,0x29,0x2c,0x66,0x3d,0x63,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x29,0x2c,0x64,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x69,0x66,0x28,0x66,0x3c,0x33,0x32,0x7c,0x7c,0x66,0x3e,0x31,0x32,0x36,0x29,0x7b,0x69,0x66,0x28,0x66,0x3e,0x3d,0x35,0x35,0x32,0x39,0x36,0x26,0x26,0x66,0x3c,0x3d,0x35,0x36,0x33,0x31,0x39,0x26,0x26,0x6f,0x3c,0x6c,0x29,0x7b,0x76,0x61,0x72,0x20,0x70,0x3d,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6f,0x2b,0x2b,0x29,0x3b,0x28,0x70,0x26,0x36,0x34,0x35,0x31,0x32,0x29,0x3d,0x3d,0x35,0x36,0x33,0x32,0x30,0x3f,0x66,0x3d,0x28,0x28,0x66,0x26,0x31,0x30,0x32,0x33,0x29,0x3c,0x3c,0x31,0x30,0x29,0x2b,0x28,0x70,0x26,0x31,0x30,0x32,0x33,0x29,0x2b,0x36,0x35,0x35,0x33,0x36,0x3a,0x6f,0x2d,0x2d,0x7d,0x64,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x66,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2b,0x22,0x20,0x22,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x45,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x3f,0x44,0x6b,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x29,0x3f,0x64,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x63,0x3a,0x64,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x66,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2b,0x22,0x20,0x22,0x3a,0x2f,0x5b,0x5c,0x74,0x5c,0x6e,0x5c,0x66,0x5c,0x72,0x5c,0x78,0x30,0x42,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x29,0x3f,0x64,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x66,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x31,0x36,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2b,0x22,0x20,0x22,0x3a,0x63,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x7c,0x7c,0x21,0x6e,0x26,0x26,0x28,0x63,0x3d,0x3d,0x27,0x22,0x27,0x26,0x26,0x69,0x3d,0x3d,0x63,0x7c,0x7c,0x63,0x3d,0x3d,0x22,0x27,0x22,0x26,0x26,0x69,0x3d,0x3d,0x63,0x29,0x7c,0x7c,0x6e,0x26,0x26,0x71,0x6b,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x29,0x3f,0x64,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x63,0x3a,0x64,0x3d,0x63,0x3b,0x73,0x2b,0x3d,0x64,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x28,0x2f,0x5e,0x2d,0x5b,0x2d,0x5c,0x64,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x29,0x3f,0x73,0x3d,0x22,0x5c,0x5c,0x2d,0x22,0x2b,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3a,0x2f,0x5c,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x29,0x26,0x26,0x28,0x73,0x3d,0x22,0x5c,0x5c,0x33,0x22,0x2b,0x61,0x2b,0x22,0x20,0x22,0x2b,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x29,0x2c,0x73,0x3d,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x24,0x6b,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x68,0x2c,0x62,0x2c,0x76,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x26,0x26,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x25,0x32,0x3f,0x68,0x3a,0x28,0x62,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x76,0x7d,0x29,0x2c,0x21,0x6e,0x26,0x26,0x74,0x2e,0x77,0x72,0x61,0x70,0x3f,0x69,0x2b,0x73,0x2b,0x69,0x3a,0x73,0x7d,0x3b,0x71,0x61,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x7b,0x65,0x73,0x63,0x61,0x70,0x65,0x45,0x76,0x65,0x72,0x79,0x74,0x68,0x69,0x6e,0x67,0x3a,0x21,0x31,0x2c,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3a,0x21,0x31,0x2c,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x22,0x73,0x69,0x6e,0x67,0x6c,0x65,0x22,0x2c,0x77,0x72,0x61,0x70,0x3a,0x21,0x31,0x7d,0x3b,0x71,0x61,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3d,0x22,0x33,0x2e,0x30,0x2e,0x30,0x22,0x3b,0x7a,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x71,0x61,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4c,0x61,0x3d,0x78,0x28,0x28,0x61,0x69,0x2c,0x48,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x61,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x61,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x4c,0x6b,0x3d,0x55,0x70,0x28,0x4c,0x6e,0x28,0x29,0x29,0x2c,0x4d,0x6b,0x3d,0x74,0x69,0x28,0x29,0x2c,0x4e,0x6b,0x3d,0x55,0x70,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x42,0x6b,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x70,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x70,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x6b,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x56,0x70,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x56,0x70,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x24,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x24,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x24,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x7a,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x6a,0x6b,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x69,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x42,0x6b,0x2e,0x43,0x4c,0x41,0x53,0x53,0x2c,0x6e,0x2e,0x5f,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x3d,0x21,0x30,0x2c,0x6e,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x2e,0x22,0x2b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x29,0x7d,0x2c,0x46,0x6b,0x28,0x65,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x28,0x30,0x2c,0x4c,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x6e,0x2c,0x7b,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x61,0x21,0x3d,0x3d,0x6e,0x3f,0x28,0x28,0x30,0x2c,0x4d,0x6b,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x74,0x68,0x69,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x61,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x7d,0x7d,0x5d,0x29,0x2c,0x65,0x7d,0x28,0x4e,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x61,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x7a,0x6b,0x3b,0x48,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x61,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4e,0x61,0x3d,0x78,0x28,0x28,0x6f,0x69,0x2c,0x57,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6f,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6f,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x55,0x6b,0x3d,0x48,0x6b,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x56,0x6b,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x6b,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x4d,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x4d,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x47,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x57,0x6b,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x56,0x6b,0x2e,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x55,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x6f,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x47,0x6b,0x3b,0x57,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6f,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x46,0x61,0x3d,0x78,0x28,0x28,0x6c,0x69,0x2c,0x47,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6c,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6c,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x51,0x6b,0x3d,0x4b,0x6b,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x59,0x6b,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x6b,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x6b,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x42,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x42,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x42,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x4a,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x58,0x6b,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x69,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x59,0x6b,0x2e,0x49,0x44,0x2c,0x6e,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x23,0x22,0x2b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x29,0x7d,0x2c,0x65,0x7d,0x28,0x51,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x6c,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x4a,0x6b,0x3b,0x47,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6c,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x6e,0x3d,0x78,0x28,0x28,0x75,0x69,0x2c,0x4b,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x75,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x75,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x5a,0x6b,0x3d,0x51,0x70,0x28,0x4c,0x6e,0x28,0x29,0x29,0x2c,0x65,0x53,0x3d,0x74,0x69,0x28,0x29,0x2c,0x74,0x53,0x3d,0x51,0x70,0x28,0x64,0x74,0x28,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x70,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x70,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x53,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x59,0x70,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x59,0x70,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x6a,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6a,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x6a,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x6e,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x69,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x71,0x75,0x61,0x6c,0x69,0x66,0x69,0x65,0x64,0x4e,0x61,0x6d,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3f,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x2b,0x22,0x7c,0x22,0x2b,0x6e,0x3a,0x6e,0x7d,0x2c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x61,0x6c,0x69,0x66,0x69,0x65,0x64,0x4e,0x61,0x6d,0x65,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x29,0x29,0x7d,0x2c,0x72,0x53,0x28,0x65,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x2a,0x22,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x26,0x22,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x76,0x61,0x72,0x20,0x61,0x3d,0x28,0x30,0x2c,0x5a,0x6b,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x6e,0x2c,0x7b,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x6e,0x2c,0x61,0x21,0x3d,0x3d,0x6e,0x3f,0x28,0x28,0x30,0x2c,0x65,0x53,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x74,0x68,0x69,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x61,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x6e,0x73,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x6e,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x22,0x22,0x3a,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x7d,0x7d,0x5d,0x29,0x2c,0x65,0x7d,0x28,0x74,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x75,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x6e,0x53,0x3b,0x4b,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x75,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x55,0x61,0x3d,0x78,0x28,0x28,0x66,0x69,0x2c,0x58,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x66,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x66,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x73,0x53,0x3d,0x6f,0x53,0x28,0x4d,0x6e,0x28,0x29,0x29,0x2c,0x61,0x53,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x7a,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7a,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x7a,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x75,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x6c,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x61,0x53,0x2e,0x54,0x41,0x47,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x73,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x66,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x75,0x53,0x3b,0x58,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x61,0x3d,0x78,0x28,0x28,0x63,0x69,0x2c,0x4a,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x63,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x63,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x66,0x53,0x3d,0x70,0x53,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x63,0x53,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x56,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x56,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x56,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x68,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x64,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x63,0x53,0x2e,0x53,0x54,0x52,0x49,0x4e,0x47,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x66,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x63,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x68,0x53,0x3b,0x4a,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x63,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x47,0x61,0x3d,0x78,0x28,0x28,0x70,0x69,0x2c,0x5a,0x70,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x70,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x70,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x6d,0x53,0x3d,0x79,0x53,0x28,0x24,0x6e,0x28,0x29,0x29,0x2c,0x67,0x53,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x79,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x57,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x57,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x57,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x77,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x62,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x69,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x67,0x53,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x2c,0x6e,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x22,0x28,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x22,0x29,0x2b,0x22,0x29,0x22,0x3a,0x22,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x2c,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x7d,0x2c,0x65,0x7d,0x28,0x6d,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x70,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x77,0x53,0x3b,0x5a,0x70,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x70,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4e,0x6e,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x4e,0x6e,0x2c,0x7b,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x3a,0x28,0x29,0x3d,0x3e,0x76,0x53,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x76,0x61,0x72,0x20,0x42,0x6e,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x64,0x3d,0x78,0x28,0x28,0x43,0x49,0x2c,0x65,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x65,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x28,0x42,0x6e,0x28,0x29,0x2c,0x4e,0x6e,0x29,0x2e,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5a,0x61,0x3d,0x78,0x28,0x6d,0x69,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6d,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6d,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x6d,0x69,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x56,0x61,0x6c,0x75,0x65,0x3d,0x58,0x61,0x3b,0x76,0x61,0x72,0x20,0x64,0x69,0x3d,0x59,0x61,0x28,0x4c,0x6e,0x28,0x29,0x29,0x2c,0x78,0x53,0x3d,0x59,0x61,0x28,0x52,0x6e,0x28,0x29,0x29,0x2c,0x6b,0x53,0x3d,0x59,0x61,0x28,0x4d,0x6e,0x28,0x29,0x29,0x2c,0x53,0x53,0x3d,0x53,0x65,0x28,0x29,0x2c,0x51,0x61,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x61,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x64,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x53,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x72,0x64,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x72,0x64,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x4b,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x61,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x4b,0x61,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x68,0x69,0x3d,0x74,0x64,0x28,0x29,0x2c,0x5f,0x53,0x3d,0x2f,0x5e,0x28,0x27,0x7c,0x22,0x29,0x28,0x5b,0x5e,0x5d,0x2a,0x29,0x5c,0x31,0x24,0x2f,0x2c,0x45,0x53,0x3d,0x68,0x69,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x7d,0x2c,0x22,0x41,0x73,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x61,0x6e,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x61,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x69,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2e,0x20,0x43,0x61,0x6c,0x6c,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2e,0x73,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x22,0x29,0x2c,0x4f,0x53,0x3d,0x68,0x69,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x7d,0x2c,0x22,0x41,0x73,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x61,0x74,0x74,0x72,0x2e,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x69,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x20,0x41,0x73,0x73,0x69,0x67,0x6e,0x20,0x74,0x6f,0x20,0x61,0x74,0x74,0x72,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x22,0x29,0x2c,0x54,0x53,0x3d,0x68,0x69,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x7d,0x2c,0x22,0x43,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6e,0x67,0x20,0x61,0x6e,0x20,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x79,0x69,0x6e,0x67,0x20,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x20,0x69,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2e,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x54,0x68,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x6e,0x6f,0x77,0x2e,0x22,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x61,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x21,0x31,0x2c,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x69,0x3d,0x72,0x2c,0x6e,0x3d,0x69,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x5f,0x53,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x28,0x74,0x3d,0x6e,0x5b,0x31,0x5d,0x2c,0x69,0x3d,0x6e,0x5b,0x32,0x5d,0x29,0x2c,0x69,0x3d,0x28,0x30,0x2c,0x78,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x69,0x29,0x2c,0x69,0x21,0x3d,0x3d,0x72,0x26,0x26,0x28,0x65,0x3d,0x21,0x30,0x29,0x2c,0x7b,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x55,0x73,0x61,0x67,0x65,0x3a,0x65,0x2c,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x3a,0x69,0x2c,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3a,0x74,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x53,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x72,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x54,0x53,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x65,0x3d,0x58,0x61,0x28,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x74,0x3d,0x65,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x2c,0x69,0x3d,0x65,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x61,0x77,0x73,0x7c,0x7c,0x28,0x72,0x2e,0x72,0x61,0x77,0x73,0x3d,0x7b,0x7d,0x29,0x2c,0x72,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x72,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x69,0x2c,0x72,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x74,0x2c,0x72,0x7d,0x76,0x61,0x72,0x20,0x46,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x43,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x7b,0x7d,0x29,0x2c,0x6e,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x52,0x53,0x28,0x69,0x29,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x53,0x53,0x2e,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x2c,0x6e,0x2e,0x72,0x61,0x77,0x73,0x3d,0x6e,0x2e,0x72,0x61,0x77,0x73,0x7c,0x7c,0x7b,0x7d,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2c,0x22,0x75,0x6e,0x71,0x75,0x6f,0x74,0x65,0x64,0x22,0x2c,0x7b,0x67,0x65,0x74,0x3a,0x68,0x69,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x2c,0x22,0x61,0x74,0x74,0x72,0x2e,0x72,0x61,0x77,0x73,0x2e,0x75,0x6e,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x69,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2e,0x20,0x43,0x61,0x6c,0x6c,0x20,0x61,0x74,0x74,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x22,0x29,0x2c,0x73,0x65,0x74,0x3a,0x68,0x69,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x2c,0x22,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x61,0x74,0x74,0x72,0x2e,0x72,0x61,0x77,0x73,0x2e,0x75,0x6e,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x69,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x20,0x61,0x74,0x74,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6e,0x6f,0x77,0x2e,0x22,0x29,0x7d,0x29,0x2c,0x6e,0x2e,0x5f,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x3d,0x21,0x30,0x2c,0x6e,0x7d,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x67,0x65,0x74,0x51,0x75,0x6f,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x4a,0x61,0x5b,0x61,0x5d,0x2c,0x6f,0x3d,0x28,0x30,0x2c,0x64,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x2c,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x7d,0x2c,0x74,0x2e,0x5f,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x73,0x6d,0x61,0x72,0x74,0x3f,0x74,0x68,0x69,0x73,0x2e,0x73,0x6d,0x61,0x72,0x74,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x28,0x6e,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x28,0x6e,0x29,0x7d,0x2c,0x74,0x2e,0x73,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x61,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x65,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x28,0x61,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x79,0x6e,0x63,0x52,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x7d,0x2c,0x74,0x2e,0x73,0x6d,0x61,0x72,0x74,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x73,0x3d,0x61,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x27,0x5d,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6f,0x3d,0x61,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x22,0x5d,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x66,0x28,0x73,0x2b,0x6f,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x28,0x30,0x2c,0x64,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x61,0x2c,0x7b,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x69,0x66,0x28,0x6c,0x3d,0x3d,0x3d,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x4e,0x4f,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3b,0x76,0x61,0x72,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x63,0x3d,0x3d,0x3d,0x65,0x2e,0x4e,0x4f,0x5f,0x51,0x55,0x4f,0x54,0x45,0x29,0x7b,0x76,0x61,0x72,0x20,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x7c,0x7c,0x6e,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x7c,0x7c,0x65,0x2e,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x2c,0x64,0x3d,0x4a,0x61,0x5b,0x66,0x5d,0x2c,0x70,0x3d,0x28,0x30,0x2c,0x64,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x61,0x2c,0x64,0x29,0x3b,0x69,0x66,0x28,0x70,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x3d,0x3d,0x3d,0x73,0x3f,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x28,0x6e,0x29,0x3a,0x6f,0x3c,0x73,0x3f,0x65,0x2e,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x65,0x2e,0x53,0x49,0x4e,0x47,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x7d,0x2c,0x74,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x6e,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3f,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3a,0x6e,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x61,0x3d,0x6e,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x51,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3f,0x6e,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3a,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x29,0x2c,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x61,0x3d,0x65,0x2e,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x29,0x2c,0x61,0x7d,0x2c,0x74,0x2e,0x5f,0x73,0x79,0x6e,0x63,0x52,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x28,0x30,0x2c,0x64,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x2c,0x4a,0x61,0x5b,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x5d,0x29,0x3b,0x6e,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3f,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x7d,0x2c,0x74,0x2e,0x5f,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x73,0x63,0x61,0x70,0x65,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x28,0x30,0x2c,0x64,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x61,0x2c,0x7b,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x73,0x21,0x3d,0x3d,0x61,0x3f,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x6e,0x5d,0x3d,0x73,0x3a,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x6e,0x5d,0x7d,0x7d,0x2c,0x74,0x2e,0x5f,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x7b,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x22,0x22,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x22,0x22,0x7d,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x5b,0x6e,0x5d,0x7c,0x7c,0x7b,0x7d,0x2c,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x5b,0x6e,0x5d,0x7c,0x7c,0x7b,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x61,0x2c,0x73,0x2c,0x6f,0x29,0x7d,0x2c,0x74,0x2e,0x5f,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x2c,0x73,0x29,0x7b,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x61,0x3d,0x6e,0x29,0x2c,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x73,0x3d,0x69,0x64,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x6f,0x72,0x28,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6e,0x29,0x2c,0x6f,0x29,0x7d,0x2c,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x4f,0x66,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x31,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x6f,0x72,0x28,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x3b,0x69,0x66,0x28,0x61,0x2b,0x3d,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6e,0x3d,0x3d,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x6e,0x73,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3f,0x61,0x3a,0x2d,0x31,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x53,0x22,0x7c,0x7c,0x28,0x61,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x26,0x26,0x28,0x61,0x2b,0x3d,0x31,0x29,0x2c,0x6e,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3b,0x61,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x2b,0x3d,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x76,0x61,0x72,0x20,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x6f,0x72,0x28,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x3b,0x61,0x2b,0x3d,0x6f,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x3f,0x61,0x3a,0x2d,0x31,0x3b,0x61,0x2b,0x3d,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x2b,0x3d,0x6f,0x2e,0x61,0x66,0x74,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x76,0x61,0x72,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x6f,0x72,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x3b,0x61,0x2b,0x3d,0x63,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x76,0x61,0x72,0x20,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x3f,0x61,0x3a,0x2d,0x31,0x3b,0x61,0x2b,0x3d,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x2b,0x3d,0x63,0x2e,0x61,0x66,0x74,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x76,0x61,0x72,0x20,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x70,0x61,0x63,0x65,0x73,0x46,0x6f,0x72,0x28,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2b,0x3d,0x64,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6e,0x3d,0x3d,0x3d,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3f,0x61,0x3a,0x2d,0x31,0x7d,0x2c,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2c,0x61,0x3d,0x5b,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x2c,0x22,0x5b,0x22,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x6f,0x72,0x28,0x22,0x71,0x75,0x61,0x6c,0x69,0x66,0x69,0x65,0x64,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x26,0x26,0x28,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x6f,0x72,0x28,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x6f,0x72,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x72,0x69,0x6e,0x67,0x46,0x6f,0x72,0x28,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x46,0x6c,0x61,0x67,0x22,0x2c,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x2c,0x6f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x21,0x6e,0x2e,0x71,0x75,0x6f,0x74,0x65,0x64,0x26,0x26,0x6f,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x21,0x28,0x6e,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x6e,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x61,0x66,0x74,0x65,0x72,0x29,0x26,0x26,0x28,0x6f,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x22,0x20,0x22,0x29,0x2c,0x69,0x64,0x28,0x73,0x2c,0x6f,0x29,0x7d,0x29,0x29,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x5d,0x22,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x29,0x2c,0x61,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x7d,0x2c,0x41,0x53,0x28,0x65,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x71,0x75,0x6f,0x74,0x65,0x64,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x22,0x27,0x22,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x27,0x22,0x27,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x4f,0x53,0x28,0x29,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x21,0x3d,0x3d,0x6e,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x79,0x6e,0x63,0x52,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x29,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x71,0x75,0x61,0x6c,0x69,0x66,0x69,0x65,0x64,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x71,0x75,0x61,0x6c,0x69,0x66,0x69,0x65,0x64,0x4e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x29,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x46,0x6c,0x61,0x67,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3f,0x22,0x69,0x22,0x3a,0x22,0x22,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x65,0x64,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x58,0x61,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x61,0x2e,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x55,0x73,0x61,0x67,0x65,0x2c,0x6f,0x3d,0x61,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x2c,0x6c,0x3d,0x61,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3b,0x69,0x66,0x28,0x73,0x26,0x26,0x45,0x53,0x28,0x29,0x2c,0x6f,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x6c,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6f,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x6c,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x79,0x6e,0x63,0x52,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x6e,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3d,0x21,0x31,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x46,0x6c,0x61,0x67,0x3d,0x3d,0x3d,0x22,0x49,0x22,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x46,0x6c,0x61,0x67,0x3d,0x3d,0x3d,0x22,0x69,0x22,0x29,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x46,0x6c,0x61,0x67,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3d,0x6e,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x7d,0x2c,0x73,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x73,0x63,0x61,0x70,0x65,0x73,0x28,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x2c,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x6e,0x7d,0x7d,0x5d,0x29,0x2c,0x65,0x7d,0x28,0x6b,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x6d,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x46,0x6e,0x3b,0x46,0x6e,0x2e,0x4e,0x4f,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x46,0x6e,0x2e,0x53,0x49,0x4e,0x47,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3d,0x22,0x27,0x22,0x3b,0x46,0x6e,0x2e,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3d,0x27,0x22,0x27,0x3b,0x76,0x61,0x72,0x20,0x4a,0x61,0x3d,0x28,0x51,0x61,0x3d,0x7b,0x22,0x27,0x22,0x3a,0x7b,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x22,0x73,0x69,0x6e,0x67,0x6c,0x65,0x22,0x2c,0x77,0x72,0x61,0x70,0x3a,0x21,0x30,0x7d,0x2c,0x27,0x22,0x27,0x3a,0x7b,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x2c,0x77,0x72,0x61,0x70,0x3a,0x21,0x30,0x7d,0x7d,0x2c,0x51,0x61,0x5b,0x6e,0x75,0x6c,0x6c,0x5d,0x3d,0x7b,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3a,0x21,0x30,0x7d,0x2c,0x51,0x61,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x64,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x2b,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2b,0x72,0x2b,0x65,0x2e,0x61,0x66,0x74,0x65,0x72,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x6f,0x3d,0x78,0x28,0x28,0x67,0x69,0x2c,0x6e,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x67,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x67,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x50,0x53,0x3d,0x44,0x53,0x28,0x4d,0x6e,0x28,0x29,0x29,0x2c,0x49,0x53,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x65,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6f,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x65,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x24,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x71,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x49,0x53,0x2e,0x55,0x4e,0x49,0x56,0x45,0x52,0x53,0x41,0x4c,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x2a,0x22,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x50,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x67,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x24,0x53,0x3b,0x6e,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x67,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x6f,0x3d,0x78,0x28,0x28,0x79,0x69,0x2c,0x73,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x79,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x79,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x4c,0x53,0x3d,0x4e,0x53,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x4d,0x53,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x72,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x6f,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x72,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x46,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x42,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x4d,0x53,0x2e,0x43,0x4f,0x4d,0x42,0x49,0x4e,0x41,0x54,0x4f,0x52,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x4c,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x79,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x46,0x53,0x3b,0x73,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x79,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x6f,0x3d,0x78,0x28,0x28,0x62,0x69,0x2c,0x61,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x62,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x62,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x6a,0x53,0x3d,0x55,0x53,0x28,0x64,0x74,0x28,0x29,0x29,0x2c,0x7a,0x53,0x3d,0x53,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x53,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x29,0x2c,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3d,0x72,0x2c,0x6e,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x2e,0x62,0x69,0x6e,0x64,0x28,0x29,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3d,0x6e,0x2c,0x69,0x7d,0x2c,0x6e,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x48,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x56,0x53,0x28,0x65,0x2c,0x72,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x74,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x7a,0x53,0x2e,0x4e,0x45,0x53,0x54,0x49,0x4e,0x47,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x26,0x22,0x2c,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x28,0x6a,0x53,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x3b,0x62,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x48,0x53,0x3b,0x61,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x62,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x64,0x3d,0x78,0x28,0x28,0x6a,0x6e,0x2c,0x6f,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6a,0x6e,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6a,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x57,0x53,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x53,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x6f,0x72,0x74,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2d,0x74,0x7d,0x29,0x7d,0x6f,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6a,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x6f,0x3d,0x78,0x28,0x4d,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x4d,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x4d,0x2e,0x77,0x6f,0x72,0x64,0x3d,0x4d,0x2e,0x74,0x69,0x6c,0x64,0x65,0x3d,0x4d,0x2e,0x74,0x61,0x62,0x3d,0x4d,0x2e,0x73,0x74,0x72,0x3d,0x4d,0x2e,0x73,0x70,0x61,0x63,0x65,0x3d,0x4d,0x2e,0x73,0x6c,0x61,0x73,0x68,0x3d,0x4d,0x2e,0x73,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3d,0x4d,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x4d,0x2e,0x70,0x6c,0x75,0x73,0x3d,0x4d,0x2e,0x70,0x69,0x70,0x65,0x3d,0x4d,0x2e,0x6f,0x70,0x65,0x6e,0x53,0x71,0x75,0x61,0x72,0x65,0x3d,0x4d,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3d,0x4d,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x3d,0x4d,0x2e,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x68,0x61,0x6e,0x3d,0x4d,0x2e,0x66,0x65,0x65,0x64,0x3d,0x4d,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x3d,0x4d,0x2e,0x64,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3d,0x4d,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3d,0x4d,0x2e,0x63,0x72,0x3d,0x4d,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x4d,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x3d,0x4d,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x4d,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x4d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x3d,0x4d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3d,0x4d,0x2e,0x63,0x61,0x72,0x65,0x74,0x3d,0x4d,0x2e,0x62,0x61,0x6e,0x67,0x3d,0x4d,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x3d,0x4d,0x2e,0x61,0x74,0x3d,0x4d,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x3d,0x4d,0x2e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x47,0x53,0x3d,0x33,0x38,0x3b,0x4d,0x2e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x3d,0x47,0x53,0x3b,0x76,0x61,0x72,0x20,0x51,0x53,0x3d,0x34,0x32,0x3b,0x4d,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x3d,0x51,0x53,0x3b,0x76,0x61,0x72,0x20,0x59,0x53,0x3d,0x36,0x34,0x3b,0x4d,0x2e,0x61,0x74,0x3d,0x59,0x53,0x3b,0x76,0x61,0x72,0x20,0x4b,0x53,0x3d,0x34,0x34,0x3b,0x4d,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x3d,0x4b,0x53,0x3b,0x76,0x61,0x72,0x20,0x58,0x53,0x3d,0x35,0x38,0x3b,0x4d,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x58,0x53,0x3b,0x76,0x61,0x72,0x20,0x4a,0x53,0x3d,0x35,0x39,0x3b,0x4d,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x4a,0x53,0x3b,0x76,0x61,0x72,0x20,0x5a,0x53,0x3d,0x34,0x30,0x3b,0x4d,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3d,0x5a,0x53,0x3b,0x76,0x61,0x72,0x20,0x65,0x41,0x3d,0x34,0x31,0x3b,0x4d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3d,0x65,0x41,0x3b,0x76,0x61,0x72,0x20,0x74,0x41,0x3d,0x39,0x31,0x3b,0x4d,0x2e,0x6f,0x70,0x65,0x6e,0x53,0x71,0x75,0x61,0x72,0x65,0x3d,0x74,0x41,0x3b,0x76,0x61,0x72,0x20,0x72,0x41,0x3d,0x39,0x33,0x3b,0x4d,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x3d,0x72,0x41,0x3b,0x76,0x61,0x72,0x20,0x69,0x41,0x3d,0x33,0x36,0x3b,0x4d,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3d,0x69,0x41,0x3b,0x76,0x61,0x72,0x20,0x6e,0x41,0x3d,0x31,0x32,0x36,0x3b,0x4d,0x2e,0x74,0x69,0x6c,0x64,0x65,0x3d,0x6e,0x41,0x3b,0x76,0x61,0x72,0x20,0x73,0x41,0x3d,0x39,0x34,0x3b,0x4d,0x2e,0x63,0x61,0x72,0x65,0x74,0x3d,0x73,0x41,0x3b,0x76,0x61,0x72,0x20,0x61,0x41,0x3d,0x34,0x33,0x3b,0x4d,0x2e,0x70,0x6c,0x75,0x73,0x3d,0x61,0x41,0x3b,0x76,0x61,0x72,0x20,0x6f,0x41,0x3d,0x36,0x31,0x3b,0x4d,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x3d,0x6f,0x41,0x3b,0x76,0x61,0x72,0x20,0x6c,0x41,0x3d,0x31,0x32,0x34,0x3b,0x4d,0x2e,0x70,0x69,0x70,0x65,0x3d,0x6c,0x41,0x3b,0x76,0x61,0x72,0x20,0x75,0x41,0x3d,0x36,0x32,0x3b,0x4d,0x2e,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x68,0x61,0x6e,0x3d,0x75,0x41,0x3b,0x76,0x61,0x72,0x20,0x66,0x41,0x3d,0x33,0x32,0x3b,0x4d,0x2e,0x73,0x70,0x61,0x63,0x65,0x3d,0x66,0x41,0x3b,0x76,0x61,0x72,0x20,0x75,0x64,0x3d,0x33,0x39,0x3b,0x4d,0x2e,0x73,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3d,0x75,0x64,0x3b,0x76,0x61,0x72,0x20,0x63,0x41,0x3d,0x33,0x34,0x3b,0x4d,0x2e,0x64,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3d,0x63,0x41,0x3b,0x76,0x61,0x72,0x20,0x70,0x41,0x3d,0x34,0x37,0x3b,0x4d,0x2e,0x73,0x6c,0x61,0x73,0x68,0x3d,0x70,0x41,0x3b,0x76,0x61,0x72,0x20,0x64,0x41,0x3d,0x33,0x33,0x3b,0x4d,0x2e,0x62,0x61,0x6e,0x67,0x3d,0x64,0x41,0x3b,0x76,0x61,0x72,0x20,0x68,0x41,0x3d,0x39,0x32,0x3b,0x4d,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x3d,0x68,0x41,0x3b,0x76,0x61,0x72,0x20,0x6d,0x41,0x3d,0x31,0x33,0x3b,0x4d,0x2e,0x63,0x72,0x3d,0x6d,0x41,0x3b,0x76,0x61,0x72,0x20,0x67,0x41,0x3d,0x31,0x32,0x3b,0x4d,0x2e,0x66,0x65,0x65,0x64,0x3d,0x67,0x41,0x3b,0x76,0x61,0x72,0x20,0x79,0x41,0x3d,0x31,0x30,0x3b,0x4d,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x3d,0x79,0x41,0x3b,0x76,0x61,0x72,0x20,0x62,0x41,0x3d,0x39,0x3b,0x4d,0x2e,0x74,0x61,0x62,0x3d,0x62,0x41,0x3b,0x76,0x61,0x72,0x20,0x77,0x41,0x3d,0x75,0x64,0x3b,0x4d,0x2e,0x73,0x74,0x72,0x3d,0x77,0x41,0x3b,0x76,0x61,0x72,0x20,0x76,0x41,0x3d,0x2d,0x31,0x3b,0x4d,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x76,0x41,0x3b,0x76,0x61,0x72,0x20,0x78,0x41,0x3d,0x2d,0x32,0x3b,0x4d,0x2e,0x77,0x6f,0x72,0x64,0x3d,0x78,0x41,0x3b,0x76,0x61,0x72,0x20,0x6b,0x41,0x3d,0x2d,0x33,0x3b,0x4d,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x6b,0x41,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x64,0x3d,0x78,0x28,0x77,0x69,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x77,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x77,0x69,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x77,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x54,0x41,0x3b,0x76,0x61,0x72,0x20,0x44,0x3d,0x53,0x41,0x28,0x61,0x6f,0x28,0x29,0x29,0x2c,0x6e,0x72,0x2c,0x74,0x65,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x64,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x76,0x61,0x72,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x66,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x74,0x3a,0x65,0x7d,0x29,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x41,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x26,0x26,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x3b,0x76,0x61,0x72,0x20,0x74,0x3d,0x66,0x64,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x26,0x26,0x74,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x7b,0x7d,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x61,0x20,0x69,0x6e,0x20,0x72,0x29,0x69,0x66,0x28,0x61,0x21,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x2c,0x61,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x6e,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x28,0x72,0x2c,0x61,0x29,0x3a,0x6e,0x75,0x6c,0x6c,0x3b,0x73,0x26,0x26,0x28,0x73,0x2e,0x67,0x65,0x74,0x7c,0x7c,0x73,0x2e,0x73,0x65,0x74,0x29,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x69,0x2c,0x61,0x2c,0x73,0x29,0x3a,0x69,0x5b,0x61,0x5d,0x3d,0x72,0x5b,0x61,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x72,0x2c,0x74,0x26,0x26,0x74,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x69,0x29,0x2c,0x69,0x7d,0x76,0x61,0x72,0x20,0x41,0x41,0x3d,0x28,0x6e,0x72,0x3d,0x7b,0x7d,0x2c,0x6e,0x72,0x5b,0x44,0x2e,0x74,0x61,0x62,0x5d,0x3d,0x21,0x30,0x2c,0x6e,0x72,0x5b,0x44,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x6e,0x72,0x5b,0x44,0x2e,0x63,0x72,0x5d,0x3d,0x21,0x30,0x2c,0x6e,0x72,0x5b,0x44,0x2e,0x66,0x65,0x65,0x64,0x5d,0x3d,0x21,0x30,0x2c,0x6e,0x72,0x29,0x2c,0x43,0x41,0x3d,0x28,0x74,0x65,0x3d,0x7b,0x7d,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x73,0x70,0x61,0x63,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x74,0x61,0x62,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x63,0x72,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x66,0x65,0x65,0x64,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x62,0x61,0x6e,0x67,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x6f,0x70,0x65,0x6e,0x53,0x71,0x75,0x61,0x72,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x73,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x64,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x70,0x6c,0x75,0x73,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x70,0x69,0x70,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x74,0x69,0x6c,0x64,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x68,0x61,0x6e,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x63,0x61,0x72,0x65,0x74,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x5b,0x44,0x2e,0x73,0x6c,0x61,0x73,0x68,0x5d,0x3d,0x21,0x30,0x2c,0x74,0x65,0x29,0x2c,0x6f,0x6f,0x3d,0x7b,0x7d,0x2c,0x63,0x64,0x3d,0x22,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0x64,0x65,0x66,0x41,0x42,0x43,0x44,0x45,0x46,0x22,0x3b,0x66,0x6f,0x72,0x28,0x7a,0x6e,0x3d,0x30,0x3b,0x7a,0x6e,0x3c,0x63,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x7a,0x6e,0x2b,0x2b,0x29,0x6f,0x6f,0x5b,0x63,0x64,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x7a,0x6e,0x29,0x5d,0x3d,0x21,0x30,0x3b,0x76,0x61,0x72,0x20,0x7a,0x6e,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x41,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2c,0x69,0x3b,0x64,0x6f,0x7b,0x69,0x66,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x29,0x2c,0x43,0x41,0x5b,0x69,0x5d,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2d,0x31,0x3b,0x69,0x3d,0x3d,0x3d,0x44,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x3f,0x74,0x3d,0x45,0x41,0x28,0x72,0x2c,0x74,0x29,0x2b,0x31,0x3a,0x74,0x2b,0x2b,0x7d,0x77,0x68,0x69,0x6c,0x65,0x28,0x74,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2d,0x31,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x41,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x3d,0x65,0x2c,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x2b,0x31,0x29,0x3b,0x69,0x66,0x28,0x21,0x41,0x41,0x5b,0x69,0x5d,0x29,0x69,0x66,0x28,0x6f,0x6f,0x5b,0x69,0x5d,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x30,0x3b,0x64,0x6f,0x20,0x74,0x2b,0x2b,0x2c,0x6e,0x2b,0x2b,0x2c,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x2b,0x31,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x6f,0x6f,0x5b,0x69,0x5d,0x26,0x26,0x6e,0x3c,0x36,0x29,0x3b,0x6e,0x3c,0x36,0x26,0x26,0x69,0x3d,0x3d,0x3d,0x44,0x2e,0x73,0x70,0x61,0x63,0x65,0x26,0x26,0x74,0x2b,0x2b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x76,0x61,0x72,0x20,0x4f,0x41,0x3d,0x7b,0x54,0x59,0x50,0x45,0x3a,0x30,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x3a,0x31,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x3a,0x32,0x2c,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x3a,0x33,0x2c,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x3a,0x34,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x3a,0x35,0x2c,0x45,0x4e,0x44,0x5f,0x50,0x4f,0x53,0x3a,0x36,0x7d,0x3b,0x77,0x69,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x3d,0x4f,0x41,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x41,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x72,0x2e,0x63,0x73,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x4f,0x66,0x28,0x29,0x2c,0x69,0x3d,0x74,0x2c,0x6e,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x3d,0x2d,0x31,0x2c,0x73,0x3d,0x31,0x2c,0x6f,0x3d,0x30,0x2c,0x6c,0x3d,0x30,0x2c,0x63,0x2c,0x66,0x2c,0x64,0x2c,0x70,0x2c,0x68,0x2c,0x62,0x2c,0x76,0x2c,0x79,0x2c,0x77,0x2c,0x6b,0x2c,0x53,0x2c,0x45,0x2c,0x4f,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x28,0x4e,0x2c,0x54,0x29,0x7b,0x69,0x66,0x28,0x72,0x2e,0x73,0x61,0x66,0x65,0x29,0x74,0x2b,0x3d,0x54,0x2c,0x77,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x72,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x22,0x2b,0x4e,0x2c,0x73,0x2c,0x6f,0x2d,0x61,0x2c,0x6f,0x29,0x7d,0x66,0x6f,0x72,0x28,0x3b,0x6f,0x3c,0x6e,0x3b,0x29,0x7b,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x63,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6f,0x29,0x2c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x26,0x26,0x28,0x61,0x3d,0x6f,0x2c,0x73,0x2b,0x3d,0x31,0x29,0x2c,0x63,0x29,0x7b,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x73,0x70,0x61,0x63,0x65,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x74,0x61,0x62,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x63,0x72,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x66,0x65,0x65,0x64,0x3a,0x77,0x3d,0x6f,0x3b,0x64,0x6f,0x20,0x77,0x2b,0x3d,0x31,0x2c,0x63,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x77,0x29,0x2c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x26,0x26,0x28,0x61,0x3d,0x77,0x2c,0x73,0x2b,0x3d,0x31,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x73,0x70,0x61,0x63,0x65,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x74,0x61,0x62,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x63,0x72,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x66,0x65,0x65,0x64,0x29,0x3b,0x4f,0x3d,0x44,0x2e,0x73,0x70,0x61,0x63,0x65,0x2c,0x70,0x3d,0x73,0x2c,0x64,0x3d,0x77,0x2d,0x61,0x2d,0x31,0x2c,0x6c,0x3d,0x77,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x70,0x6c,0x75,0x73,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x68,0x61,0x6e,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x74,0x69,0x6c,0x64,0x65,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x70,0x69,0x70,0x65,0x3a,0x77,0x3d,0x6f,0x3b,0x64,0x6f,0x20,0x77,0x2b,0x3d,0x31,0x2c,0x63,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x77,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x70,0x6c,0x75,0x73,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x54,0x68,0x61,0x6e,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x74,0x69,0x6c,0x64,0x65,0x7c,0x7c,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x70,0x69,0x70,0x65,0x29,0x3b,0x4f,0x3d,0x44,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x2c,0x70,0x3d,0x73,0x2c,0x64,0x3d,0x6f,0x2d,0x61,0x2c,0x6c,0x3d,0x77,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x62,0x61,0x6e,0x67,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x63,0x61,0x72,0x65,0x74,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x6f,0x70,0x65,0x6e,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3a,0x77,0x3d,0x6f,0x2c,0x4f,0x3d,0x63,0x2c,0x70,0x3d,0x73,0x2c,0x64,0x3d,0x6f,0x2d,0x61,0x2c,0x6c,0x3d,0x77,0x2b,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x73,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3a,0x63,0x61,0x73,0x65,0x20,0x44,0x2e,0x64,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3a,0x45,0x3d,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x73,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x3f,0x22,0x27,0x22,0x3a,0x27,0x22,0x27,0x2c,0x77,0x3d,0x6f,0x3b,0x64,0x6f,0x20,0x66,0x6f,0x72,0x28,0x68,0x3d,0x21,0x31,0x2c,0x77,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x45,0x2c,0x77,0x2b,0x31,0x29,0x2c,0x77,0x3d,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x42,0x28,0x22,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x45,0x29,0x2c,0x62,0x3d,0x77,0x3b,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x62,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x44,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x3b,0x29,0x62,0x2d,0x3d,0x31,0x2c,0x68,0x3d,0x21,0x68,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x68,0x29,0x3b,0x4f,0x3d,0x44,0x2e,0x73,0x74,0x72,0x2c,0x70,0x3d,0x73,0x2c,0x64,0x3d,0x6f,0x2d,0x61,0x2c,0x6c,0x3d,0x77,0x2b,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x73,0x6c,0x61,0x73,0x68,0x26,0x26,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6f,0x2b,0x31,0x29,0x3d,0x3d,0x3d,0x44,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x3f,0x28,0x77,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2a,0x2f,0x22,0x2c,0x6f,0x2b,0x32,0x29,0x2b,0x31,0x2c,0x77,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x42,0x28,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x22,0x2a,0x2f,0x22,0x29,0x2c,0x66,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6f,0x2c,0x77,0x2b,0x31,0x29,0x2c,0x79,0x3d,0x66,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x2c,0x76,0x3d,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x76,0x3e,0x30,0x3f,0x28,0x6b,0x3d,0x73,0x2b,0x76,0x2c,0x53,0x3d,0x77,0x2d,0x79,0x5b,0x76,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x28,0x6b,0x3d,0x73,0x2c,0x53,0x3d,0x61,0x29,0x2c,0x4f,0x3d,0x44,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x73,0x3d,0x6b,0x2c,0x70,0x3d,0x6b,0x2c,0x64,0x3d,0x77,0x2d,0x53,0x29,0x3a,0x63,0x3d,0x3d,0x3d,0x44,0x2e,0x73,0x6c,0x61,0x73,0x68,0x3f,0x28,0x77,0x3d,0x6f,0x2c,0x4f,0x3d,0x63,0x2c,0x70,0x3d,0x73,0x2c,0x64,0x3d,0x6f,0x2d,0x61,0x2c,0x6c,0x3d,0x77,0x2b,0x31,0x29,0x3a,0x28,0x77,0x3d,0x5f,0x41,0x28,0x74,0x2c,0x6f,0x29,0x2c,0x4f,0x3d,0x44,0x2e,0x77,0x6f,0x72,0x64,0x2c,0x70,0x3d,0x73,0x2c,0x64,0x3d,0x77,0x2d,0x61,0x29,0x2c,0x6c,0x3d,0x77,0x2b,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x4f,0x2c,0x73,0x2c,0x6f,0x2d,0x61,0x2c,0x70,0x2c,0x64,0x2c,0x6f,0x2c,0x6c,0x5d,0x29,0x2c,0x53,0x26,0x26,0x28,0x61,0x3d,0x53,0x2c,0x53,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x6f,0x3d,0x6c,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x76,0x64,0x3d,0x78,0x28,0x28,0x76,0x69,0x2c,0x77,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x76,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x52,0x41,0x3d,0x6a,0x65,0x28,0x50,0x61,0x28,0x29,0x29,0x2c,0x6c,0x6f,0x3d,0x6a,0x65,0x28,0x44,0x61,0x28,0x29,0x29,0x2c,0x50,0x41,0x3d,0x6a,0x65,0x28,0x4c,0x61,0x28,0x29,0x29,0x2c,0x64,0x64,0x3d,0x6a,0x65,0x28,0x4e,0x61,0x28,0x29,0x29,0x2c,0x49,0x41,0x3d,0x6a,0x65,0x28,0x46,0x61,0x28,0x29,0x29,0x2c,0x44,0x41,0x3d,0x6a,0x65,0x28,0x55,0x61,0x28,0x29,0x29,0x2c,0x75,0x6f,0x3d,0x6a,0x65,0x28,0x48,0x61,0x28,0x29,0x29,0x2c,0x71,0x41,0x3d,0x6a,0x65,0x28,0x47,0x61,0x28,0x29,0x29,0x2c,0x68,0x64,0x3d,0x55,0x6e,0x28,0x5a,0x61,0x28,0x29,0x29,0x2c,0x24,0x41,0x3d,0x6a,0x65,0x28,0x74,0x6f,0x28,0x29,0x29,0x2c,0x66,0x6f,0x3d,0x6a,0x65,0x28,0x69,0x6f,0x28,0x29,0x29,0x2c,0x4c,0x41,0x3d,0x6a,0x65,0x28,0x73,0x6f,0x28,0x29,0x29,0x2c,0x4d,0x41,0x3d,0x6a,0x65,0x28,0x6c,0x64,0x28,0x29,0x29,0x2c,0x50,0x3d,0x55,0x6e,0x28,0x70,0x64,0x28,0x29,0x29,0x2c,0x24,0x3d,0x55,0x6e,0x28,0x61,0x6f,0x28,0x29,0x29,0x2c,0x4e,0x41,0x3d,0x55,0x6e,0x28,0x53,0x65,0x28,0x29,0x29,0x2c,0x6c,0x65,0x3d,0x74,0x69,0x28,0x29,0x2c,0x56,0x74,0x2c,0x63,0x6f,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x64,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x76,0x61,0x72,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x6d,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x74,0x3a,0x65,0x7d,0x29,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x26,0x26,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x3b,0x76,0x61,0x72,0x20,0x74,0x3d,0x6d,0x64,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x26,0x26,0x74,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x7b,0x7d,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x61,0x20,0x69,0x6e,0x20,0x72,0x29,0x69,0x66,0x28,0x61,0x21,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x2c,0x61,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x6e,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x28,0x72,0x2c,0x61,0x29,0x3a,0x6e,0x75,0x6c,0x6c,0x3b,0x73,0x26,0x26,0x28,0x73,0x2e,0x67,0x65,0x74,0x7c,0x7c,0x73,0x2e,0x73,0x65,0x74,0x29,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x69,0x2c,0x61,0x2c,0x73,0x29,0x3a,0x69,0x5b,0x61,0x5d,0x3d,0x72,0x5b,0x61,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x72,0x2c,0x74,0x26,0x26,0x74,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x69,0x29,0x2c,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x65,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x64,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x30,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x74,0x2b,0x2b,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3d,0x69,0x2e,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x21,0x31,0x2c,0x69,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x28,0x69,0x2e,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x69,0x2e,0x6b,0x65,0x79,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x41,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x67,0x64,0x28,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2c,0x65,0x29,0x2c,0x74,0x26,0x26,0x67,0x64,0x28,0x72,0x2c,0x74,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x2c,0x22,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x29,0x2c,0x72,0x7d,0x76,0x61,0x72,0x20,0x70,0x6f,0x3d,0x28,0x56,0x74,0x3d,0x7b,0x7d,0x2c,0x56,0x74,0x5b,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x56,0x74,0x5b,0x24,0x2e,0x63,0x72,0x5d,0x3d,0x21,0x30,0x2c,0x56,0x74,0x5b,0x24,0x2e,0x66,0x65,0x65,0x64,0x5d,0x3d,0x21,0x30,0x2c,0x56,0x74,0x5b,0x24,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x5d,0x3d,0x21,0x30,0x2c,0x56,0x74,0x5b,0x24,0x2e,0x74,0x61,0x62,0x5d,0x3d,0x21,0x30,0x2c,0x56,0x74,0x29,0x2c,0x46,0x41,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x70,0x6f,0x2c,0x28,0x63,0x6f,0x3d,0x7b,0x7d,0x2c,0x63,0x6f,0x5b,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x5d,0x3d,0x21,0x30,0x2c,0x63,0x6f,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x79,0x64,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x5d,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x64,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x5d,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x74,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x72,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x65,0x7d,0x2c,0x65,0x6e,0x64,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x69,0x7d,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x72,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x74,0x28,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x5d,0x2c,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x21,0x72,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x74,0x28,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x72,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x5d,0x2c,0x65,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x65,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x72,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x3d,0x72,0x5b,0x65,0x5d,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5c,0x5c,0x22,0x29,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x72,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x72,0x5b,0x65,0x5d,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x75,0x6e,0x65,0x73,0x63,0x29,0x28,0x74,0x29,0x2c,0x72,0x2e,0x72,0x61,0x77,0x73,0x5b,0x65,0x5d,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x72,0x2e,0x72,0x61,0x77,0x73,0x5b,0x65,0x5d,0x3d,0x74,0x29,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x74,0x3d,0x2d,0x31,0x2c,0x69,0x3d,0x5b,0x5d,0x3b,0x28,0x74,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x2c,0x74,0x2b,0x31,0x29,0x29,0x21,0x3d,0x3d,0x2d,0x31,0x3b,0x29,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x41,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x72,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x2e,0x61,0x70,0x70,0x6c,0x79,0x28,0x5b,0x5d,0x2c,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x29,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x7a,0x41,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x74,0x2c,0x69,0x29,0x7b,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x7b,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x6c,0x6f,0x73,0x73,0x79,0x3a,0x21,0x31,0x2c,0x73,0x61,0x66,0x65,0x3a,0x21,0x31,0x7d,0x2c,0x69,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3d,0x28,0x30,0x2c,0x50,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x7b,0x63,0x73,0x73,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x2c,0x65,0x72,0x72,0x6f,0x72,0x3a,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x72,0x72,0x6f,0x72,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x29,0x2c,0x73,0x61,0x66,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x61,0x66,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x68,0x6f,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x30,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x3d,0x6e,0x65,0x77,0x20,0x52,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x6e,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x65,0x72,0x72,0x6f,0x72,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x6e,0x65,0x77,0x20,0x6c,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x3a,0x31,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x31,0x7d,0x7d,0x7d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x61,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x61,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x6f,0x6f,0x70,0x28,0x29,0x7d,0x76,0x61,0x72,0x20,0x65,0x3d,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x65,0x72,0x72,0x6f,0x72,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2c,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x72,0x75,0x6c,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x6e,0x29,0x3a,0x69,0x2e,0x72,0x75,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x6e,0x2c,0x61,0x29,0x7d,0x7d,0x2c,0x65,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x21,0x3d,0x3d,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x3b,0x29,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x21,0x3d,0x3d,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x22,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x73,0x71,0x75,0x61,0x72,0x65,0x20,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x3d,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x48,0x74,0x28,0x6e,0x5b,0x31,0x5d,0x2c,0x6e,0x5b,0x32,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x33,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x34,0x5d,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x3b,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x21,0x7e,0x5b,0x24,0x2e,0x77,0x6f,0x72,0x64,0x5d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x69,0x5b,0x30,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x2c,0x69,0x5b,0x30,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6f,0x3d,0x30,0x2c,0x6c,0x3d,0x22,0x22,0x2c,0x63,0x3d,0x22,0x22,0x2c,0x66,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x64,0x3d,0x21,0x31,0x3b,0x6f,0x3c,0x61,0x3b,0x29,0x7b,0x76,0x61,0x72,0x20,0x70,0x3d,0x69,0x5b,0x6f,0x5d,0x2c,0x68,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x70,0x29,0x2c,0x62,0x3d,0x69,0x5b,0x6f,0x2b,0x31,0x5d,0x3b,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x70,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x29,0x7b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x3a,0x69,0x66,0x28,0x64,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x69,0x66,0x28,0x66,0x29,0x7b,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x66,0x29,0x3b,0x76,0x61,0x72,0x20,0x76,0x3d,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x5b,0x66,0x5d,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x3b,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x5b,0x66,0x5d,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x76,0x2b,0x68,0x3b,0x76,0x61,0x72,0x20,0x79,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x66,0x2c,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x7c,0x7c,0x6e,0x75,0x6c,0x6c,0x3b,0x79,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x5b,0x66,0x5d,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x79,0x2b,0x68,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x6c,0x3d,0x6c,0x2b,0x68,0x2c,0x63,0x3d,0x63,0x2b,0x68,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x3a,0x69,0x66,0x28,0x62,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x29,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x68,0x2c,0x66,0x3d,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x28,0x21,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x7c,0x7c,0x66,0x3d,0x3d,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x21,0x64,0x29,0x26,0x26,0x62,0x29,0x7b,0x6c,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x2c,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x6c,0x2c,0x6c,0x3d,0x22,0x22,0x29,0x2c,0x63,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x6c,0x2c,0x63,0x3d,0x22,0x22,0x29,0x2c,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x28,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x68,0x3b,0x76,0x61,0x72,0x20,0x77,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x7c,0x7c,0x6e,0x75,0x6c,0x6c,0x3b,0x77,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2b,0x3d,0x68,0x29,0x2c,0x66,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x7d,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3a,0x69,0x66,0x28,0x66,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x7b,0x76,0x61,0x72,0x20,0x6b,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x3b,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x22,0x24,0x22,0x2c,0x6b,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6b,0x2b,0x22,0x24,0x22,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x61,0x72,0x65,0x74,0x3a,0x62,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x26,0x26,0x28,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x68,0x2c,0x66,0x3d,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x2c,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3a,0x69,0x66,0x28,0x68,0x3d,0x3d,0x3d,0x22,0x7e,0x22,0x26,0x26,0x62,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x26,0x26,0x28,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x68,0x2c,0x66,0x3d,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x2c,0x68,0x21,0x3d,0x3d,0x22,0x7c,0x22,0x29,0x7b,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x62,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x3f,0x28,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x68,0x2c,0x66,0x3d,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x29,0x3a,0x21,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x26,0x26,0x21,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x26,0x26,0x28,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x21,0x30,0x29,0x2c,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x77,0x6f,0x72,0x64,0x3a,0x69,0x66,0x28,0x62,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x62,0x29,0x3d,0x3d,0x3d,0x22,0x7c,0x22,0x26,0x26,0x69,0x5b,0x6f,0x2b,0x32,0x5d,0x26,0x26,0x69,0x5b,0x6f,0x2b,0x32,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x21,0x3d,0x3d,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x26,0x26,0x21,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x26,0x26,0x21,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x68,0x2c,0x66,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x7c,0x7c,0x66,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x26,0x26,0x21,0x64,0x29,0x7b,0x6c,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x2c,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x6c,0x2c,0x6c,0x3d,0x22,0x22,0x29,0x2c,0x63,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x63,0x2c,0x63,0x3d,0x22,0x22,0x29,0x2c,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x28,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x68,0x3b,0x76,0x61,0x72,0x20,0x53,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x7c,0x7c,0x6e,0x75,0x6c,0x6c,0x3b,0x53,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2b,0x3d,0x68,0x29,0x2c,0x66,0x3d,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x22,0x22,0x7c,0x7c,0x66,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x26,0x26,0x21,0x28,0x64,0x7c,0x7c,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x45,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x75,0x6e,0x65,0x73,0x63,0x29,0x28,0x68,0x29,0x2c,0x4f,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x7c,0x7c,0x22,0x22,0x2c,0x42,0x3d,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7c,0x7c,0x22,0x22,0x3b,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x42,0x2b,0x45,0x2c,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x28,0x45,0x21,0x3d,0x3d,0x68,0x7c,0x7c,0x4f,0x29,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x28,0x4f,0x7c,0x7c,0x42,0x29,0x2b,0x68,0x29,0x2c,0x66,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x76,0x61,0x72,0x20,0x4e,0x3d,0x68,0x3d,0x3d,0x3d,0x22,0x69,0x22,0x7c,0x7c,0x68,0x3d,0x3d,0x3d,0x22,0x49,0x22,0x3b,0x28,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7c,0x7c,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x26,0x26,0x28,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x7c,0x7c,0x64,0x29,0x3f,0x28,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3d,0x4e,0x2c,0x28,0x21,0x4e,0x7c,0x7c,0x68,0x3d,0x3d,0x3d,0x22,0x49,0x22,0x29,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x46,0x6c,0x61,0x67,0x3d,0x68,0x29,0x2c,0x66,0x3d,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x2c,0x6c,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x29,0x2c,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x6c,0x2c,0x6c,0x3d,0x22,0x22,0x29,0x2c,0x63,0x26,0x26,0x28,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x63,0x2c,0x63,0x3d,0x22,0x22,0x29,0x29,0x3a,0x28,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7c,0x7c,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x26,0x26,0x28,0x66,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x68,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x68,0x29,0x29,0x7d,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x73,0x74,0x72,0x3a,0x69,0x66,0x28,0x21,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x7c,0x7c,0x21,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x6e,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x62,0x79,0x20,0x61,0x6e,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x70,0x72,0x65,0x63,0x65,0x64,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x22,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x70,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x54,0x3d,0x28,0x30,0x2c,0x68,0x64,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x56,0x61,0x6c,0x75,0x65,0x29,0x28,0x68,0x29,0x2c,0x46,0x3d,0x54,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x2c,0x59,0x3d,0x54,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3b,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x46,0x2c,0x73,0x2e,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3d,0x59,0x2c,0x66,0x3d,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x68,0x2c,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x3a,0x69,0x66,0x28,0x21,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x2c,0x70,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2c,0x68,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x22,0x3d,0x22,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3b,0x20,0x61,0x6e,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x77,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x2e,0x27,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x70,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x3b,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3d,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3f,0x73,0x2e,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x2b,0x68,0x3a,0x68,0x2c,0x66,0x3d,0x22,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x22,0x2c,0x64,0x3d,0x21,0x31,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x69,0x66,0x28,0x66,0x29,0x69,0x66,0x28,0x64,0x7c,0x7c,0x62,0x26,0x26,0x62,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x7c,0x7c,0x66,0x3d,0x3d,0x3d,0x22,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x29,0x7b,0x76,0x61,0x72,0x20,0x5f,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x66,0x2c,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x7c,0x7c,0x22,0x22,0x2c,0x51,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x66,0x2c,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x7c,0x7c,0x5f,0x3b,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x2c,0x66,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x5b,0x66,0x5d,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x51,0x2b,0x68,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x76,0x61,0x72,0x20,0x55,0x3d,0x73,0x5b,0x66,0x5d,0x7c,0x7c,0x22,0x22,0x2c,0x6f,0x65,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x2c,0x66,0x29,0x7c,0x7c,0x55,0x3b,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x65,0x6e,0x73,0x75,0x72,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x29,0x28,0x73,0x2c,0x22,0x72,0x61,0x77,0x73,0x22,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x5b,0x66,0x5d,0x3d,0x6f,0x65,0x2b,0x68,0x7d,0x65,0x6c,0x73,0x65,0x20,0x63,0x3d,0x63,0x2b,0x68,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x27,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x22,0x27,0x2b,0x68,0x2b,0x27,0x22,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x27,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x70,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x7d,0x6f,0x2b,0x2b,0x7d,0x61,0x72,0x28,0x73,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x2c,0x61,0x72,0x28,0x73,0x2c,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x68,0x64,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x73,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x45,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x69,0x3c,0x30,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x61,0x3d,0x5b,0x5d,0x2c,0x73,0x3d,0x22,0x22,0x2c,0x6f,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x70,0x6f,0x5b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x5d,0x29,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x7c,0x7c,0x28,0x73,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x7b,0x7d,0x3b,0x73,0x26,0x26,0x28,0x6c,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x73,0x2c,0x73,0x3d,0x22,0x22,0x29,0x2c,0x6f,0x3d,0x6e,0x65,0x77,0x20,0x64,0x64,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x73,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2c,0x73,0x70,0x61,0x63,0x65,0x73,0x3a,0x6c,0x7d,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x7d,0x77,0x68,0x69,0x6c,0x65,0x28,0x2b,0x2b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x69,0x29,0x3b,0x69,0x66,0x28,0x73,0x29,0x7b,0x69,0x66,0x28,0x6f,0x29,0x6f,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x73,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x29,0x7b,0x76,0x61,0x72,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6e,0x5d,0x2c,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x31,0x5d,0x3b,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x65,0x77,0x20,0x75,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x48,0x74,0x28,0x63,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x63,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x5d,0x2c,0x66,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x66,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x5d,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x63,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2c,0x73,0x70,0x61,0x63,0x65,0x73,0x3a,0x7b,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x73,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x22,0x22,0x7d,0x7d,0x29,0x29,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7d,0x2c,0x65,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x73,0x54,0x6f,0x53,0x70,0x61,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x3d,0x21,0x31,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x22,0x22,0x2c,0x6f,0x3d,0x22,0x22,0x3b,0x69,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x7b,0x76,0x61,0x72,0x20,0x66,0x3d,0x61,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x2c,0x6e,0x29,0x2c,0x64,0x3d,0x61,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x2c,0x6e,0x29,0x3b,0x73,0x2b,0x3d,0x66,0x2b,0x61,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x2c,0x6e,0x26,0x26,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x2c,0x6f,0x2b,0x3d,0x66,0x2b,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x61,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x53,0x70,0x61,0x63,0x65,0x28,0x63,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x2c,0x6e,0x26,0x26,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x7d,0x29,0x2c,0x6f,0x3d,0x3d,0x3d,0x73,0x26,0x26,0x28,0x6f,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x7b,0x73,0x70,0x61,0x63,0x65,0x3a,0x73,0x2c,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x3a,0x6f,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x7d,0x2c,0x65,0x2e,0x69,0x73,0x4e,0x61,0x6d,0x65,0x64,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x2b,0x30,0x5d,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x2b,0x30,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x73,0x6c,0x61,0x73,0x68,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x2b,0x31,0x5d,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x2b,0x31,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x77,0x6f,0x72,0x64,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x2b,0x32,0x5d,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x2b,0x32,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x73,0x6c,0x61,0x73,0x68,0x7d,0x2c,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x64,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x4e,0x61,0x6d,0x65,0x64,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x28,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x31,0x5d,0x29,0x2c,0x6e,0x3d,0x28,0x30,0x2c,0x6c,0x65,0x2e,0x75,0x6e,0x65,0x73,0x63,0x29,0x28,0x69,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x61,0x3d,0x7b,0x7d,0x3b,0x6e,0x21,0x3d,0x3d,0x69,0x26,0x26,0x28,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x2f,0x22,0x2b,0x69,0x2b,0x22,0x2f,0x22,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x6e,0x65,0x77,0x20,0x66,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2f,0x22,0x2b,0x6e,0x2b,0x22,0x2f,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x48,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x32,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x32,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x5d,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2c,0x72,0x61,0x77,0x73,0x3a,0x61,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x33,0x2c,0x73,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x29,0x7d,0x2c,0x65,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x7c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x65,0x4e,0x65,0x78,0x74,0x4d,0x65,0x61,0x6e,0x69,0x6e,0x67,0x66,0x75,0x6c,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x69,0x66,0x28,0x6e,0x3c,0x30,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6e,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x45,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6c,0x61,0x73,0x74,0x3b,0x69,0x66,0x28,0x73,0x29,0x7b,0x76,0x61,0x72,0x20,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x73,0x54,0x6f,0x53,0x70,0x61,0x63,0x65,0x28,0x61,0x29,0x2c,0x6c,0x3d,0x6f,0x2e,0x73,0x70,0x61,0x63,0x65,0x2c,0x63,0x3d,0x6f,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x3b,0x63,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x41,0x66,0x74,0x65,0x72,0x2b,0x3d,0x63,0x29,0x2c,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x2b,0x3d,0x6c,0x7d,0x65,0x6c,0x73,0x65,0x20,0x61,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x4f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x4f,0x29,0x7d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x76,0x61,0x72,0x20,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x64,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x6e,0x3e,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x26,0x26,0x28,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x45,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x73,0x28,0x6e,0x29,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x4e,0x61,0x6d,0x65,0x64,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x28,0x29,0x3f,0x70,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x64,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x28,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3f,0x28,0x70,0x3d,0x6e,0x65,0x77,0x20,0x66,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x73,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x29,0x3a,0x70,0x6f,0x5b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x5d,0x7c,0x7c,0x64,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x29,0x2c,0x70,0x29,0x7b,0x69,0x66,0x28,0x64,0x29,0x7b,0x76,0x61,0x72,0x20,0x68,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x73,0x54,0x6f,0x53,0x70,0x61,0x63,0x65,0x28,0x64,0x29,0x2c,0x62,0x3d,0x68,0x2e,0x73,0x70,0x61,0x63,0x65,0x2c,0x76,0x3d,0x68,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x3b,0x70,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x62,0x2c,0x70,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x3d,0x76,0x7d,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x76,0x61,0x72,0x20,0x79,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x73,0x54,0x6f,0x53,0x70,0x61,0x63,0x65,0x28,0x64,0x2c,0x21,0x30,0x29,0x2c,0x77,0x3d,0x79,0x2e,0x73,0x70,0x61,0x63,0x65,0x2c,0x6b,0x3d,0x79,0x2e,0x72,0x61,0x77,0x53,0x70,0x61,0x63,0x65,0x3b,0x6b,0x7c,0x7c,0x28,0x6b,0x3d,0x77,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x3d,0x7b,0x7d,0x2c,0x45,0x3d,0x7b,0x73,0x70,0x61,0x63,0x65,0x73,0x3a,0x7b,0x7d,0x7d,0x3b,0x77,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x20,0x22,0x29,0x26,0x26,0x6b,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x20,0x22,0x29,0x3f,0x28,0x53,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x77,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x2c,0x45,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x6b,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x29,0x3a,0x77,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x20,0x22,0x29,0x26,0x26,0x6b,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x20,0x22,0x29,0x3f,0x28,0x53,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x77,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x45,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x6b,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x3a,0x45,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6b,0x2c,0x70,0x3d,0x6e,0x65,0x77,0x20,0x66,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x20,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x68,0x6f,0x28,0x66,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x31,0x5d,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x66,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2c,0x73,0x70,0x61,0x63,0x65,0x73,0x3a,0x53,0x2c,0x72,0x61,0x77,0x73,0x3a,0x45,0x7d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x26,0x26,0x28,0x70,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x53,0x70,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x70,0x29,0x7d,0x2c,0x65,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x43,0x6f,0x6d,0x6d,0x61,0x3d,0x21,0x30,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x69,0x6e,0x66,0x65,0x72,0x45,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x6c,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x79,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x31,0x5d,0x29,0x7d,0x7d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x69,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x69,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x64,0x64,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x73,0x72,0x28,0x69,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x69,0x2c,0x6e,0x29,0x7d,0x2c,0x65,0x2e,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x20,0x70,0x72,0x65,0x63,0x65,0x64,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x22,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x22,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x53,0x71,0x75,0x61,0x72,0x65,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x22,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x20,0x73,0x71,0x75,0x61,0x72,0x65,0x20,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x27,0x22,0x2b,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2b,0x22,0x27,0x2e,0x20,0x45,0x73,0x63,0x61,0x70,0x69,0x6e,0x67,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x5c,0x5c,0x20,0x6d,0x61,0x79,0x20,0x68,0x65,0x6c,0x70,0x2e,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x50,0x69,0x70,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x27,0x7c,0x27,0x2e,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x54,0x6f,0x6b,0x65,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x7c,0x7c,0x21,0x30,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x77,0x6f,0x72,0x64,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x77,0x6f,0x72,0x64,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x28,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x50,0x69,0x70,0x65,0x28,0x29,0x7d,0x2c,0x65,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x7c,0x22,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x7d,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x4c,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x73,0x72,0x28,0x6e,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x65,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6c,0x61,0x73,0x74,0x2c,0x6e,0x3d,0x31,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x2c,0x69,0x26,0x26,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x4e,0x41,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x6e,0x65,0x77,0x20,0x6c,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x7b,0x73,0x74,0x61,0x72,0x74,0x3a,0x79,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x31,0x5d,0x29,0x7d,0x7d,0x29,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3b,0x66,0x6f,0x72,0x28,0x69,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x61,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x61,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x6e,0x3b,0x29,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x26,0x26,0x6e,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x26,0x26,0x6e,0x2d,0x2d,0x2c,0x6e,0x3f,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x29,0x3a,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x62,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x62,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x3d,0x73,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x6c,0x3d,0x22,0x28,0x22,0x2c,0x63,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x6e,0x3b,0x29,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x26,0x26,0x6e,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x26,0x26,0x6e,0x2d,0x2d,0x2c,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x6c,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x54,0x6f,0x6b,0x65,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x69,0x3f,0x69,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x54,0x6f,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x41,0x6e,0x64,0x45,0x73,0x63,0x61,0x70,0x65,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x6c,0x2c,0x6c,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x75,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6c,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x48,0x74,0x28,0x6f,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x6f,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x43,0x4f,0x4c,0x5d,0x2c,0x63,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x4c,0x49,0x4e,0x45,0x5d,0x2c,0x63,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x43,0x4f,0x4c,0x5d,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x6f,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x29,0x7d,0x69,0x66,0x28,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x22,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x22,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2c,0x6e,0x3d,0x22,0x22,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x3b,0x29,0x6e,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x5b,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x2d,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x2d,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x22,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x31,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x77,0x6f,0x72,0x64,0x29,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x57,0x6f,0x72,0x64,0x28,0x21,0x31,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x2c,0x6f,0x29,0x7b,0x6e,0x2b,0x3d,0x73,0x2c,0x69,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x71,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6e,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x68,0x6f,0x28,0x61,0x2c,0x69,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x61,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x29,0x2c,0x6f,0x3e,0x31,0x26,0x26,0x69,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x26,0x26,0x69,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x26,0x26,0x69,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x4d,0x69,0x73,0x70,0x6c,0x61,0x63,0x65,0x64,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x2e,0x22,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x5b,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x2d,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x2d,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x22,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x73,0x70,0x61,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x7d,0x29,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x53,0x70,0x61,0x63,0x65,0x28,0x69,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x6c,0x61,0x73,0x74,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x53,0x70,0x61,0x63,0x65,0x28,0x69,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x28,0x29,0x7d,0x2c,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x75,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x73,0x72,0x28,0x69,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x69,0x66,0x28,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x6e,0x29,0x3d,0x3d,0x3d,0x22,0x7c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x65,0x77,0x20,0x24,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x73,0x72,0x28,0x61,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x61,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x7d,0x29,0x2c,0x69,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x57,0x6f,0x72,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x3b,0x73,0x26,0x26,0x7e,0x5b,0x24,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2c,0x24,0x2e,0x63,0x61,0x72,0x65,0x74,0x2c,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x2c,0x24,0x2e,0x77,0x6f,0x72,0x64,0x5d,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x73,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x29,0x3b,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x29,0x3b,0x69,0x66,0x28,0x6f,0x2b,0x3d,0x6c,0x2c,0x6c,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5c,0x5c,0x22,0x29,0x3d,0x3d,0x3d,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x7b,0x76,0x61,0x72,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x63,0x26,0x26,0x63,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x26,0x26,0x28,0x6f,0x2b,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x53,0x70,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x63,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x29,0x7d,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x7d,0x76,0x61,0x72,0x20,0x66,0x3d,0x6d,0x6f,0x28,0x6f,0x2c,0x22,0x2e,0x22,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x62,0x29,0x7b,0x76,0x61,0x72,0x20,0x76,0x3d,0x6f,0x5b,0x62,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x2c,0x79,0x3d,0x2f,0x5e,0x5c,0x64,0x2b,0x5c,0x2e,0x5c,0x64,0x2b,0x25,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x76,0x26,0x26,0x21,0x79,0x7d,0x29,0x2c,0x64,0x3d,0x6d,0x6f,0x28,0x6f,0x2c,0x22,0x23,0x22,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x62,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x5b,0x62,0x2d,0x31,0x5d,0x21,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x7d,0x29,0x2c,0x70,0x3d,0x6d,0x6f,0x28,0x6f,0x2c,0x22,0x23,0x7b,0x22,0x29,0x3b,0x70,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x64,0x3d,0x64,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x62,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x7e,0x70,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x62,0x29,0x7d,0x29,0x29,0x3b,0x76,0x61,0x72,0x20,0x68,0x3d,0x28,0x30,0x2c,0x4d,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x6a,0x41,0x28,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x66,0x2c,0x64,0x29,0x29,0x29,0x3b,0x68,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x62,0x2c,0x76,0x29,0x7b,0x76,0x61,0x72,0x20,0x79,0x3d,0x68,0x5b,0x76,0x2b,0x31,0x5d,0x7c,0x7c,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x77,0x3d,0x6f,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x62,0x2c,0x79,0x29,0x3b,0x69,0x66,0x28,0x76,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x2c,0x77,0x2c,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x2c,0x53,0x3d,0x61,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x2c,0x45,0x3d,0x53,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2b,0x68,0x5b,0x76,0x5d,0x2c,0x4f,0x3d,0x48,0x74,0x28,0x53,0x5b,0x31,0x5d,0x2c,0x53,0x5b,0x32,0x5d,0x2b,0x62,0x2c,0x53,0x5b,0x33,0x5d,0x2c,0x53,0x5b,0x32,0x5d,0x2b,0x28,0x79,0x2d,0x31,0x29,0x29,0x3b,0x69,0x66,0x28,0x7e,0x66,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x62,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x42,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x4f,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x45,0x7d,0x3b,0x6b,0x3d,0x6e,0x65,0x77,0x20,0x50,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x61,0x72,0x28,0x42,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x7e,0x64,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x62,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x4e,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x4f,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x45,0x7d,0x3b,0x6b,0x3d,0x6e,0x65,0x77,0x20,0x49,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x61,0x72,0x28,0x4e,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x29,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x76,0x61,0x72,0x20,0x54,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x4f,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x45,0x7d,0x3b,0x61,0x72,0x28,0x54,0x2c,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x2c,0x6b,0x3d,0x6e,0x65,0x77,0x20,0x44,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x54,0x29,0x7d,0x61,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x28,0x6b,0x2c,0x69,0x29,0x2c,0x69,0x3d,0x6e,0x75,0x6c,0x6c,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x7d,0x2c,0x65,0x2e,0x77,0x6f,0x72,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x6e,0x29,0x3d,0x3d,0x3d,0x22,0x7c,0x22,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x2b,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x29,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x57,0x6f,0x72,0x64,0x28,0x69,0x29,0x7d,0x2c,0x65,0x2e,0x6c,0x6f,0x6f,0x70,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x21,0x30,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x69,0x6e,0x66,0x65,0x72,0x45,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x2c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x29,0x7b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x6f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x65,0x73,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x3a,0x69,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x6f,0x70,0x65,0x6e,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3a,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x61,0x72,0x65,0x74,0x3a,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x65,0x71,0x75,0x61,0x6c,0x73,0x3a,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x77,0x6f,0x72,0x64,0x3a,0x74,0x68,0x69,0x73,0x2e,0x77,0x6f,0x72,0x64,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x3a,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x73,0x6c,0x61,0x73,0x68,0x3a,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x73,0x74,0x72,0x3a,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x53,0x71,0x75,0x61,0x72,0x65,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x53,0x71,0x75,0x61,0x72,0x65,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x28,0x29,0x3b,0x63,0x61,0x73,0x65,0x20,0x24,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x28,0x29,0x3b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x28,0x29,0x7d,0x7d,0x2c,0x65,0x2e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x69,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x69,0x3d,0x69,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x2b,0x22,0x20,0x6f,0x72,0x20,0x22,0x2b,0x73,0x7d,0x76,0x61,0x72,0x20,0x6f,0x3d,0x2f,0x5e,0x5b,0x61,0x65,0x69,0x6f,0x75,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x5b,0x30,0x5d,0x29,0x3f,0x22,0x61,0x6e,0x22,0x3a,0x22,0x61,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3f,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x22,0x2b,0x6f,0x2b,0x22,0x20,0x22,0x2b,0x69,0x2b,0x27,0x2c,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x22,0x27,0x2b,0x61,0x2b,0x27,0x22,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x27,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x6e,0x7d,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x22,0x2b,0x6f,0x2b,0x22,0x20,0x22,0x2b,0x69,0x2b,0x22,0x2e,0x22,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x6e,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x53,0x70,0x61,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x3f,0x22,0x20,0x22,0x3a,0x69,0x7d,0x2c,0x65,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x53,0x70,0x61,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x3f,0x22,0x22,0x3a,0x69,0x7d,0x2c,0x65,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x53,0x70,0x61,0x63,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x3f,0x6e,0x3f,0x22,0x20,0x22,0x3a,0x22,0x22,0x3a,0x69,0x7d,0x2c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x54,0x6f,0x6b,0x65,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x3d,0x3d,0x3d,0x24,0x2e,0x73,0x70,0x61,0x63,0x65,0x3f,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x53,0x70,0x61,0x63,0x65,0x28,0x6e,0x29,0x3a,0x6e,0x7d,0x2c,0x65,0x2e,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x28,0x2f,0x5e,0x20,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x29,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x6f,0x73,0x73,0x79,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x6e,0x29,0x2c,0x6e,0x3d,0x21,0x30,0x29,0x2c,0x69,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x6e,0x2c,0x61,0x72,0x28,0x69,0x2c,0x22,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x26,0x26,0x28,0x69,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x70,0x61,0x63,0x65,0x73,0x3d,0x22,0x22,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x69,0x29,0x7d,0x2c,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x73,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x53,0x54,0x41,0x52,0x54,0x5f,0x50,0x4f,0x53,0x5d,0x2c,0x69,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x45,0x4e,0x44,0x5f,0x50,0x4f,0x53,0x5d,0x29,0x7d,0x2c,0x65,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x65,0x4e,0x65,0x78,0x74,0x4d,0x65,0x61,0x6e,0x69,0x6e,0x67,0x66,0x75,0x6c,0x54,0x6f,0x6b,0x65,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x31,0x29,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x6e,0x3d,0x69,0x3b,0x6e,0x3c,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x69,0x66,0x28,0x46,0x41,0x5b,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x6e,0x5d,0x5b,0x50,0x2e,0x46,0x49,0x45,0x4c,0x44,0x53,0x2e,0x54,0x59,0x50,0x45,0x5d,0x5d,0x29,0x7b,0x6e,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x2d,0x31,0x7d,0x2c,0x42,0x41,0x28,0x72,0x2c,0x5b,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x63,0x75,0x72,0x72,0x54,0x6f,0x6b,0x65,0x6e,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x6e,0x65,0x78,0x74,0x54,0x6f,0x6b,0x65,0x6e,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2b,0x31,0x5d,0x7d,0x7d,0x2c,0x7b,0x6b,0x65,0x79,0x3a,0x22,0x70,0x72,0x65,0x76,0x54,0x6f,0x6b,0x65,0x6e,0x22,0x2c,0x67,0x65,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x31,0x5d,0x7d,0x7d,0x5d,0x29,0x2c,0x72,0x7d,0x28,0x29,0x3b,0x76,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x7a,0x41,0x3b,0x77,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x76,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x64,0x3d,0x78,0x28,0x28,0x78,0x69,0x2c,0x78,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x78,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x78,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x55,0x41,0x3d,0x56,0x41,0x28,0x76,0x64,0x28,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x41,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x76,0x61,0x72,0x20,0x48,0x41,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x74,0x2c,0x69,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x66,0x75,0x6e,0x63,0x3d,0x74,0x7c,0x7c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x66,0x75,0x6e,0x63,0x52,0x65,0x73,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x69,0x7d,0x76,0x61,0x72,0x20,0x65,0x3d,0x72,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x70,0x64,0x61,0x74,0x65,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x6e,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x3d,0x3d,0x21,0x31,0x3f,0x21,0x31,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7d,0x2c,0x65,0x2e,0x5f,0x69,0x73,0x4c,0x6f,0x73,0x73,0x79,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x6c,0x6f,0x73,0x73,0x6c,0x65,0x73,0x73,0x3d,0x3d,0x3d,0x21,0x31,0x7d,0x2c,0x65,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x6e,0x65,0x77,0x20,0x55,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x69,0x2c,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x61,0x72,0x73,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x6e,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x2c,0x65,0x2e,0x5f,0x70,0x61,0x72,0x73,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6c,0x6f,0x73,0x73,0x79,0x3a,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x4c,0x6f,0x73,0x73,0x79,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x65,0x2e,0x5f,0x72,0x75,0x6e,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x3d,0x7b,0x7d,0x29,0x2c,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x2c,0x6f,0x29,0x7b,0x74,0x72,0x79,0x7b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x61,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x28,0x69,0x2c,0x6e,0x29,0x3b,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x61,0x2e,0x66,0x75,0x6e,0x63,0x28,0x6c,0x29,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x7b,0x76,0x61,0x72,0x20,0x66,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x5f,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x70,0x64,0x61,0x74,0x65,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x69,0x2c,0x6e,0x29,0x26,0x26,0x28,0x66,0x3d,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x66,0x29,0x2c,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x63,0x2c,0x72,0x6f,0x6f,0x74,0x3a,0x6c,0x2c,0x73,0x74,0x72,0x69,0x6e,0x67,0x3a,0x66,0x7d,0x7d,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x73,0x2c,0x6f,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x63,0x29,0x7b,0x6f,0x28,0x63,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x5f,0x72,0x75,0x6e,0x53,0x79,0x6e,0x63,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x6e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x3d,0x7b,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x28,0x69,0x2c,0x6e,0x29,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x75,0x6e,0x63,0x28,0x61,0x29,0x3b,0x69,0x66,0x28,0x73,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x2e,0x74,0x68,0x65,0x6e,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x61,0x20,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x74,0x6f,0x20,0x61,0x20,0x73,0x79,0x6e,0x63,0x68,0x72,0x6f,0x6e,0x6f,0x75,0x73,0x20,0x63,0x61,0x6c,0x6c,0x2e,0x22,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x6f,0x3d,0x61,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x6f,0x29,0x2c,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x73,0x2c,0x72,0x6f,0x6f,0x74,0x3a,0x61,0x2c,0x73,0x74,0x72,0x69,0x6e,0x67,0x3a,0x6f,0x7d,0x7d,0x2c,0x65,0x2e,0x61,0x73,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x75,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x75,0x6e,0x53,0x79,0x6e,0x63,0x28,0x69,0x2c,0x6e,0x29,0x2e,0x72,0x6f,0x6f,0x74,0x7d,0x2c,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x75,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x79,0x6e,0x63,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x75,0x6e,0x53,0x79,0x6e,0x63,0x28,0x69,0x2c,0x6e,0x29,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x7d,0x2c,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x75,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x7c,0x7c,0x61,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x79,0x6e,0x63,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x2c,0x6e,0x29,0x7b,0x76,0x61,0x72,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x75,0x6e,0x53,0x79,0x6e,0x63,0x28,0x69,0x2c,0x6e,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x7c,0x7c,0x61,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x2c,0x72,0x7d,0x28,0x29,0x3b,0x78,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x48,0x41,0x3b,0x78,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x78,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x64,0x3d,0x78,0x28,0x6e,0x65,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6e,0x65,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6e,0x65,0x2e,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x3d,0x6e,0x65,0x2e,0x74,0x61,0x67,0x3d,0x6e,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x6e,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x6e,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x3d,0x6e,0x65,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x3d,0x6e,0x65,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3d,0x6e,0x65,0x2e,0x69,0x64,0x3d,0x6e,0x65,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x6e,0x65,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x6e,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x3d,0x6e,0x65,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x57,0x41,0x3d,0x7a,0x65,0x28,0x5a,0x61,0x28,0x29,0x29,0x2c,0x47,0x41,0x3d,0x7a,0x65,0x28,0x4c,0x61,0x28,0x29,0x29,0x2c,0x51,0x41,0x3d,0x7a,0x65,0x28,0x69,0x6f,0x28,0x29,0x29,0x2c,0x59,0x41,0x3d,0x7a,0x65,0x28,0x4e,0x61,0x28,0x29,0x29,0x2c,0x4b,0x41,0x3d,0x7a,0x65,0x28,0x46,0x61,0x28,0x29,0x29,0x2c,0x58,0x41,0x3d,0x7a,0x65,0x28,0x73,0x6f,0x28,0x29,0x29,0x2c,0x4a,0x41,0x3d,0x7a,0x65,0x28,0x47,0x61,0x28,0x29,0x29,0x2c,0x5a,0x41,0x3d,0x7a,0x65,0x28,0x50,0x61,0x28,0x29,0x29,0x2c,0x65,0x43,0x3d,0x7a,0x65,0x28,0x44,0x61,0x28,0x29,0x29,0x2c,0x74,0x43,0x3d,0x7a,0x65,0x28,0x48,0x61,0x28,0x29,0x29,0x2c,0x72,0x43,0x3d,0x7a,0x65,0x28,0x55,0x61,0x28,0x29,0x29,0x2c,0x69,0x43,0x3d,0x7a,0x65,0x28,0x74,0x6f,0x28,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x65,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x76,0x61,0x72,0x20,0x6e,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x57,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x6e,0x43,0x3b,0x76,0x61,0x72,0x20,0x73,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x47,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x3d,0x73,0x43,0x3b,0x76,0x61,0x72,0x20,0x61,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x51,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x61,0x43,0x3b,0x76,0x61,0x72,0x20,0x6f,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x59,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x6f,0x43,0x3b,0x76,0x61,0x72,0x20,0x6c,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x4b,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x69,0x64,0x3d,0x6c,0x43,0x3b,0x76,0x61,0x72,0x20,0x75,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x58,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3d,0x75,0x43,0x3b,0x76,0x61,0x72,0x20,0x66,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x4a,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x3d,0x66,0x43,0x3b,0x76,0x61,0x72,0x20,0x63,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x5a,0x41,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x3d,0x63,0x43,0x3b,0x76,0x61,0x72,0x20,0x70,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x65,0x43,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x70,0x43,0x3b,0x76,0x61,0x72,0x20,0x64,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x74,0x43,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x64,0x43,0x3b,0x76,0x61,0x72,0x20,0x68,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x72,0x43,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x74,0x61,0x67,0x3d,0x68,0x43,0x3b,0x76,0x61,0x72,0x20,0x6d,0x43,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x69,0x43,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x6e,0x65,0x2e,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x3d,0x6d,0x43,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x45,0x64,0x3d,0x78,0x28,0x4a,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x4a,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x4a,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x4a,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x4a,0x2e,0x69,0x73,0x43,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x3d,0x4a,0x2e,0x69,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x4a,0x2e,0x69,0x73,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3d,0x45,0x43,0x3b,0x4a,0x2e,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x4a,0x2e,0x69,0x73,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3d,0x4f,0x43,0x3b,0x4a,0x2e,0x69,0x73,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x4a,0x2e,0x69,0x73,0x4e,0x6f,0x64,0x65,0x3d,0x67,0x6f,0x3b,0x4a,0x2e,0x69,0x73,0x50,0x73,0x65,0x75,0x64,0x6f,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x4a,0x2e,0x69,0x73,0x50,0x73,0x65,0x75,0x64,0x6f,0x43,0x6c,0x61,0x73,0x73,0x3d,0x5f,0x43,0x3b,0x4a,0x2e,0x69,0x73,0x50,0x73,0x65,0x75,0x64,0x6f,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x5f,0x64,0x3b,0x4a,0x2e,0x69,0x73,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x3d,0x4a,0x2e,0x69,0x73,0x54,0x61,0x67,0x3d,0x4a,0x2e,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x4a,0x2e,0x69,0x73,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x4a,0x2e,0x69,0x73,0x52,0x6f,0x6f,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x75,0x65,0x3d,0x53,0x65,0x28,0x29,0x2c,0x4f,0x65,0x2c,0x67,0x43,0x3d,0x28,0x4f,0x65,0x3d,0x7b,0x7d,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x43,0x4c,0x41,0x53,0x53,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x43,0x4f,0x4d,0x42,0x49,0x4e,0x41,0x54,0x4f,0x52,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x49,0x44,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x4e,0x45,0x53,0x54,0x49,0x4e,0x47,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x52,0x4f,0x4f,0x54,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x53,0x45,0x4c,0x45,0x43,0x54,0x4f,0x52,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x53,0x54,0x52,0x49,0x4e,0x47,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x54,0x41,0x47,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x5b,0x75,0x65,0x2e,0x55,0x4e,0x49,0x56,0x45,0x52,0x53,0x41,0x4c,0x5d,0x3d,0x21,0x30,0x2c,0x4f,0x65,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x67,0x43,0x5b,0x72,0x2e,0x74,0x79,0x70,0x65,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x65,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x6f,0x28,0x65,0x29,0x26,0x26,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x72,0x7d,0x76,0x61,0x72,0x20,0x41,0x64,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3d,0x41,0x64,0x3b,0x76,0x61,0x72,0x20,0x79,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x43,0x4c,0x41,0x53,0x53,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x43,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x3d,0x79,0x43,0x3b,0x76,0x61,0x72,0x20,0x62,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x43,0x4f,0x4d,0x42,0x49,0x4e,0x41,0x54,0x4f,0x52,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x3d,0x62,0x43,0x3b,0x76,0x61,0x72,0x20,0x77,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3d,0x77,0x43,0x3b,0x76,0x61,0x72,0x20,0x76,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x49,0x44,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3d,0x76,0x43,0x3b,0x76,0x61,0x72,0x20,0x78,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x4e,0x45,0x53,0x54,0x49,0x4e,0x47,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x3d,0x78,0x43,0x3b,0x76,0x61,0x72,0x20,0x79,0x6f,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x50,0x53,0x45,0x55,0x44,0x4f,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x50,0x73,0x65,0x75,0x64,0x6f,0x3d,0x79,0x6f,0x3b,0x76,0x61,0x72,0x20,0x6b,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x52,0x4f,0x4f,0x54,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x52,0x6f,0x6f,0x74,0x3d,0x6b,0x43,0x3b,0x76,0x61,0x72,0x20,0x53,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x53,0x45,0x4c,0x45,0x43,0x54,0x4f,0x52,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x53,0x43,0x3b,0x76,0x61,0x72,0x20,0x41,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x53,0x54,0x52,0x49,0x4e,0x47,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x41,0x43,0x3b,0x76,0x61,0x72,0x20,0x43,0x64,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x54,0x41,0x47,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x54,0x61,0x67,0x3d,0x43,0x64,0x3b,0x76,0x61,0x72,0x20,0x43,0x43,0x3d,0x55,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x65,0x2e,0x55,0x4e,0x49,0x56,0x45,0x52,0x53,0x41,0x4c,0x29,0x3b,0x4a,0x2e,0x69,0x73,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x3d,0x43,0x43,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x64,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x6f,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x28,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x7c,0x7c,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x7c,0x7c,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x3a,0x61,0x66,0x74,0x65,0x72,0x22,0x7c,0x7c,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x22,0x7c,0x7c,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x43,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x6f,0x28,0x72,0x29,0x26,0x26,0x21,0x5f,0x64,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x43,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x21,0x28,0x67,0x6f,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x43,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x64,0x28,0x72,0x29,0x7c,0x7c,0x43,0x64,0x28,0x72,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x64,0x3d,0x78,0x28,0x4b,0x65,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x4b,0x65,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x76,0x61,0x72,0x20,0x62,0x6f,0x3d,0x53,0x65,0x28,0x29,0x3b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x62,0x6f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x7c,0x7c,0x72,0x20,0x69,0x6e,0x20,0x4b,0x65,0x26,0x26,0x4b,0x65,0x5b,0x72,0x5d,0x3d,0x3d,0x3d,0x62,0x6f,0x5b,0x72,0x5d,0x7c,0x7c,0x28,0x4b,0x65,0x5b,0x72,0x5d,0x3d,0x62,0x6f,0x5b,0x72,0x5d,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x6f,0x3d,0x53,0x64,0x28,0x29,0x3b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x77,0x6f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x7c,0x7c,0x72,0x20,0x69,0x6e,0x20,0x4b,0x65,0x26,0x26,0x4b,0x65,0x5b,0x72,0x5d,0x3d,0x3d,0x3d,0x77,0x6f,0x5b,0x72,0x5d,0x7c,0x7c,0x28,0x4b,0x65,0x5b,0x72,0x5d,0x3d,0x77,0x6f,0x5b,0x72,0x5d,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x76,0x6f,0x3d,0x45,0x64,0x28,0x29,0x3b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x76,0x6f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x7c,0x7c,0x72,0x20,0x69,0x6e,0x20,0x4b,0x65,0x26,0x26,0x4b,0x65,0x5b,0x72,0x5d,0x3d,0x3d,0x3d,0x76,0x6f,0x5b,0x72,0x5d,0x7c,0x7c,0x28,0x4b,0x65,0x5b,0x72,0x5d,0x3d,0x76,0x6f,0x5b,0x72,0x5d,0x29,0x7d,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x74,0x3d,0x78,0x28,0x28,0x6b,0x69,0x2c,0x52,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x6b,0x69,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3d,0x21,0x30,0x3b,0x6b,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x76,0x61,0x72,0x20,0x54,0x43,0x3d,0x49,0x43,0x28,0x6b,0x64,0x28,0x29,0x29,0x2c,0x52,0x43,0x3d,0x50,0x43,0x28,0x4f,0x64,0x28,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x64,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x76,0x61,0x72,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x54,0x64,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x74,0x3a,0x65,0x7d,0x29,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x50,0x43,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x26,0x26,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x3b,0x76,0x61,0x72,0x20,0x74,0x3d,0x54,0x64,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x26,0x26,0x74,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x7b,0x7d,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x61,0x20,0x69,0x6e,0x20,0x72,0x29,0x69,0x66,0x28,0x61,0x21,0x3d,0x3d,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x2c,0x61,0x29,0x29,0x7b,0x76,0x61,0x72,0x20,0x73,0x3d,0x6e,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x28,0x72,0x2c,0x61,0x29,0x3a,0x6e,0x75,0x6c,0x6c,0x3b,0x73,0x26,0x26,0x28,0x73,0x2e,0x67,0x65,0x74,0x7c,0x7c,0x73,0x2e,0x73,0x65,0x74,0x29,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x69,0x2c,0x61,0x2c,0x73,0x29,0x3a,0x69,0x5b,0x61,0x5d,0x3d,0x72,0x5b,0x61,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x72,0x2c,0x74,0x26,0x26,0x74,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x69,0x29,0x2c,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x49,0x43,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x76,0x61,0x72,0x20,0x78,0x6f,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x54,0x43,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x65,0x29,0x7d,0x3b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x78,0x6f,0x2c,0x52,0x43,0x29,0x3b,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x78,0x6f,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3b,0x76,0x61,0x72,0x20,0x44,0x43,0x3d,0x78,0x6f,0x3b,0x6b,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x44,0x43,0x3b,0x52,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6b,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x22,0x66,0x6f,0x6e,0x74,0x53,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x72,0x29,0x3f,0x65,0x3d,0x3e,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x28,0x7b,0x7d,0x29,0x29,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x26,0x26,0x28,0x65,0x3d,0x65,0x5b,0x30,0x5d,0x29,0x2c,0x65,0x29,0x3a,0x72,0x3d,0x3d,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x22,0x3f,0x65,0x3d,0x3e,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x28,0x7b,0x7d,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x26,0x26,0x6b,0x65,0x28,0x65,0x5b,0x31,0x5d,0x29,0x3f,0x65,0x5b,0x30,0x5d,0x3a,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x3f,0x74,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x3a,0x74,0x7d,0x3a,0x5b,0x22,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x49,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x63,0x75,0x72,0x73,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x72,0x29,0x3f,0x65,0x3d,0x3e,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x28,0x7b,0x7d,0x29,0x29,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x26,0x26,0x28,0x65,0x3d,0x65,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x29,0x2c,0x65,0x29,0x3a,0x5b,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x6f,0x77,0x73,0x22,0x2c,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x72,0x29,0x3f,0x65,0x3d,0x3e,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x28,0x7b,0x7d,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x65,0x2e,0x6c,0x69,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x65,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x29,0x2c,0x65,0x29,0x3a,0x28,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x28,0x74,0x29,0x29,0x2c,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x53,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x4b,0x74,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x64,0x3d,0x78,0x28,0x28,0x24,0x49,0x2c,0x5f,0x6f,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x7b,0x52,0x75,0x6c,0x65,0x3a,0x50,0x64,0x2c,0x41,0x74,0x52,0x75,0x6c,0x65,0x3a,0x71,0x43,0x7d,0x3d,0x24,0x65,0x28,0x29,0x2c,0x49,0x64,0x3d,0x69,0x74,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6b,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x74,0x72,0x79,0x7b,0x49,0x64,0x28,0x69,0x3d,0x3e,0x7b,0x74,0x3d,0x69,0x7d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x69,0x29,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x22,0x29,0x3f,0x65,0x3f,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x4d,0x69,0x73,0x73,0x65,0x64,0x20,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x22,0x29,0x3a,0x69,0x3a,0x65,0x3f,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x69,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3a,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x61,0x74,0x28,0x30,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x64,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x21,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x65,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x7d,0x29,0x3b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x22,0x26,0x22,0x3f,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x6b,0x6f,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x26,0x22,0x2c,0x6e,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x29,0x29,0x3a,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x6e,0x29,0x2c,0x74,0x3d,0x21,0x30,0x7d,0x65,0x6c,0x73,0x65,0x22,0x6e,0x6f,0x64,0x65,0x73,0x22,0x69,0x6e,0x20,0x69,0x26,0x26,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x44,0x64,0x28,0x69,0x2c,0x65,0x29,0x26,0x26,0x28,0x74,0x3d,0x21,0x30,0x29,0x7d,0x29,0x2c,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x64,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x6b,0x6f,0x28,0x69,0x2c,0x72,0x29,0x3b,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x61,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x6b,0x6f,0x28,0x61,0x2c,0x65,0x29,0x3b,0x44,0x64,0x28,0x73,0x2c,0x6e,0x29,0x7c,0x7c,0x28,0x73,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x49,0x64,0x2e,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x20,0x22,0x7d,0x29,0x29,0x2c,0x73,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x6e,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x7d,0x29,0x29,0x29,0x2c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x29,0x7d,0x29,0x7d,0x29,0x2c,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x70,0x72,0x65,0x76,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x65,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x72,0x29,0x3b,0x74,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x70,0x72,0x65,0x76,0x28,0x29,0x3b,0x65,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x74,0x29,0x2c,0x74,0x3d,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x43,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x3d,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x69,0x2e,0x65,0x61,0x63,0x68,0x28,0x6f,0x3d,0x3e,0x7b,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x6e,0x3f,0x61,0x26,0x26,0x28,0x6f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3d,0x71,0x64,0x28,0x74,0x2c,0x6f,0x29,0x29,0x3a,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x6f,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3f,0x72,0x5b,0x6f,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x3f,0x65,0x28,0x74,0x2c,0x6f,0x2c,0x61,0x29,0x3a,0x69,0x5b,0x41,0x6f,0x5d,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3a,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x7d,0x29,0x2c,0x6e,0x26,0x26,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x73,0x29,0x6f,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x6c,0x29,0x3b,0x69,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x6f,0x29,0x7d,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x6f,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x50,0x64,0x28,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x72,0x2c,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x65,0x29,0x2c,0x74,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x69,0x29,0x2c,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x64,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x72,0x29,0x74,0x5b,0x69,0x5d,0x3d,0x21,0x30,0x3b,0x69,0x66,0x28,0x65,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x74,0x5b,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x40,0x2f,0x2c,0x22,0x22,0x29,0x5d,0x3d,0x21,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x43,0x28,0x72,0x29,0x7b,0x72,0x3d,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x5c,0x28,0x28,0x2e,0x2a,0x29,0x5c,0x29,0x24,0x2f,0x29,0x3b,0x69,0x66,0x28,0x21,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x61,0x73,0x69,0x63,0x22,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x72,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x5b,0x31,0x5d,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x28,0x77,0x69,0x74,0x68,0x28,0x3f,0x3a,0x6f,0x75,0x74,0x29,0x3f,0x29,0x3a,0x28,0x2e,0x2b,0x29,0x24,0x2f,0x29,0x3b,0x69,0x66,0x28,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x5b,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x77,0x69,0x74,0x68,0x22,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x74,0x5b,0x32,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x5b,0x73,0x2c,0x21,0x30,0x5d,0x29,0x29,0x3b,0x69,0x66,0x28,0x69,0x26,0x26,0x6e,0x2e,0x61,0x6c,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x6e,0x6f,0x6f,0x70,0x22,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x73,0x3d,0x3e,0x21,0x21,0x6e,0x5b,0x73,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x61,0x6c,0x6c,0x3f,0x61,0x3d,0x28,0x29,0x3d,0x3e,0x21,0x30,0x3a,0x69,0x26,0x26,0x28,0x61,0x3d,0x73,0x3d,0x3e,0x73,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x6c,0x22,0x3f,0x21,0x31,0x3a,0x21,0x6e,0x5b,0x73,0x5d,0x29,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x69,0x74,0x68,0x72,0x75,0x6c,0x65,0x73,0x22,0x2c,0x65,0x73,0x63,0x61,0x70,0x65,0x73,0x3a,0x61,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x22,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x43,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x26,0x26,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x71,0x43,0x3b,0x29,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x29,0x2c,0x74,0x3d,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x43,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x5b,0x4c,0x64,0x5d,0x3b,0x69,0x66,0x28,0x21,0x65,0x29,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x69,0x2c,0x6e,0x3d,0x2d,0x31,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x3d,0x4d,0x43,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x6c,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x2c,0x66,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x28,0x63,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x69,0x3d,0x63,0x2c,0x6e,0x3d,0x66,0x2c,0x73,0x3d,0x6f,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x6f,0x3b,0x6f,0x3d,0x63,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x2c,0x64,0x26,0x26,0x6f,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x64,0x29,0x2c,0x61,0x3d,0x61,0x7c,0x7c,0x6f,0x7d,0x7d,0x29,0x2c,0x69,0x3f,0x73,0x3f,0x28,0x61,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x74,0x29,0x2c,0x69,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x73,0x29,0x29,0x3a,0x69,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x74,0x29,0x3a,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x74,0x29,0x2c,0x72,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x26,0x26,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3b,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x6e,0x2b,0x31,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x66,0x2c,0x64,0x2c,0x70,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x63,0x3b,0x63,0x3d,0x66,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x2c,0x68,0x26,0x26,0x63,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x68,0x29,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x5b,0x5d,0x2c,0x79,0x3d,0x28,0x70,0x5b,0x64,0x2d,0x31,0x5d,0x7c,0x7c,0x72,0x29,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x79,0x3b,0x29,0x62,0x2e,0x70,0x75,0x73,0x68,0x28,0x79,0x29,0x2c,0x79,0x3d,0x79,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x63,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x62,0x29,0x7d,0x29,0x2c,0x63,0x26,0x26,0x28,0x73,0x7c,0x7c,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x29,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x63,0x29,0x7d,0x7d,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x76,0x61,0x72,0x20,0x41,0x6f,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x72,0x6f,0x6f,0x74,0x52,0x75,0x6c,0x65,0x4d,0x65,0x72,0x67,0x65,0x53,0x65,0x6c,0x22,0x29,0x2c,0x4c,0x64,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x72,0x6f,0x6f,0x74,0x52,0x75,0x6c,0x65,0x45,0x73,0x63,0x61,0x70,0x65,0x73,0x22,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x43,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x70,0x61,0x72,0x61,0x6d,0x73,0x3a,0x65,0x7d,0x3d,0x72,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x74,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x69,0x2c,0x65,0x73,0x63,0x61,0x70,0x65,0x73,0x3a,0x6e,0x7d,0x3d,0x4c,0x43,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x72,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x40,0x24,0x7b,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x29,0x7d,0x60,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x62,0x61,0x73,0x69,0x63,0x22,0x26,0x26,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x65,0x77,0x20,0x50,0x64,0x28,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x69,0x2c,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7d,0x29,0x3b,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x6c,0x6c,0x28,0x29,0x2c,0x72,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x61,0x29,0x7d,0x72,0x5b,0x4c,0x64,0x5d,0x3d,0x6e,0x2c,0x72,0x5b,0x41,0x6f,0x5d,0x3d,0x6e,0x3f,0x21,0x6e,0x28,0x22,0x61,0x6c,0x6c,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x6f,0x70,0x22,0x7d,0x76,0x61,0x72,0x20,0x43,0x6f,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x68,0x61,0x73,0x52,0x6f,0x6f,0x74,0x52,0x75,0x6c,0x65,0x22,0x29,0x3b,0x5f,0x6f,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x28,0x72,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x24,0x64,0x28,0x5b,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x2c,0x22,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x2c,0x22,0x6c,0x61,0x79,0x65,0x72,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x5d,0x2c,0x72,0x2e,0x62,0x75,0x62,0x62,0x6c,0x65,0x29,0x2c,0x74,0x3d,0x24,0x43,0x28,0x65,0x29,0x2c,0x69,0x3d,0x24,0x64,0x28,0x5b,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x63,0x65,0x22,0x2c,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x2c,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x5d,0x2c,0x72,0x2e,0x75,0x6e,0x77,0x72,0x61,0x70,0x29,0x2c,0x6e,0x3d,0x28,0x72,0x2e,0x72,0x6f,0x6f,0x74,0x52,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x7c,0x7c,0x22,0x61,0x74,0x2d,0x72,0x6f,0x6f,0x74,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x40,0x2f,0x2c,0x22,0x22,0x29,0x2c,0x61,0x3d,0x72,0x2e,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x45,0x6d,0x70,0x74,0x79,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x22,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x2d,0x6e,0x65,0x73,0x74,0x65,0x64,0x22,0x2c,0x4f,0x6e,0x63,0x65,0x28,0x73,0x29,0x7b,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x6e,0x2c,0x6f,0x3d,0x3e,0x7b,0x42,0x43,0x28,0x6f,0x29,0x2c,0x73,0x5b,0x43,0x6f,0x5d,0x3d,0x21,0x30,0x7d,0x29,0x7d,0x2c,0x52,0x75,0x6c,0x65,0x28,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x21,0x31,0x2c,0x6c,0x3d,0x73,0x2c,0x63,0x3d,0x21,0x31,0x2c,0x66,0x3d,0x5b,0x5d,0x3b,0x73,0x2e,0x65,0x61,0x63,0x68,0x28,0x64,0x3d,0x3e,0x7b,0x64,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x3f,0x28,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6c,0x3d,0x53,0x6f,0x28,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x66,0x2c,0x6c,0x29,0x2c,0x66,0x3d,0x5b,0x5d,0x29,0x2c,0x63,0x3d,0x21,0x30,0x2c,0x6f,0x3d,0x21,0x30,0x2c,0x64,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3d,0x71,0x64,0x28,0x73,0x2c,0x64,0x29,0x2c,0x6c,0x3d,0x56,0x6e,0x28,0x64,0x2c,0x6c,0x29,0x29,0x3a,0x64,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x3f,0x28,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6c,0x3d,0x53,0x6f,0x28,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x66,0x2c,0x6c,0x29,0x2c,0x66,0x3d,0x5b,0x5d,0x29,0x2c,0x64,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x6e,0x3f,0x28,0x6f,0x3d,0x21,0x30,0x2c,0x74,0x28,0x73,0x2c,0x64,0x2c,0x21,0x30,0x2c,0x64,0x5b,0x41,0x6f,0x5d,0x29,0x2c,0x6c,0x3d,0x56,0x6e,0x28,0x64,0x2c,0x6c,0x29,0x29,0x3a,0x65,0x5b,0x64,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x3f,0x28,0x63,0x3d,0x21,0x30,0x2c,0x6f,0x3d,0x21,0x30,0x2c,0x74,0x28,0x73,0x2c,0x64,0x2c,0x21,0x30,0x29,0x2c,0x6c,0x3d,0x56,0x6e,0x28,0x64,0x2c,0x6c,0x29,0x29,0x3a,0x69,0x5b,0x64,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x3f,0x28,0x63,0x3d,0x21,0x30,0x2c,0x6f,0x3d,0x21,0x30,0x2c,0x74,0x28,0x73,0x2c,0x64,0x2c,0x21,0x31,0x29,0x2c,0x6c,0x3d,0x56,0x6e,0x28,0x64,0x2c,0x6c,0x29,0x29,0x3a,0x63,0x26,0x26,0x66,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x29,0x29,0x3a,0x64,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x63,0x26,0x26,0x66,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x29,0x7d,0x29,0x2c,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6c,0x3d,0x53,0x6f,0x28,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x66,0x2c,0x6c,0x29,0x29,0x2c,0x6f,0x26,0x26,0x61,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x3d,0x21,0x30,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x7d,0x2c,0x52,0x6f,0x6f,0x74,0x45,0x78,0x69,0x74,0x28,0x73,0x29,0x7b,0x73,0x5b,0x43,0x6f,0x5d,0x26,0x26,0x28,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x6e,0x2c,0x4e,0x43,0x29,0x2c,0x73,0x5b,0x43,0x6f,0x5d,0x3d,0x21,0x31,0x29,0x7d,0x7d,0x7d,0x3b,0x5f,0x6f,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x3d,0x21,0x30,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6a,0x64,0x3d,0x78,0x28,0x28,0x4c,0x49,0x2c,0x46,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x4e,0x64,0x3d,0x2f,0x2d,0x28,0x5c,0x77,0x7c,0x24,0x29,0x2f,0x67,0x2c,0x42,0x64,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x65,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x46,0x43,0x3d,0x72,0x3d,0x3e,0x28,0x72,0x3d,0x72,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x72,0x3d,0x3d,0x3d,0x22,0x66,0x6c,0x6f,0x61,0x74,0x22,0x3f,0x22,0x63,0x73,0x73,0x46,0x6c,0x6f,0x61,0x74,0x22,0x3a,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x3f,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x31,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x4e,0x64,0x2c,0x42,0x64,0x29,0x3a,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x4e,0x64,0x2c,0x42,0x64,0x29,0x29,0x3b,0x46,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x46,0x43,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x54,0x6f,0x3d,0x78,0x28,0x28,0x4d,0x49,0x2c,0x7a,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6a,0x43,0x3d,0x6a,0x64,0x28,0x29,0x2c,0x7a,0x43,0x3d,0x7b,0x62,0x6f,0x78,0x46,0x6c,0x65,0x78,0x3a,0x21,0x30,0x2c,0x62,0x6f,0x78,0x46,0x6c,0x65,0x78,0x47,0x72,0x6f,0x75,0x70,0x3a,0x21,0x30,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x3a,0x21,0x30,0x2c,0x66,0x6c,0x65,0x78,0x3a,0x21,0x30,0x2c,0x66,0x6c,0x65,0x78,0x47,0x72,0x6f,0x77,0x3a,0x21,0x30,0x2c,0x66,0x6c,0x65,0x78,0x50,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x3a,0x21,0x30,0x2c,0x66,0x6c,0x65,0x78,0x53,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x21,0x30,0x2c,0x66,0x6c,0x65,0x78,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x3a,0x21,0x30,0x2c,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x3a,0x21,0x30,0x2c,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x3a,0x21,0x30,0x2c,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x21,0x30,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x30,0x2c,0x6f,0x72,0x64,0x65,0x72,0x3a,0x21,0x30,0x2c,0x6f,0x72,0x70,0x68,0x61,0x6e,0x73,0x3a,0x21,0x30,0x2c,0x74,0x61,0x62,0x53,0x69,0x7a,0x65,0x3a,0x21,0x30,0x2c,0x77,0x69,0x64,0x6f,0x77,0x73,0x3a,0x21,0x30,0x2c,0x7a,0x49,0x6e,0x64,0x65,0x78,0x3a,0x21,0x30,0x2c,0x7a,0x6f,0x6f,0x6d,0x3a,0x21,0x30,0x2c,0x66,0x69,0x6c,0x6c,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x30,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x44,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x21,0x30,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x30,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x21,0x30,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x21,0x30,0x3a,0x4f,0x6f,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x6f,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x65,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x29,0x65,0x3d,0x22,0x40,0x22,0x2b,0x69,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x69,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x26,0x28,0x65,0x2b,0x3d,0x22,0x20,0x22,0x2b,0x69,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x5b,0x65,0x5d,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x74,0x5b,0x65,0x5d,0x3d,0x45,0x6f,0x28,0x69,0x29,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x5b,0x65,0x5d,0x29,0x3f,0x74,0x5b,0x65,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x45,0x6f,0x28,0x69,0x29,0x29,0x3a,0x74,0x5b,0x65,0x5d,0x3d,0x5b,0x74,0x5b,0x65,0x5d,0x2c,0x45,0x6f,0x28,0x69,0x29,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x4f,0x6f,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x74,0x5b,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x5d,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x69,0x6e,0x20,0x6e,0x29,0x74,0x5b,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x5d,0x5b,0x61,0x5d,0x3d,0x6e,0x5b,0x61,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x5b,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x5d,0x3d,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x29,0x7b,0x69,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x26,0x26,0x69,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x7c,0x7c,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x3d,0x3d,0x22,0x3a,0x65,0x78,0x70,0x6f,0x72,0x74,0x22,0x3f,0x65,0x3d,0x69,0x2e,0x70,0x72,0x6f,0x70,0x3a,0x65,0x3d,0x6a,0x43,0x28,0x69,0x2e,0x70,0x72,0x6f,0x70,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x21,0x69,0x73,0x4e,0x61,0x4e,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x26,0x26,0x7a,0x43,0x5b,0x65,0x5d,0x26,0x26,0x28,0x6e,0x3d,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x2c,0x69,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x26,0x26,0x28,0x6e,0x2b,0x3d,0x22,0x20,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x5b,0x65,0x5d,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x74,0x5b,0x65,0x5d,0x3d,0x6e,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x5b,0x65,0x5d,0x29,0x3f,0x74,0x5b,0x65,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x3a,0x74,0x5b,0x65,0x5d,0x3d,0x5b,0x74,0x5b,0x65,0x5d,0x2c,0x6e,0x5d,0x7d,0x7d,0x29,0x2c,0x74,0x7d,0x7a,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4f,0x6f,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x6e,0x3d,0x78,0x28,0x28,0x4e,0x49,0x2c,0x57,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x69,0x3d,0x24,0x65,0x28,0x29,0x2c,0x55,0x64,0x3d,0x2f,0x5c,0x73,0x2a,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x5c,0x73,0x2a,0x24,0x2f,0x69,0x2c,0x55,0x43,0x3d,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x66,0x6c,0x65,0x78,0x22,0x3a,0x21,0x30,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3a,0x21,0x30,0x2c,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x63,0x6f,0x75,0x6e,0x74,0x22,0x3a,0x21,0x30,0x2c,0x66,0x6c,0x65,0x78,0x3a,0x21,0x30,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x22,0x3a,0x21,0x30,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x3a,0x21,0x30,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x3a,0x21,0x30,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x22,0x3a,0x21,0x30,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x22,0x3a,0x21,0x30,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x21,0x30,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x3a,0x21,0x30,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x21,0x30,0x2c,0x6f,0x72,0x64,0x65,0x72,0x3a,0x21,0x30,0x2c,0x6f,0x72,0x70,0x68,0x61,0x6e,0x73,0x3a,0x21,0x30,0x2c,0x22,0x74,0x61,0x62,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x21,0x30,0x2c,0x77,0x69,0x64,0x6f,0x77,0x73,0x3a,0x21,0x30,0x2c,0x22,0x7a,0x2d,0x69,0x6e,0x64,0x65,0x78,0x22,0x3a,0x21,0x30,0x2c,0x7a,0x6f,0x6f,0x6d,0x3a,0x21,0x30,0x2c,0x22,0x66,0x69,0x6c,0x6c,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x21,0x30,0x2c,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x3a,0x21,0x30,0x2c,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x21,0x30,0x2c,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x21,0x30,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x43,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x5b,0x41,0x2d,0x5a,0x5d,0x29,0x2f,0x67,0x2c,0x22,0x2d,0x24,0x31,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x6d,0x73,0x2d,0x2f,0x2c,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x64,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x74,0x3d,0x3d,0x3d,0x21,0x31,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x28,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x2d,0x22,0x29,0x7c,0x7c,0x28,0x65,0x3d,0x56,0x43,0x28,0x65,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x26,0x26,0x28,0x74,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x55,0x43,0x5b,0x65,0x5d,0x3f,0x74,0x3d,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3a,0x74,0x2b,0x3d,0x22,0x70,0x78,0x22,0x29,0x2c,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x73,0x73,0x2d,0x66,0x6c,0x6f,0x61,0x74,0x22,0x26,0x26,0x28,0x65,0x3d,0x22,0x66,0x6c,0x6f,0x61,0x74,0x22,0x29,0x2c,0x55,0x64,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x29,0x3f,0x28,0x74,0x3d,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x55,0x64,0x2c,0x22,0x22,0x29,0x2c,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x41,0x69,0x2e,0x64,0x65,0x63,0x6c,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x65,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2c,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x30,0x7d,0x29,0x29,0x29,0x3a,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x41,0x69,0x2e,0x64,0x65,0x63,0x6c,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x65,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x7d,0x29,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x64,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x41,0x69,0x2e,0x61,0x74,0x52,0x75,0x6c,0x65,0x28,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x65,0x5b,0x31,0x5d,0x2c,0x70,0x61,0x72,0x61,0x6d,0x73,0x3a,0x65,0x5b,0x33,0x5d,0x7c,0x7c,0x22,0x22,0x7d,0x29,0x3b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x52,0x6f,0x28,0x74,0x2c,0x69,0x29,0x29,0x2c,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x2c,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x74,0x20,0x69,0x6e,0x20,0x72,0x29,0x69,0x66,0x28,0x69,0x3d,0x72,0x5b,0x74,0x5d,0x2c,0x21,0x28,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x29,0x69,0x66,0x28,0x74,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x40,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x40,0x28,0x5c,0x53,0x2b,0x29,0x28,0x5c,0x73,0x2b,0x28,0x5b,0x5c,0x57,0x5c,0x77,0x5d,0x2a,0x29,0x5c,0x73,0x2a,0x29,0x3f,0x2f,0x29,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x69,0x29,0x48,0x64,0x28,0x65,0x2c,0x61,0x2c,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x48,0x64,0x28,0x65,0x2c,0x61,0x2c,0x69,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x69,0x29,0x56,0x64,0x28,0x65,0x2c,0x74,0x2c,0x61,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x28,0x6e,0x3d,0x41,0x69,0x2e,0x72,0x75,0x6c,0x65,0x28,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x74,0x7d,0x29,0x2c,0x52,0x6f,0x28,0x69,0x2c,0x6e,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x29,0x3a,0x56,0x64,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x57,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x41,0x69,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x6f,0x28,0x72,0x2c,0x65,0x29,0x2c,0x65,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x6f,0x3d,0x78,0x28,0x28,0x42,0x49,0x2c,0x47,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x43,0x3d,0x54,0x6f,0x28,0x29,0x3b,0x47,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x26,0x26,0x65,0x2e,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x73,0x28,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x7c,0x7c,0x22,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x22,0x3b,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x69,0x2b,0x22,0x3a,0x20,0x22,0x2b,0x74,0x2e,0x74,0x65,0x78,0x74,0x29,0x7d,0x29,0x2c,0x48,0x43,0x28,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x59,0x64,0x3d,0x78,0x28,0x28,0x46,0x49,0x2c,0x51,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x57,0x43,0x3d,0x24,0x65,0x28,0x29,0x2c,0x47,0x43,0x3d,0x50,0x6f,0x28,0x29,0x2c,0x51,0x43,0x3d,0x48,0x6e,0x28,0x29,0x3b,0x51,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x57,0x43,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x61,0x77,0x61,0x69,0x74,0x20,0x74,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x69,0x2c,0x7b,0x70,0x61,0x72,0x73,0x65,0x72,0x3a,0x51,0x43,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x43,0x28,0x6e,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x58,0x64,0x3d,0x78,0x28,0x28,0x6a,0x49,0x2c,0x4b,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x59,0x43,0x3d,0x24,0x65,0x28,0x29,0x2c,0x4b,0x43,0x3d,0x50,0x6f,0x28,0x29,0x2c,0x58,0x43,0x3d,0x48,0x6e,0x28,0x29,0x3b,0x4b,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x59,0x43,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x74,0x2c,0x7b,0x70,0x61,0x72,0x73,0x65,0x72,0x3a,0x58,0x43,0x2c,0x66,0x72,0x6f,0x6d,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x43,0x28,0x69,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5a,0x64,0x3d,0x78,0x28,0x28,0x7a,0x49,0x2c,0x4a,0x64,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4a,0x43,0x3d,0x54,0x6f,0x28,0x29,0x2c,0x5a,0x43,0x3d,0x48,0x6e,0x28,0x29,0x2c,0x65,0x5f,0x3d,0x59,0x64,0x28,0x29,0x2c,0x74,0x5f,0x3d,0x58,0x64,0x28,0x29,0x3b,0x4a,0x64,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x69,0x66,0x79,0x3a,0x4a,0x43,0x2c,0x70,0x61,0x72,0x73,0x65,0x3a,0x5a,0x43,0x2c,0x61,0x73,0x79,0x6e,0x63,0x3a,0x65,0x5f,0x2c,0x73,0x79,0x6e,0x63,0x3a,0x74,0x5f,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x72,0x2c,0x65,0x68,0x2c,0x55,0x49,0x2c,0x56,0x49,0x2c,0x48,0x49,0x2c,0x57,0x49,0x2c,0x74,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6f,0x72,0x3d,0x70,0x65,0x28,0x5a,0x64,0x28,0x29,0x29,0x2c,0x65,0x68,0x3d,0x6f,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x55,0x49,0x3d,0x6f,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x6f,0x62,0x6a,0x65,0x63,0x74,0x69,0x66,0x79,0x2c,0x56,0x49,0x3d,0x6f,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x2c,0x48,0x49,0x3d,0x6f,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x61,0x73,0x79,0x6e,0x63,0x2c,0x57,0x49,0x3d,0x6f,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x79,0x6e,0x63,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x72,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x65,0x65,0x28,0x5b,0x28,0x30,0x2c,0x72,0x68,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x7b,0x62,0x75,0x62,0x62,0x6c,0x65,0x3a,0x5b,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x5d,0x7d,0x29,0x5d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x7b,0x70,0x61,0x72,0x73,0x65,0x72,0x3a,0x65,0x68,0x7d,0x29,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3a,0x6c,0x72,0x28,0x5b,0x72,0x5d,0x29,0x7d,0x76,0x61,0x72,0x20,0x72,0x68,0x2c,0x49,0x6f,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x72,0x68,0x3d,0x70,0x65,0x28,0x4d,0x64,0x28,0x29,0x29,0x3b,0x74,0x68,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x72,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x21,0x31,0x29,0x7b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x28,0x30,0x2c,0x69,0x68,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x65,0x29,0x3a,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x6e,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x73,0x3d,0x74,0x26,0x26,0x61,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x22,0x29,0x3b,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x73,0x3f,0x60,0x2d,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x7d,0x60,0x3a,0x60,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x61,0x7d,0x60,0x7d,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x69,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3a,0x69,0x7d,0x76,0x61,0x72,0x20,0x69,0x68,0x2c,0x57,0x6e,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x69,0x68,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x65,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x68,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x72,0x2c,0x6a,0x74,0x28,0x65,0x3f,0x2e,0x72,0x61,0x77,0x73,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3f,0x3f,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x76,0x61,0x72,0x20,0x6e,0x68,0x2c,0x66,0x72,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6e,0x68,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x3b,0x4b,0x69,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6a,0x74,0x28,0x60,0x2e,0x24,0x7b,0x54,0x65,0x28,0x72,0x29,0x7d,0x60,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x47,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x44,0x6f,0x28,0x43,0x69,0x28,0x72,0x2c,0x65,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x69,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x3f,0x72,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x7c,0x7c,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x3f,0x60,0x2d,0x24,0x7b,0x72,0x7d,0x60,0x3a,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x22,0x29,0x3f,0x60,0x2d,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x65,0x7d,0x60,0x3a,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2f,0x22,0x29,0x3f,0x60,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x65,0x7d,0x60,0x3a,0x60,0x24,0x7b,0x72,0x7d,0x2d,0x24,0x7b,0x65,0x7d,0x60,0x7d,0x76,0x61,0x72,0x20,0x71,0x6f,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x72,0x28,0x29,0x3b,0x4b,0x69,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x28,0x72,0x2c,0x65,0x3d,0x5b,0x5b,0x72,0x2c,0x5b,0x72,0x5d,0x5d,0x5d,0x2c,0x7b,0x66,0x69,0x6c,0x74,0x65,0x72,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x74,0x3d,0x21,0x31,0x2c,0x2e,0x2e,0x2e,0x69,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x6d,0x74,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x61,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x73,0x7d,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x5b,0x30,0x5d,0x29,0x3f,0x6f,0x3a,0x5b,0x6f,0x5d,0x3b,0x61,0x28,0x6c,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x63,0x2c,0x5b,0x66,0x2c,0x64,0x5d,0x29,0x3d,0x3e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x63,0x2c,0x7b,0x5b,0x66,0x5d,0x3a,0x70,0x3d,0x3e,0x64,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x68,0x2c,0x62,0x29,0x3d,0x3e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x62,0x29,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x68,0x2c,0x7b,0x5b,0x62,0x5b,0x30,0x5d,0x5d,0x3a,0x62,0x5b,0x31,0x5d,0x7d,0x29,0x3a,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x68,0x2c,0x7b,0x5b,0x62,0x5d,0x3a,0x6e,0x28,0x70,0x29,0x7d,0x29,0x2c,0x7b,0x7d,0x29,0x7d,0x29,0x2c,0x7b,0x7d,0x29,0x2c,0x7b,0x2e,0x2e,0x2e,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x74,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x73,0x28,0x72,0x29,0x3f,0x3f,0x7b,0x7d,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5b,0x63,0x5d,0x29,0x3d,0x3e,0x63,0x21,0x3d,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x29,0x3a,0x73,0x28,0x72,0x29,0x7d,0x29,0x7d,0x7d,0x7d,0x76,0x61,0x72,0x20,0x73,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x53,0x69,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x3a,0x5b,0x72,0x5d,0x2c,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x69,0x2e,0x72,0x61,0x77,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x69,0x2e,0x72,0x61,0x77,0x3a,0x5b,0x69,0x2e,0x6d,0x69,0x6e,0x26,0x26,0x60,0x28,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x24,0x7b,0x69,0x2e,0x6d,0x69,0x6e,0x7d,0x29,0x60,0x2c,0x69,0x2e,0x6d,0x61,0x78,0x26,0x26,0x60,0x28,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x24,0x7b,0x69,0x2e,0x6d,0x61,0x78,0x7d,0x29,0x60,0x5d,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x61,0x6e,0x64,0x20,0x22,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6e,0x6f,0x74,0x3f,0x60,0x6e,0x6f,0x74,0x20,0x61,0x6c,0x6c,0x20,0x61,0x6e,0x64,0x20,0x24,0x7b,0x74,0x7d,0x60,0x3a,0x74,0x7d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x76,0x61,0x72,0x20,0x51,0x6e,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x6c,0x5f,0x29,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x6e,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x69,0x7d,0x2c,0x61,0x3d,0x69,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x75,0x5f,0x29,0x2c,0x73,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x4f,0x4e,0x53,0x22,0x29,0x26,0x26,0x72,0x5f,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x3f,0x28,0x6e,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x4f,0x4e,0x53,0x22,0x29,0x29,0x3a,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x41,0x54,0x45,0x53,0x22,0x29,0x26,0x26,0x69,0x5f,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x3f,0x28,0x6e,0x2e,0x70,0x6c,0x61,0x79,0x53,0x74,0x61,0x74,0x65,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x41,0x54,0x45,0x53,0x22,0x29,0x29,0x3a,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x46,0x49,0x4c,0x4c,0x5f,0x4d,0x4f,0x44,0x45,0x53,0x22,0x29,0x26,0x26,0x6e,0x5f,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x3f,0x28,0x6e,0x2e,0x66,0x69,0x6c,0x6c,0x4d,0x6f,0x64,0x65,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x46,0x49,0x4c,0x4c,0x5f,0x4d,0x4f,0x44,0x45,0x53,0x22,0x29,0x29,0x3a,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x49,0x54,0x45,0x52,0x41,0x54,0x49,0x4f,0x4e,0x5f,0x43,0x4f,0x55,0x4e,0x54,0x53,0x22,0x29,0x26,0x26,0x28,0x73,0x5f,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x7c,0x7c,0x66,0x5f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6f,0x29,0x29,0x3f,0x28,0x6e,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x75,0x6e,0x74,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x49,0x54,0x45,0x52,0x41,0x54,0x49,0x4f,0x4e,0x5f,0x43,0x4f,0x55,0x4e,0x54,0x53,0x22,0x29,0x29,0x3a,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x54,0x49,0x4d,0x49,0x4e,0x47,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x29,0x26,0x26,0x61,0x5f,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x7c,0x7c,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x54,0x49,0x4d,0x49,0x4e,0x47,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x29,0x26,0x26,0x6f,0x5f,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6c,0x3d,0x3e,0x6f,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x60,0x24,0x7b,0x6c,0x7d,0x28,0x60,0x29,0x29,0x3f,0x28,0x6e,0x2e,0x74,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x54,0x49,0x4d,0x49,0x4e,0x47,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x29,0x29,0x3a,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x44,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x22,0x29,0x26,0x26,0x61,0x68,0x2e,0x74,0x65,0x73,0x74,0x28,0x6f,0x29,0x3f,0x28,0x6e,0x2e,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x44,0x55,0x52,0x41,0x54,0x49,0x4f,0x4e,0x22,0x29,0x29,0x3a,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x44,0x45,0x4c,0x41,0x59,0x22,0x29,0x26,0x26,0x61,0x68,0x2e,0x74,0x65,0x73,0x74,0x28,0x6f,0x29,0x3f,0x28,0x6e,0x2e,0x64,0x65,0x6c,0x61,0x79,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x44,0x45,0x4c,0x41,0x59,0x22,0x29,0x29,0x3a,0x73,0x2e,0x68,0x61,0x73,0x28,0x22,0x4e,0x41,0x4d,0x45,0x22,0x29,0x3f,0x28,0x6e,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x7c,0x7c,0x28,0x6e,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x3d,0x5b,0x5d,0x29,0x2c,0x6e,0x2e,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x29,0x3a,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x6f,0x2c,0x73,0x2e,0x61,0x64,0x64,0x28,0x22,0x4e,0x41,0x4d,0x45,0x22,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x72,0x5f,0x2c,0x69,0x5f,0x2c,0x6e,0x5f,0x2c,0x73,0x5f,0x2c,0x61,0x5f,0x2c,0x6f,0x5f,0x2c,0x6c,0x5f,0x2c,0x75,0x5f,0x2c,0x61,0x68,0x2c,0x66,0x5f,0x2c,0x6f,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x72,0x5f,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x2c,0x22,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x2c,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x22,0x2c,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x5d,0x29,0x2c,0x69,0x5f,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x22,0x2c,0x22,0x70,0x61,0x75,0x73,0x65,0x64,0x22,0x5d,0x29,0x2c,0x6e,0x5f,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x22,0x66,0x6f,0x72,0x77,0x61,0x72,0x64,0x73,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x73,0x22,0x2c,0x22,0x62,0x6f,0x74,0x68,0x22,0x5d,0x29,0x2c,0x73,0x5f,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x22,0x5d,0x29,0x2c,0x61,0x5f,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x22,0x2c,0x22,0x65,0x61,0x73,0x65,0x22,0x2c,0x22,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x22,0x2c,0x22,0x65,0x61,0x73,0x65,0x2d,0x6f,0x75,0x74,0x22,0x2c,0x22,0x65,0x61,0x73,0x65,0x2d,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x22,0x2c,0x22,0x73,0x74,0x65,0x70,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x73,0x74,0x65,0x70,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x29,0x2c,0x6f,0x5f,0x3d,0x5b,0x22,0x63,0x75,0x62,0x69,0x63,0x2d,0x62,0x65,0x7a,0x69,0x65,0x72,0x22,0x2c,0x22,0x73,0x74,0x65,0x70,0x73,0x22,0x5d,0x2c,0x6c,0x5f,0x3d,0x2f,0x5c,0x2c,0x28,0x3f,0x21,0x5b,0x5e,0x28,0x5d,0x2a,0x5c,0x29,0x29,0x2f,0x67,0x2c,0x75,0x5f,0x3d,0x2f,0x5c,0x20,0x2b,0x28,0x3f,0x21,0x5b,0x5e,0x28,0x5d,0x2a,0x5c,0x29,0x29,0x2f,0x67,0x2c,0x61,0x68,0x3d,0x2f,0x5e,0x28,0x2d,0x3f,0x5b,0x5c,0x64,0x2e,0x5d,0x2b,0x6d,0x3f,0x73,0x29,0x24,0x2f,0x2c,0x66,0x5f,0x3d,0x2f,0x5e,0x28,0x5c,0x64,0x2b,0x29,0x24,0x2f,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x68,0x2c,0x78,0x65,0x2c,0x75,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6c,0x68,0x3d,0x72,0x3d,0x3e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x2e,0x2e,0x2e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x72,0x3f,0x3f,0x7b,0x7d,0x29,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x28,0x5b,0x65,0x2c,0x74,0x5d,0x29,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x6c,0x68,0x28,0x74,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x69,0x2c,0x6e,0x5d,0x29,0x3d,0x3e,0x28,0x7b,0x5b,0x65,0x2b,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x3f,0x22,0x22,0x3a,0x60,0x2d,0x24,0x7b,0x69,0x7d,0x60,0x29,0x5d,0x3a,0x6e,0x7d,0x29,0x29,0x3a,0x5b,0x7b,0x5b,0x60,0x24,0x7b,0x65,0x7d,0x60,0x5d,0x3a,0x74,0x7d,0x5d,0x29,0x29,0x2c,0x78,0x65,0x3d,0x6c,0x68,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x68,0x2c,0x66,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x63,0x68,0x3d,0x22,0x33,0x2e,0x34,0x2e,0x31,0x34,0x22,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x74,0x28,0x72,0x2c,0x65,0x3d,0x21,0x30,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x26,0x26,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x54,0x68,0x65,0x20,0x74,0x75,0x70,0x6c,0x65,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x60,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x60,0x2e,0x22,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x6e,0x6f,0x74,0x3a,0x21,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x5b,0x7b,0x6d,0x69,0x6e,0x3a,0x74,0x2c,0x6d,0x61,0x78,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x5d,0x7d,0x3b,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x5d,0x3d,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x69,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x69,0x2c,0x6e,0x6f,0x74,0x3a,0x21,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x5b,0x7b,0x6d,0x69,0x6e,0x3a,0x6e,0x2c,0x6d,0x61,0x78,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x5d,0x7d,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x3f,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x69,0x2c,0x6e,0x6f,0x74,0x3a,0x21,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x64,0x68,0x28,0x61,0x29,0x29,0x7d,0x3a,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x69,0x2c,0x6e,0x6f,0x74,0x3a,0x21,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x5b,0x64,0x68,0x28,0x6e,0x29,0x5d,0x7d,0x7d,0x29,0x3a,0x52,0x74,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x72,0x3f,0x3f,0x7b,0x7d,0x29,0x2c,0x21,0x31,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x31,0x3f,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x21,0x31,0x2c,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x7d,0x3a,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x72,0x61,0x77,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x21,0x31,0x2c,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x22,0x72,0x61,0x77,0x2d,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x7d,0x3a,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x6d,0x69,0x6e,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x6d,0x61,0x78,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x21,0x31,0x2c,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x22,0x6d,0x69,0x6e,0x2d,0x61,0x6e,0x64,0x2d,0x6d,0x61,0x78,0x22,0x7d,0x3a,0x7b,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x21,0x30,0x2c,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x6e,0x75,0x6c,0x6c,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x68,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x4b,0x6e,0x28,0x65,0x2c,0x72,0x29,0x2c,0x6e,0x3d,0x4b,0x6e,0x28,0x74,0x2c,0x72,0x29,0x2c,0x61,0x3d,0x59,0x6e,0x28,0x69,0x29,0x2c,0x73,0x3d,0x59,0x6e,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x3d,0x3d,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x7c,0x7c,0x73,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x3d,0x3d,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x6f,0x72,0x74,0x20,0x61,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x6f,0x70,0x65,0x6e,0x20,0x61,0x20,0x62,0x75,0x67,0x20,0x72,0x65,0x70,0x6f,0x72,0x74,0x2e,0x22,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x3d,0x3d,0x22,0x72,0x61,0x77,0x2d,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x7c,0x7c,0x73,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x3d,0x3d,0x22,0x72,0x61,0x77,0x2d,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x6f,0x72,0x74,0x20,0x61,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x61,0x77,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x6f,0x70,0x65,0x6e,0x20,0x61,0x20,0x62,0x75,0x67,0x20,0x72,0x65,0x70,0x6f,0x72,0x74,0x2e,0x22,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x3d,0x3d,0x22,0x6d,0x69,0x6e,0x2d,0x61,0x6e,0x64,0x2d,0x6d,0x61,0x78,0x22,0x7c,0x7c,0x73,0x2e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x3d,0x3d,0x22,0x6d,0x69,0x6e,0x2d,0x61,0x6e,0x64,0x2d,0x6d,0x61,0x78,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x6f,0x72,0x74,0x20,0x61,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x62,0x6f,0x74,0x68,0x20,0x6d,0x69,0x6e,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x78,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x68,0x61,0x70,0x70,0x65,0x6e,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x6f,0x70,0x65,0x6e,0x20,0x61,0x20,0x62,0x75,0x67,0x20,0x72,0x65,0x70,0x6f,0x72,0x74,0x2e,0x22,0x29,0x3b,0x6c,0x65,0x74,0x7b,0x6d,0x69,0x6e,0x3a,0x6f,0x2c,0x6d,0x61,0x78,0x3a,0x6c,0x7d,0x3d,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x5b,0x30,0x5d,0x2c,0x7b,0x6d,0x69,0x6e,0x3a,0x63,0x2c,0x6d,0x61,0x78,0x3a,0x66,0x7d,0x3d,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x5b,0x30,0x5d,0x3b,0x65,0x2e,0x6e,0x6f,0x74,0x26,0x26,0x28,0x5b,0x6f,0x2c,0x6c,0x5d,0x3d,0x5b,0x6c,0x2c,0x6f,0x5d,0x29,0x2c,0x74,0x2e,0x6e,0x6f,0x74,0x26,0x26,0x28,0x5b,0x63,0x2c,0x66,0x5d,0x3d,0x5b,0x66,0x2c,0x63,0x5d,0x29,0x2c,0x6f,0x3d,0x6f,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x6f,0x3a,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x6f,0x29,0x2c,0x6c,0x3d,0x6c,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x6c,0x3a,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x6c,0x29,0x2c,0x63,0x3d,0x63,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x63,0x3a,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x63,0x29,0x2c,0x66,0x3d,0x66,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x66,0x3a,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x66,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x64,0x2c,0x70,0x5d,0x3d,0x72,0x3d,0x3d,0x3d,0x22,0x6d,0x69,0x6e,0x22,0x3f,0x5b,0x6f,0x2c,0x63,0x5d,0x3a,0x5b,0x66,0x2c,0x6c,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x2d,0x70,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x72,0x3a,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x22,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x5b,0x7b,0x5b,0x65,0x5d,0x3a,0x72,0x7d,0x5d,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x68,0x28,0x7b,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x72,0x2c,0x6d,0x69,0x6e,0x3a,0x65,0x3d,0x72,0x2c,0x6d,0x61,0x78,0x3a,0x74,0x2c,0x72,0x61,0x77,0x3a,0x69,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6d,0x69,0x6e,0x3a,0x65,0x2c,0x6d,0x61,0x78,0x3a,0x74,0x2c,0x72,0x61,0x77,0x3a,0x69,0x7d,0x7d,0x76,0x61,0x72,0x20,0x58,0x6e,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x74,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x7b,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x2f,0x20,0x76,0x61,0x72,0x28,0x24,0x7b,0x69,0x7d,0x29,0x60,0x29,0x26,0x26,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x60,0x2f,0x20,0x76,0x61,0x72,0x28,0x24,0x7b,0x69,0x7d,0x29,0x60,0x2c,0x22,0x22,0x29,0x29,0x7d,0x29,0x7d,0x76,0x61,0x72,0x20,0x68,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x65,0x2c,0x58,0x65,0x2c,0x6e,0x74,0x2c,0x67,0x65,0x2c,0x6d,0x68,0x2c,0x67,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x65,0x74,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x73,0x68,0x28,0x29,0x3b,0x51,0x6e,0x28,0x29,0x3b,0x66,0x72,0x28,0x29,0x3b,0x6f,0x68,0x28,0x29,0x3b,0x75,0x68,0x28,0x29,0x3b,0x4c,0x72,0x28,0x29,0x3b,0x65,0x61,0x28,0x29,0x3b,0x4b,0x74,0x28,0x29,0x3b,0x53,0x69,0x28,0x29,0x3b,0x66,0x68,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x58,0x6e,0x28,0x29,0x3b,0x47,0x73,0x28,0x29,0x3b,0x68,0x68,0x28,0x29,0x3b,0x63,0x74,0x28,0x29,0x3b,0x42,0x72,0x28,0x29,0x3b,0x5f,0x69,0x28,0x29,0x3b,0x73,0x65,0x3d,0x7b,0x63,0x68,0x69,0x6c,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x2a,0x22,0x2c,0x22,0x26,0x20,0x3e,0x20,0x2a,0x22,0x29,0x7d,0x2c,0x70,0x73,0x65,0x75,0x64,0x6f,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x22,0x2c,0x22,0x26,0x3a,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x22,0x29,0x2c,0x72,0x28,0x22,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x26,0x3a,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x29,0x2c,0x72,0x28,0x22,0x6d,0x61,0x72,0x6b,0x65,0x72,0x22,0x2c,0x5b,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x28,0x4a,0x6e,0x28,0x65,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x29,0x2c,0x22,0x26,0x20,0x2a,0x3a,0x3a,0x6d,0x61,0x72,0x6b,0x65,0x72,0x22,0x29,0x2c,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x28,0x4a,0x6e,0x28,0x65,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x29,0x2c,0x22,0x26,0x3a,0x3a,0x6d,0x61,0x72,0x6b,0x65,0x72,0x22,0x29,0x5d,0x29,0x2c,0x72,0x28,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x22,0x26,0x20,0x2a,0x3a,0x3a,0x73,0x65,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x26,0x3a,0x3a,0x73,0x65,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x29,0x2c,0x72,0x28,0x22,0x66,0x69,0x6c,0x65,0x22,0x2c,0x22,0x26,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x29,0x2c,0x72,0x28,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x2c,0x22,0x26,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x29,0x2c,0x72,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x22,0x2c,0x22,0x26,0x3a,0x3a,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x22,0x29,0x2c,0x72,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x28,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x21,0x31,0x3b,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x28,0x29,0x3d,0x3e,0x7b,0x69,0x3d,0x21,0x30,0x7d,0x29,0x2c,0x69,0x7c,0x7c,0x74,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x65,0x65,0x2e,0x64,0x65,0x63,0x6c,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x22,0x7d,0x29,0x29,0x7d,0x29,0x2c,0x22,0x26,0x3a,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x29,0x2c,0x72,0x28,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x28,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x21,0x31,0x3b,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x28,0x29,0x3d,0x3e,0x7b,0x69,0x3d,0x21,0x30,0x7d,0x29,0x2c,0x69,0x7c,0x7c,0x74,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x65,0x65,0x2e,0x64,0x65,0x63,0x6c,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x22,0x7d,0x29,0x29,0x7d,0x29,0x2c,0x22,0x26,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x29,0x7d,0x2c,0x70,0x73,0x65,0x75,0x64,0x6f,0x43,0x6c,0x61,0x73,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x2c,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x65,0x2c,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x74,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x5b,0x5b,0x22,0x66,0x69,0x72,0x73,0x74,0x22,0x2c,0x22,0x26,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x22,0x5d,0x2c,0x5b,0x22,0x6c,0x61,0x73,0x74,0x22,0x2c,0x22,0x26,0x3a,0x6c,0x61,0x73,0x74,0x2d,0x63,0x68,0x69,0x6c,0x64,0x22,0x5d,0x2c,0x5b,0x22,0x6f,0x6e,0x6c,0x79,0x22,0x2c,0x22,0x26,0x3a,0x6f,0x6e,0x6c,0x79,0x2d,0x63,0x68,0x69,0x6c,0x64,0x22,0x5d,0x2c,0x5b,0x22,0x6f,0x64,0x64,0x22,0x2c,0x22,0x26,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x6f,0x64,0x64,0x29,0x22,0x5d,0x2c,0x5b,0x22,0x65,0x76,0x65,0x6e,0x22,0x2c,0x22,0x26,0x3a,0x6e,0x74,0x68,0x2d,0x63,0x68,0x69,0x6c,0x64,0x28,0x65,0x76,0x65,0x6e,0x29,0x22,0x5d,0x2c,0x22,0x66,0x69,0x72,0x73,0x74,0x2d,0x6f,0x66,0x2d,0x74,0x79,0x70,0x65,0x22,0x2c,0x22,0x6c,0x61,0x73,0x74,0x2d,0x6f,0x66,0x2d,0x74,0x79,0x70,0x65,0x22,0x2c,0x22,0x6f,0x6e,0x6c,0x79,0x2d,0x6f,0x66,0x2d,0x74,0x79,0x70,0x65,0x22,0x2c,0x5b,0x22,0x76,0x69,0x73,0x69,0x74,0x65,0x64,0x22,0x2c,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x73,0x7d,0x29,0x3d,0x3e,0x28,0x4a,0x6e,0x28,0x73,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x29,0x2c,0x22,0x26,0x3a,0x76,0x69,0x73,0x69,0x74,0x65,0x64,0x22,0x29,0x5d,0x2c,0x22,0x74,0x61,0x72,0x67,0x65,0x74,0x22,0x2c,0x5b,0x22,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x22,0x26,0x5b,0x6f,0x70,0x65,0x6e,0x5d,0x22,0x5d,0x2c,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x2c,0x22,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x22,0x2c,0x22,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x22,0x2c,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x73,0x68,0x6f,0x77,0x6e,0x22,0x2c,0x22,0x61,0x75,0x74,0x6f,0x66,0x69,0x6c,0x6c,0x22,0x2c,0x22,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x22,0x2c,0x22,0x76,0x61,0x6c,0x69,0x64,0x22,0x2c,0x22,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x22,0x2c,0x22,0x69,0x6e,0x2d,0x72,0x61,0x6e,0x67,0x65,0x22,0x2c,0x22,0x6f,0x75,0x74,0x2d,0x6f,0x66,0x2d,0x72,0x61,0x6e,0x67,0x65,0x22,0x2c,0x22,0x72,0x65,0x61,0x64,0x2d,0x6f,0x6e,0x6c,0x79,0x22,0x2c,0x22,0x65,0x6d,0x70,0x74,0x79,0x22,0x2c,0x22,0x66,0x6f,0x63,0x75,0x73,0x2d,0x77,0x69,0x74,0x68,0x69,0x6e,0x22,0x2c,0x5b,0x22,0x68,0x6f,0x76,0x65,0x72,0x22,0x2c,0x77,0x65,0x28,0x74,0x28,0x29,0x2c,0x22,0x68,0x6f,0x76,0x65,0x72,0x4f,0x6e,0x6c,0x79,0x57,0x68,0x65,0x6e,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x22,0x29,0x3f,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x68,0x6f,0x76,0x65,0x72,0x3a,0x20,0x68,0x6f,0x76,0x65,0x72,0x29,0x20,0x61,0x6e,0x64,0x20,0x28,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x3a,0x20,0x66,0x69,0x6e,0x65,0x29,0x20,0x7b,0x20,0x26,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7d,0x22,0x3a,0x22,0x26,0x3a,0x68,0x6f,0x76,0x65,0x72,0x22,0x5d,0x2c,0x22,0x66,0x6f,0x63,0x75,0x73,0x22,0x2c,0x22,0x66,0x6f,0x63,0x75,0x73,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x2c,0x22,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x2c,0x22,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x22,0x2c,0x22,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x22,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x29,0x3f,0x73,0x3a,0x5b,0x73,0x2c,0x60,0x26,0x3a,0x24,0x7b,0x73,0x7d,0x60,0x5d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x73,0x2c,0x6f,0x5d,0x6f,0x66,0x20,0x6e,0x29,0x72,0x28,0x73,0x2c,0x6c,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6f,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x6f,0x28,0x6c,0x29,0x3a,0x6f,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x7b,0x67,0x72,0x6f,0x75,0x70,0x3a,0x28,0x73,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x6f,0x7d,0x29,0x3d,0x3e,0x6f,0x3f,0x5b,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x69,0x28,0x22,0x2e,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x7d,0x5c,0x5c,0x2f,0x24,0x7b,0x54,0x65,0x28,0x6f,0x29,0x7d,0x29,0x60,0x2c,0x22,0x20,0x26,0x22,0x5d,0x3a,0x5b,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x69,0x28,0x22,0x2e,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x7d,0x29,0x60,0x2c,0x22,0x20,0x26,0x22,0x5d,0x2c,0x70,0x65,0x65,0x72,0x3a,0x28,0x73,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x6f,0x7d,0x29,0x3d,0x3e,0x6f,0x3f,0x5b,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x69,0x28,0x22,0x2e,0x70,0x65,0x65,0x72,0x22,0x29,0x7d,0x5c,0x5c,0x2f,0x24,0x7b,0x54,0x65,0x28,0x6f,0x29,0x7d,0x29,0x60,0x2c,0x22,0x20,0x7e,0x20,0x26,0x22,0x5d,0x3a,0x5b,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x69,0x28,0x22,0x2e,0x70,0x65,0x65,0x72,0x22,0x29,0x7d,0x29,0x60,0x2c,0x22,0x20,0x7e,0x20,0x26,0x22,0x5d,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x73,0x2c,0x6f,0x5d,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x61,0x29,0x29,0x65,0x28,0x73,0x2c,0x28,0x6c,0x3d,0x22,0x22,0x2c,0x63,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x4b,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x6c,0x28,0x63,0x29,0x3a,0x6c,0x29,0x3b,0x66,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x26,0x22,0x29,0x7c,0x7c,0x28,0x66,0x3d,0x22,0x26,0x22,0x2b,0x66,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x64,0x2c,0x70,0x5d,0x3d,0x6f,0x28,0x22,0x22,0x2c,0x63,0x29,0x2c,0x68,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x62,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x76,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x3d,0x30,0x3b,0x79,0x3c,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x2b,0x2b,0x79,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x66,0x5b,0x79,0x5d,0x3b,0x77,0x3d,0x3d,0x3d,0x22,0x26,0x22,0x3f,0x68,0x3d,0x79,0x3a,0x77,0x3d,0x3d,0x3d,0x22,0x27,0x22,0x7c,0x7c,0x77,0x3d,0x3d,0x3d,0x27,0x22,0x27,0x3f,0x76,0x2b,0x3d,0x31,0x3a,0x68,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x77,0x3d,0x3d,0x3d,0x22,0x20,0x22,0x26,0x26,0x21,0x76,0x26,0x26,0x28,0x62,0x3d,0x79,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x62,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x62,0x3d,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x66,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x68,0x29,0x2b,0x64,0x2b,0x66,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x68,0x2b,0x31,0x2c,0x62,0x29,0x2b,0x70,0x2b,0x66,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x62,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x6e,0x29,0x2c,0x5b,0x50,0x74,0x5d,0x3a,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x7d,0x7d,0x29,0x7d,0x2c,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x6c,0x74,0x72,0x22,0x2c,0x27,0x26,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x22,0x6c,0x74,0x72,0x22,0x5d,0x2c,0x20,0x5b,0x64,0x69,0x72,0x3d,0x22,0x6c,0x74,0x72,0x22,0x5d,0x20,0x2a,0x29,0x27,0x29,0x2c,0x72,0x28,0x22,0x72,0x74,0x6c,0x22,0x2c,0x27,0x26,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x64,0x69,0x72,0x3d,0x22,0x72,0x74,0x6c,0x22,0x5d,0x2c,0x20,0x5b,0x64,0x69,0x72,0x3d,0x22,0x72,0x74,0x6c,0x22,0x5d,0x20,0x2a,0x29,0x27,0x29,0x7d,0x2c,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x4d,0x6f,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x6d,0x6f,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x61,0x66,0x65,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x2d,0x6d,0x6f,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x6e,0x6f,0x2d,0x70,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x22,0x29,0x2c,0x72,0x28,0x22,0x6d,0x6f,0x74,0x69,0x6f,0x6e,0x2d,0x72,0x65,0x64,0x75,0x63,0x65,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x2d,0x6d,0x6f,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x29,0x22,0x29,0x7d,0x2c,0x64,0x61,0x72,0x6b,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x72,0x2c,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x3d,0x22,0x2e,0x64,0x61,0x72,0x6b,0x22,0x5d,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x28,0x22,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x22,0x2c,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x29,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x74,0x3d,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x2c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x64,0x61,0x72,0x6b,0x6d,0x6f,0x64,0x65,0x2d,0x66,0x61,0x6c,0x73,0x65,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x73,0x65,0x74,0x20,0x74,0x6f,0x20,0x60,0x66,0x61,0x6c,0x73,0x65,0x60,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x6e,0x6f,0x77,0x20,0x62,0x65,0x68,0x61,0x76,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x73,0x20,0x60,0x6d,0x65,0x64,0x69,0x61,0x60,0x2e,0x22,0x2c,0x22,0x43,0x68,0x61,0x6e,0x67,0x65,0x20,0x60,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x60,0x20,0x74,0x6f,0x20,0x60,0x6d,0x65,0x64,0x69,0x61,0x60,0x20,0x6f,0x72,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x69,0x74,0x20,0x65,0x6e,0x74,0x69,0x72,0x65,0x6c,0x79,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x75,0x70,0x67,0x72,0x61,0x64,0x65,0x2d,0x67,0x75,0x69,0x64,0x65,0x23,0x72,0x65,0x6d,0x6f,0x76,0x65,0x2d,0x64,0x61,0x72,0x6b,0x2d,0x6d,0x6f,0x64,0x65,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x29,0x29,0x2c,0x74,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x6e,0x3d,0x69,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x6e,0x3d,0x5b,0x69,0x5d,0x29,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x61,0x3d,0x3d,0x3d,0x22,0x2e,0x64,0x61,0x72,0x6b,0x22,0x3f,0x28,0x74,0x3d,0x21,0x31,0x2c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x64,0x61,0x72,0x6b,0x6d,0x6f,0x64,0x65,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x2c,0x5b,0x22,0x57,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x60,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x60,0x20,0x66,0x6f,0x72,0x20,0x60,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x60,0x2c,0x20,0x79,0x6f,0x75,0x20,0x6d,0x75,0x73,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x20,0x61,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x22,0x2c,0x27,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x3a,0x20,0x60,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x3a,0x20,0x5b,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x22,0x2c,0x20,0x22,0x2e,0x79,0x6f,0x75,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x26,0x22,0x5d,0x60,0x27,0x5d,0x29,0x29,0x3a,0x61,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x26,0x22,0x29,0x7c,0x7c,0x28,0x74,0x3d,0x21,0x31,0x2c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x64,0x61,0x72,0x6b,0x6d,0x6f,0x64,0x65,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x2d,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x22,0x2c,0x5b,0x22,0x57,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x60,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x60,0x20,0x66,0x6f,0x72,0x20,0x60,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x60,0x2c,0x20,0x79,0x6f,0x75,0x72,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x6d,0x75,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x60,0x26,0x60,0x2e,0x22,0x2c,0x27,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x20,0x60,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x3a,0x20,0x5b,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x22,0x2c,0x20,0x22,0x2e,0x79,0x6f,0x75,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x26,0x22,0x5d,0x60,0x27,0x5d,0x29,0x29,0x3b,0x69,0x3d,0x6e,0x7d,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x3f,0x65,0x28,0x22,0x64,0x61,0x72,0x6b,0x22,0x2c,0x60,0x26,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x24,0x7b,0x69,0x7d,0x2c,0x20,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x29,0x60,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x3f,0x65,0x28,0x22,0x64,0x61,0x72,0x6b,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x3a,0x20,0x64,0x61,0x72,0x6b,0x29,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x22,0x3f,0x65,0x28,0x22,0x64,0x61,0x72,0x6b,0x22,0x2c,0x69,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x26,0x26,0x65,0x28,0x22,0x64,0x61,0x72,0x6b,0x22,0x2c,0x60,0x26,0x3a,0x69,0x73,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x29,0x60,0x29,0x7d,0x2c,0x70,0x72,0x69,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x70,0x72,0x69,0x6e,0x74,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x70,0x72,0x69,0x6e,0x74,0x22,0x29,0x7d,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x2c,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x65,0x2c,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x28,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x69,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x77,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x2c,0x61,0x3d,0x52,0x74,0x28,0x72,0x28,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x29,0x29,0x2c,0x73,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x5d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x28,0x77,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x28,0x5c,0x44,0x2b,0x29,0x24,0x2f,0x29,0x3f,0x2e,0x5b,0x31,0x5d,0x3f,0x3f,0x22,0x28,0x6e,0x6f,0x6e,0x65,0x29,0x22,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x28,0x77,0x29,0x7b,0x77,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x73,0x2e,0x61,0x64,0x64,0x28,0x6f,0x28,0x77,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x28,0x77,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x28,0x77,0x29,0x2c,0x73,0x2e,0x73,0x69,0x7a,0x65,0x3d,0x3d,0x3d,0x31,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x77,0x20,0x6f,0x66,0x20,0x61,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6b,0x20,0x6f,0x66,0x20,0x77,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x29,0x6c,0x28,0x6b,0x2e,0x6d,0x69,0x6e,0x29,0x2c,0x6c,0x28,0x6b,0x2e,0x6d,0x61,0x78,0x29,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x73,0x2e,0x73,0x69,0x7a,0x65,0x3c,0x3d,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x28,0x77,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x61,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6b,0x3d,0x3e,0x59,0x6e,0x28,0x6b,0x29,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6b,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x6d,0x69,0x6e,0x3a,0x53,0x2c,0x6d,0x61,0x78,0x3a,0x45,0x7d,0x3d,0x6b,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x22,0x6d,0x69,0x6e,0x22,0x26,0x26,0x53,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x3b,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x22,0x6d,0x69,0x6e,0x22,0x26,0x26,0x45,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x6b,0x2c,0x6e,0x6f,0x74,0x3a,0x21,0x6b,0x2e,0x6e,0x6f,0x74,0x7d,0x3b,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x22,0x6d,0x61,0x78,0x22,0x26,0x26,0x45,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x3b,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x22,0x6d,0x61,0x78,0x22,0x26,0x26,0x53,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x6b,0x2c,0x6e,0x6f,0x74,0x3a,0x21,0x6b,0x2e,0x6e,0x6f,0x74,0x7d,0x7d,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6b,0x3d,0x3e,0x5b,0x6b,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x6b,0x5d,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x28,0x77,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x6b,0x2c,0x53,0x29,0x3d,0x3e,0x70,0x68,0x28,0x77,0x2c,0x6b,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x53,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x6c,0x65,0x74,0x20,0x68,0x3d,0x70,0x28,0x22,0x6d,0x61,0x78,0x22,0x29,0x2c,0x62,0x3d,0x70,0x28,0x22,0x6d,0x69,0x6e,0x22,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x28,0x77,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x6e,0x29,0x69,0x66,0x28,0x66,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6b,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x21,0x63,0x28,0x6b,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x6d,0x69,0x6e,0x6d,0x61,0x78,0x2d,0x68,0x61,0x76,0x65,0x2d,0x6d,0x69,0x78,0x65,0x64,0x2d,0x75,0x6e,0x69,0x74,0x73,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x6d,0x69,0x6e,0x2d,0x2a,0x60,0x20,0x61,0x6e,0x64,0x20,0x60,0x6d,0x61,0x78,0x2d,0x2a,0x60,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x60,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x6d,0x69,0x78,0x65,0x64,0x20,0x75,0x6e,0x69,0x74,0x73,0x2e,0x22,0x5d,0x29,0x2c,0x5b,0x5d,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x6d,0x69,0x78,0x65,0x64,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x2d,0x75,0x6e,0x69,0x74,0x73,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x6d,0x69,0x6e,0x2d,0x2a,0x60,0x20,0x61,0x6e,0x64,0x20,0x60,0x6d,0x61,0x78,0x2d,0x2a,0x60,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x60,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x6d,0x69,0x78,0x65,0x64,0x20,0x75,0x6e,0x69,0x74,0x73,0x2e,0x22,0x5d,0x29,0x2c,0x5b,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x6d,0x69,0x6e,0x2d,0x2a,0x60,0x20,0x61,0x6e,0x64,0x20,0x60,0x6d,0x61,0x78,0x2d,0x2a,0x60,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x60,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x2e,0x22,0x5d,0x29,0x2c,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x60,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x24,0x7b,0x54,0x74,0x28,0x4b,0x6e,0x28,0x6b,0x2c,0x77,0x29,0x29,0x7d,0x60,0x5d,0x7d,0x7d,0x74,0x28,0x22,0x6d,0x61,0x78,0x22,0x2c,0x76,0x28,0x22,0x6d,0x61,0x78,0x22,0x29,0x2c,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x6e,0x3f,0x64,0x28,0x22,0x6d,0x61,0x78,0x22,0x29,0x3a,0x7b,0x7d,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x22,0x6d,0x69,0x6e,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x77,0x20,0x6f,0x66,0x20,0x61,0x29,0x65,0x28,0x77,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x60,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x24,0x7b,0x54,0x74,0x28,0x77,0x29,0x7d,0x60,0x2c,0x7b,0x69,0x64,0x3a,0x79,0x2c,0x73,0x6f,0x72,0x74,0x3a,0x6e,0x26,0x26,0x66,0x3f,0x62,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x7d,0x29,0x3b,0x74,0x28,0x22,0x6d,0x69,0x6e,0x22,0x2c,0x76,0x28,0x22,0x6d,0x69,0x6e,0x22,0x29,0x2c,0x7b,0x69,0x64,0x3a,0x79,0x2c,0x73,0x6f,0x72,0x74,0x3a,0x62,0x7d,0x29,0x7d,0x2c,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x2c,0x28,0x74,0x3d,0x22,0x22,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x4b,0x28,0x74,0x29,0x2c,0x6e,0x3d,0x2f,0x5e,0x5c,0x77,0x2a,0x5c,0x73,0x2a,0x5c,0x28,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x6e,0x3f,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x62,0x28,0x61,0x6e,0x64,0x7c,0x6f,0x72,0x7c,0x6e,0x6f,0x74,0x29,0x5c,0x62,0x2f,0x67,0x2c,0x22,0x20,0x24,0x31,0x20,0x22,0x29,0x3a,0x69,0x2c,0x6e,0x3f,0x60,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x24,0x7b,0x69,0x7d,0x60,0x3a,0x28,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x22,0x29,0x7c,0x7c,0x28,0x69,0x3d,0x60,0x24,0x7b,0x69,0x7d,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x29,0x60,0x29,0x2c,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x28,0x22,0x29,0x26,0x26,0x69,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x29,0x22,0x29,0x7c,0x7c,0x28,0x69,0x3d,0x60,0x28,0x24,0x7b,0x69,0x7d,0x29,0x60,0x29,0x2c,0x60,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x24,0x7b,0x69,0x7d,0x60,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x7d,0x2c,0x68,0x61,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x68,0x61,0x73,0x22,0x2c,0x74,0x3d,0x3e,0x60,0x26,0x3a,0x68,0x61,0x73,0x28,0x24,0x7b,0x4b,0x28,0x74,0x29,0x7d,0x29,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x7b,0x7d,0x2c,0x5b,0x50,0x74,0x5d,0x3a,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x7d,0x7d,0x29,0x2c,0x72,0x28,0x22,0x67,0x72,0x6f,0x75,0x70,0x2d,0x68,0x61,0x73,0x22,0x2c,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x69,0x3f,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x65,0x28,0x22,0x2e,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x7d,0x5c,0x5c,0x2f,0x24,0x7b,0x69,0x7d,0x29,0x3a,0x68,0x61,0x73,0x28,0x24,0x7b,0x4b,0x28,0x74,0x29,0x7d,0x29,0x20,0x26,0x60,0x3a,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x65,0x28,0x22,0x2e,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x7d,0x29,0x3a,0x68,0x61,0x73,0x28,0x24,0x7b,0x4b,0x28,0x74,0x29,0x7d,0x29,0x20,0x26,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x7b,0x7d,0x2c,0x5b,0x50,0x74,0x5d,0x3a,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x7d,0x7d,0x29,0x2c,0x72,0x28,0x22,0x70,0x65,0x65,0x72,0x2d,0x68,0x61,0x73,0x22,0x2c,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x69,0x3f,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x65,0x28,0x22,0x2e,0x70,0x65,0x65,0x72,0x22,0x29,0x7d,0x5c,0x5c,0x2f,0x24,0x7b,0x69,0x7d,0x29,0x3a,0x68,0x61,0x73,0x28,0x24,0x7b,0x4b,0x28,0x74,0x29,0x7d,0x29,0x20,0x7e,0x20,0x26,0x60,0x3a,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x24,0x7b,0x65,0x28,0x22,0x2e,0x70,0x65,0x65,0x72,0x22,0x29,0x7d,0x29,0x3a,0x68,0x61,0x73,0x28,0x24,0x7b,0x4b,0x28,0x74,0x29,0x7d,0x29,0x20,0x7e,0x20,0x26,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x7b,0x7d,0x2c,0x5b,0x50,0x74,0x5d,0x3a,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x7d,0x7d,0x29,0x7d,0x2c,0x61,0x72,0x69,0x61,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x61,0x72,0x69,0x61,0x22,0x2c,0x74,0x3d,0x3e,0x60,0x26,0x5b,0x61,0x72,0x69,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x61,0x72,0x69,0x61,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x2c,0x72,0x28,0x22,0x67,0x72,0x6f,0x75,0x70,0x2d,0x61,0x72,0x69,0x61,0x22,0x2c,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x69,0x3f,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x67,0x72,0x6f,0x75,0x70,0x5c,0x5c,0x2f,0x24,0x7b,0x69,0x7d,0x29,0x5b,0x61,0x72,0x69,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x26,0x60,0x3a,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x67,0x72,0x6f,0x75,0x70,0x29,0x5b,0x61,0x72,0x69,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x26,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x61,0x72,0x69,0x61,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x2c,0x72,0x28,0x22,0x70,0x65,0x65,0x72,0x2d,0x61,0x72,0x69,0x61,0x22,0x2c,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x69,0x3f,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x70,0x65,0x65,0x72,0x5c,0x5c,0x2f,0x24,0x7b,0x69,0x7d,0x29,0x5b,0x61,0x72,0x69,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x7e,0x20,0x26,0x60,0x3a,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x70,0x65,0x65,0x72,0x29,0x5b,0x61,0x72,0x69,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x7e,0x20,0x26,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x61,0x72,0x69,0x61,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x7d,0x2c,0x64,0x61,0x74,0x61,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x64,0x61,0x74,0x61,0x22,0x2c,0x74,0x3d,0x3e,0x60,0x26,0x5b,0x64,0x61,0x74,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x64,0x61,0x74,0x61,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x2c,0x72,0x28,0x22,0x67,0x72,0x6f,0x75,0x70,0x2d,0x64,0x61,0x74,0x61,0x22,0x2c,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x69,0x3f,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x67,0x72,0x6f,0x75,0x70,0x5c,0x5c,0x2f,0x24,0x7b,0x69,0x7d,0x29,0x5b,0x64,0x61,0x74,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x26,0x60,0x3a,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x67,0x72,0x6f,0x75,0x70,0x29,0x5b,0x64,0x61,0x74,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x26,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x64,0x61,0x74,0x61,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x2c,0x72,0x28,0x22,0x70,0x65,0x65,0x72,0x2d,0x64,0x61,0x74,0x61,0x22,0x2c,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x69,0x3f,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x70,0x65,0x65,0x72,0x5c,0x5c,0x2f,0x24,0x7b,0x69,0x7d,0x29,0x5b,0x64,0x61,0x74,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x7e,0x20,0x26,0x60,0x3a,0x60,0x3a,0x6d,0x65,0x72,0x67,0x65,0x28,0x2e,0x70,0x65,0x65,0x72,0x29,0x5b,0x64,0x61,0x74,0x61,0x2d,0x24,0x7b,0x59,0x65,0x28,0x4b,0x28,0x74,0x29,0x29,0x7d,0x5d,0x20,0x7e,0x20,0x26,0x60,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x64,0x61,0x74,0x61,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x7d,0x29,0x7d,0x2c,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x70,0x6f,0x72,0x74,0x72,0x61,0x69,0x74,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x70,0x6f,0x72,0x74,0x72,0x61,0x69,0x74,0x29,0x22,0x29,0x2c,0x72,0x28,0x22,0x6c,0x61,0x6e,0x64,0x73,0x63,0x61,0x70,0x65,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x6c,0x61,0x6e,0x64,0x73,0x63,0x61,0x70,0x65,0x29,0x22,0x29,0x7d,0x2c,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x2d,0x6d,0x6f,0x72,0x65,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x20,0x6d,0x6f,0x72,0x65,0x29,0x22,0x29,0x2c,0x72,0x28,0x22,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x2d,0x6c,0x65,0x73,0x73,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x20,0x6c,0x65,0x73,0x73,0x29,0x22,0x29,0x7d,0x2c,0x66,0x6f,0x72,0x63,0x65,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x66,0x6f,0x72,0x63,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x22,0x2c,0x22,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x66,0x6f,0x72,0x63,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x3a,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x22,0x29,0x7d,0x7d,0x2c,0x58,0x65,0x3d,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x22,0x2c,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x29,0x22,0x2c,0x22,0x73,0x6b,0x65,0x77,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x29,0x29,0x22,0x2c,0x22,0x73,0x6b,0x65,0x77,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x29,0x29,0x22,0x2c,0x22,0x73,0x63,0x61,0x6c,0x65,0x58,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x29,0x29,0x22,0x2c,0x22,0x73,0x63,0x61,0x6c,0x65,0x59,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x29,0x29,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x2c,0x6e,0x74,0x3d,0x5b,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6c,0x75,0x72,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x65,0x70,0x69,0x61,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x72,0x6f,0x70,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x2c,0x67,0x65,0x3d,0x5b,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x6c,0x75,0x72,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x65,0x70,0x69,0x61,0x29,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x2c,0x6d,0x68,0x3d,0x7b,0x70,0x72,0x65,0x66,0x6c,0x69,0x67,0x68,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x42,0x61,0x73,0x65,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x65,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x60,0x2a,0x2c,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x3a,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x73,0x6f,0x6c,0x69,0x64,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x27,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x7d,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x2c,0x3a,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x7b,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x27,0x27,0x7d,0x3a,0x68,0x6f,0x73,0x74,0x2c,0x68,0x74,0x6d,0x6c,0x7b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x35,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x74,0x65,0x78,0x74,0x2d,0x73,0x69,0x7a,0x65,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x3a,0x31,0x30,0x30,0x25,0x3b,0x2d,0x6d,0x6f,0x7a,0x2d,0x74,0x61,0x62,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x34,0x3b,0x74,0x61,0x62,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x34,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x2e,0x73,0x61,0x6e,0x73,0x27,0x2c,0x20,0x75,0x69,0x2d,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x2c,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x2d,0x75,0x69,0x2c,0x20,0x73,0x61,0x6e,0x73,0x2d,0x73,0x65,0x72,0x69,0x66,0x2c,0x20,0x22,0x41,0x70,0x70,0x6c,0x65,0x20,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x45,0x6d,0x6f,0x6a,0x69,0x22,0x2c,0x20,0x22,0x53,0x65,0x67,0x6f,0x65,0x20,0x55,0x49,0x20,0x45,0x6d,0x6f,0x6a,0x69,0x22,0x2c,0x20,0x22,0x53,0x65,0x67,0x6f,0x65,0x20,0x55,0x49,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x22,0x2c,0x20,0x22,0x4e,0x6f,0x74,0x6f,0x20,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x45,0x6d,0x6f,0x6a,0x69,0x22,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x2e,0x73,0x61,0x6e,0x73,0x5b,0x31,0x5d,0x2e,0x66,0x6f,0x6e,0x74,0x46,0x65,0x61,0x74,0x75,0x72,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x27,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x2e,0x73,0x61,0x6e,0x73,0x5b,0x31,0x5d,0x2e,0x66,0x6f,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x27,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x3b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x74,0x61,0x70,0x2d,0x68,0x69,0x67,0x68,0x6c,0x69,0x67,0x68,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x62,0x6f,0x64,0x79,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x68,0x72,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x70,0x78,0x7d,0x61,0x62,0x62,0x72,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x74,0x69,0x74,0x6c,0x65,0x5d,0x29,0x7b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x20,0x64,0x6f,0x74,0x74,0x65,0x64,0x7d,0x68,0x31,0x2c,0x68,0x32,0x2c,0x68,0x33,0x2c,0x68,0x34,0x2c,0x68,0x35,0x2c,0x68,0x36,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x61,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x62,0x2c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x62,0x6f,0x6c,0x64,0x65,0x72,0x7d,0x63,0x6f,0x64,0x65,0x2c,0x6b,0x62,0x64,0x2c,0x70,0x72,0x65,0x2c,0x73,0x61,0x6d,0x70,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x2e,0x6d,0x6f,0x6e,0x6f,0x27,0x2c,0x20,0x75,0x69,0x2d,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x53,0x46,0x4d,0x6f,0x6e,0x6f,0x2d,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x2c,0x20,0x4d,0x65,0x6e,0x6c,0x6f,0x2c,0x20,0x4d,0x6f,0x6e,0x61,0x63,0x6f,0x2c,0x20,0x43,0x6f,0x6e,0x73,0x6f,0x6c,0x61,0x73,0x2c,0x20,0x22,0x4c,0x69,0x62,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x6f,0x6e,0x6f,0x22,0x2c,0x20,0x22,0x43,0x6f,0x75,0x72,0x69,0x65,0x72,0x20,0x4e,0x65,0x77,0x22,0x2c,0x20,0x6d,0x6f,0x6e,0x6f,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x2e,0x6d,0x6f,0x6e,0x6f,0x5b,0x31,0x5d,0x2e,0x66,0x6f,0x6e,0x74,0x46,0x65,0x61,0x74,0x75,0x72,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x27,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x2e,0x6d,0x6f,0x6e,0x6f,0x5b,0x31,0x5d,0x2e,0x66,0x6f,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x27,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x29,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x65,0x6d,0x7d,0x73,0x6d,0x61,0x6c,0x6c,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x38,0x30,0x25,0x7d,0x73,0x75,0x62,0x2c,0x73,0x75,0x70,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x37,0x35,0x25,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x30,0x3b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x3b,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x7d,0x73,0x75,0x62,0x7b,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x2d,0x2e,0x32,0x35,0x65,0x6d,0x7d,0x73,0x75,0x70,0x7b,0x74,0x6f,0x70,0x3a,0x2d,0x2e,0x35,0x65,0x6d,0x7d,0x74,0x61,0x62,0x6c,0x65,0x7b,0x74,0x65,0x78,0x74,0x2d,0x69,0x6e,0x64,0x65,0x6e,0x74,0x3a,0x30,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x7d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x69,0x6e,0x70,0x75,0x74,0x2c,0x6f,0x70,0x74,0x67,0x72,0x6f,0x75,0x70,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x2c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x31,0x30,0x30,0x25,0x3b,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x6c,0x65,0x74,0x74,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x7b,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x74,0x79,0x70,0x65,0x3d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x5d,0x29,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x74,0x79,0x70,0x65,0x3d,0x72,0x65,0x73,0x65,0x74,0x5d,0x29,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x5b,0x74,0x79,0x70,0x65,0x3d,0x73,0x75,0x62,0x6d,0x69,0x74,0x5d,0x29,0x7b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x66,0x6f,0x63,0x75,0x73,0x72,0x69,0x6e,0x67,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x75,0x69,0x2d,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x7b,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x7b,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x7d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x6e,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6f,0x75,0x74,0x65,0x72,0x2d,0x73,0x70,0x69,0x6e,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x5b,0x74,0x79,0x70,0x65,0x3d,0x73,0x65,0x61,0x72,0x63,0x68,0x5d,0x7b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x74,0x65,0x78,0x74,0x66,0x69,0x65,0x6c,0x64,0x3b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x2d,0x32,0x70,0x78,0x7d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x73,0x65,0x61,0x72,0x63,0x68,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x7b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x69,0x6c,0x65,0x2d,0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3b,0x66,0x6f,0x6e,0x74,0x3a,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x7d,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6c,0x69,0x73,0x74,0x2d,0x69,0x74,0x65,0x6d,0x7d,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2c,0x64,0x64,0x2c,0x64,0x6c,0x2c,0x66,0x69,0x67,0x75,0x72,0x65,0x2c,0x68,0x31,0x2c,0x68,0x32,0x2c,0x68,0x33,0x2c,0x68,0x34,0x2c,0x68,0x35,0x2c,0x68,0x36,0x2c,0x68,0x72,0x2c,0x70,0x2c,0x70,0x72,0x65,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x7d,0x66,0x69,0x65,0x6c,0x64,0x73,0x65,0x74,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x6c,0x65,0x67,0x65,0x6e,0x64,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x6d,0x65,0x6e,0x75,0x2c,0x6f,0x6c,0x2c,0x75,0x6c,0x7b,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x3a,0x6e,0x6f,0x6e,0x65,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x30,0x3b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x64,0x69,0x61,0x6c,0x6f,0x67,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x30,0x7d,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x7b,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x7d,0x69,0x6e,0x70,0x75,0x74,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x31,0x3b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x74,0x68,0x65,0x6d,0x65,0x28,0x27,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x2e,0x67,0x72,0x61,0x79,0x2e,0x34,0x27,0x2c,0x20,0x23,0x39,0x63,0x61,0x33,0x61,0x66,0x29,0x7d,0x5b,0x72,0x6f,0x6c,0x65,0x3d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x5d,0x2c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x7d,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x7b,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x61,0x75,0x64,0x69,0x6f,0x2c,0x63,0x61,0x6e,0x76,0x61,0x73,0x2c,0x65,0x6d,0x62,0x65,0x64,0x2c,0x69,0x66,0x72,0x61,0x6d,0x65,0x2c,0x69,0x6d,0x67,0x2c,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x73,0x76,0x67,0x2c,0x76,0x69,0x64,0x65,0x6f,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x6d,0x69,0x64,0x64,0x6c,0x65,0x7d,0x69,0x6d,0x67,0x2c,0x76,0x69,0x64,0x65,0x6f,0x7b,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x31,0x30,0x30,0x25,0x3b,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x61,0x75,0x74,0x6f,0x7d,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x3a,0x77,0x68,0x65,0x72,0x65,0x28,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x3d,0x75,0x6e,0x74,0x69,0x6c,0x2d,0x66,0x6f,0x75,0x6e,0x64,0x5d,0x29,0x29,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x6e,0x6f,0x6e,0x65,0x7d,0x60,0x29,0x3b,0x72,0x28,0x5b,0x65,0x65,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x7b,0x74,0x65,0x78,0x74,0x3a,0x60,0x21,0x20,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x20,0x76,0x24,0x7b,0x63,0x68,0x7d,0x20,0x7c,0x20,0x4d,0x49,0x54,0x20,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x20,0x7c,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x60,0x7d,0x29,0x2c,0x2e,0x2e,0x2e,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5d,0x29,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x74,0x3d,0x5b,0x5d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x6e,0x2e,0x6d,0x69,0x6e,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x3d,0x3e,0x69,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x28,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x21,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x6e,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x7b,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x2c,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x3a,0x30,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x6e,0x7d,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x5b,0x5d,0x3b,0x6e,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x26,0x26,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x2c,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x3a,0x30,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x6e,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x74,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x69,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x7b,0x6d,0x69,0x6e,0x3a,0x6c,0x7d,0x6f,0x66,0x20,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x29,0x6c,0x3d,0x3d,0x3d,0x73,0x26,0x26,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x3a,0x73,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x6e,0x5b,0x6f,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x61,0x64,0x64,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x74,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x69,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x52,0x74,0x28,0x69,0x28,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x2c,0x69,0x28,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x29,0x29,0x29,0x2c,0x61,0x3d,0x72,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x65,0x28,0x61,0x2c,0x6e,0x2c,0x69,0x28,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x29,0x29,0x2c,0x6f,0x3d,0x63,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x64,0x3d,0x3e,0x64,0x2e,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x3d,0x3d,0x3d,0x63,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x3f,0x7b,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x52,0x69,0x67,0x68,0x74,0x3a,0x66,0x2e,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x4c,0x65,0x66,0x74,0x3a,0x66,0x2e,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x7d,0x3a,0x7b,0x7d,0x7d,0x2c,0x6c,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x63,0x2c,0x66,0x29,0x3d,0x3e,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x63,0x29,0x2d,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x66,0x29,0x29,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x63,0x3d,0x3e,0x28,0x7b,0x5b,0x60,0x40,0x6d,0x65,0x64,0x69,0x61,0x20,0x28,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x24,0x7b,0x63,0x7d,0x29,0x60,0x5d,0x3a,0x7b,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x63,0x2c,0x2e,0x2e,0x2e,0x6f,0x28,0x63,0x29,0x7d,0x7d,0x7d,0x29,0x29,0x3b,0x74,0x28,0x5b,0x7b,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x22,0x3a,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x77,0x69,0x64,0x74,0x68,0x3a,0x22,0x31,0x30,0x30,0x25,0x22,0x7d,0x2c,0x69,0x28,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x21,0x31,0x29,0x3f,0x7b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x52,0x69,0x67,0x68,0x74,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4c,0x65,0x66,0x74,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x3a,0x7b,0x7d,0x2c,0x6f,0x28,0x30,0x29,0x29,0x7d,0x2c,0x2e,0x2e,0x2e,0x6c,0x5d,0x29,0x7d,0x7d,0x29,0x28,0x29,0x2c,0x61,0x63,0x63,0x65,0x73,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x72,0x2d,0x6f,0x6e,0x6c,0x79,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x22,0x2c,0x77,0x69,0x64,0x74,0x68,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x31,0x70,0x78,0x22,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x22,0x30,0x22,0x2c,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x22,0x2d,0x31,0x70,0x78,0x22,0x2c,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x2c,0x63,0x6c,0x69,0x70,0x3a,0x22,0x72,0x65,0x63,0x74,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x22,0x2c,0x77,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x3a,0x22,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x3a,0x22,0x30,0x22,0x7d,0x2c,0x22,0x2e,0x6e,0x6f,0x74,0x2d,0x73,0x72,0x2d,0x6f,0x6e,0x6c,0x79,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x73,0x74,0x61,0x74,0x69,0x63,0x22,0x2c,0x77,0x69,0x64,0x74,0x68,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x22,0x30,0x22,0x2c,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x22,0x30,0x22,0x2c,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x2c,0x63,0x6c,0x69,0x70,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x77,0x68,0x69,0x74,0x65,0x53,0x70,0x61,0x63,0x65,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x22,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x6e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x3a,0x7b,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x74,0x61,0x74,0x69,0x63,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x73,0x74,0x61,0x74,0x69,0x63,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x69,0x78,0x65,0x64,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x66,0x69,0x78,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x74,0x69,0x63,0x6b,0x79,0x22,0x3a,0x7b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x73,0x74,0x69,0x63,0x6b,0x79,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x69,0x6e,0x73,0x65,0x74,0x3a,0x4c,0x28,0x22,0x69,0x6e,0x73,0x65,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x22,0x2c,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x2d,0x78,0x22,0x2c,0x5b,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x2d,0x79,0x22,0x2c,0x5b,0x22,0x74,0x6f,0x70,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x65,0x6e,0x64,0x22,0x2c,0x5b,0x22,0x69,0x6e,0x73,0x65,0x74,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x74,0x6f,0x70,0x22,0x2c,0x5b,0x22,0x74,0x6f,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x5b,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x5b,0x22,0x6c,0x65,0x66,0x74,0x22,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x69,0x73,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x22,0x3a,0x7b,0x69,0x73,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x73,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x69,0x73,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x7a,0x49,0x6e,0x64,0x65,0x78,0x3a,0x4c,0x28,0x22,0x7a,0x49,0x6e,0x64,0x65,0x78,0x22,0x2c,0x5b,0x5b,0x22,0x7a,0x22,0x2c,0x5b,0x22,0x7a,0x49,0x6e,0x64,0x65,0x78,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x6f,0x72,0x64,0x65,0x72,0x3a,0x4c,0x28,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x63,0x6f,0x6c,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x53,0x74,0x61,0x72,0x74,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x53,0x74,0x61,0x72,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x63,0x6f,0x6c,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x53,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x45,0x6e,0x64,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x45,0x6e,0x64,0x22,0x2c,0x5b,0x5b,0x22,0x63,0x6f,0x6c,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x45,0x6e,0x64,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x77,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x53,0x74,0x61,0x72,0x74,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x53,0x74,0x61,0x72,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x53,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x45,0x6e,0x64,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x45,0x6e,0x64,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x77,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x52,0x6f,0x77,0x45,0x6e,0x64,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x6f,0x61,0x74,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x63,0x6c,0x65,0x61,0x72,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x63,0x6c,0x65,0x61,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6c,0x65,0x61,0x72,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6c,0x65,0x61,0x72,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6c,0x65,0x61,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6c,0x65,0x61,0x72,0x2d,0x62,0x6f,0x74,0x68,0x22,0x3a,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x22,0x62,0x6f,0x74,0x68,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6c,0x65,0x61,0x72,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x63,0x6c,0x65,0x61,0x72,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x4c,0x28,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x6d,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x6d,0x78,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6d,0x79,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x6d,0x73,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6d,0x65,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6d,0x74,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6d,0x72,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6d,0x62,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x6d,0x6c,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x62,0x6f,0x78,0x53,0x69,0x7a,0x69,0x6e,0x67,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x6f,0x78,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x22,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x73,0x69,0x7a,0x69,0x6e,0x67,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x2c,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x6f,0x78,0x22,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x3a,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x22,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x60,0x24,0x7b,0x69,0x7d,0x60,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x74,0x28,0x22,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x22,0x29,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x2c,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x3a,0x22,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x22,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x65,0x78,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x66,0x6c,0x65,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x61,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x65,0x6c,0x6c,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x65,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x68,0x65,0x61,0x64,0x65,0x72,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x72,0x6f,0x77,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x72,0x6f,0x77,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x72,0x6f,0x77,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x72,0x6f,0x77,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x6f,0x77,0x2d,0x72,0x6f,0x6f,0x74,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x66,0x6c,0x6f,0x77,0x2d,0x72,0x6f,0x6f,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x67,0x72,0x69,0x64,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x67,0x72,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x22,0x7d,0x2c,0x22,0x2e,0x6c,0x69,0x73,0x74,0x2d,0x69,0x74,0x65,0x6d,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x6c,0x69,0x73,0x74,0x2d,0x69,0x74,0x65,0x6d,0x22,0x7d,0x2c,0x22,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3a,0x7b,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x3a,0x4c,0x28,0x22,0x61,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x22,0x2c,0x5b,0x5b,0x22,0x61,0x73,0x70,0x65,0x63,0x74,0x22,0x2c,0x5b,0x22,0x61,0x73,0x70,0x65,0x63,0x74,0x2d,0x72,0x61,0x74,0x69,0x6f,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x73,0x69,0x7a,0x65,0x3a,0x4c,0x28,0x22,0x73,0x69,0x7a,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x73,0x69,0x7a,0x65,0x22,0x2c,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x4c,0x28,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x68,0x22,0x2c,0x5b,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x6d,0x61,0x78,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x4c,0x28,0x22,0x6d,0x61,0x78,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x6d,0x61,0x78,0x2d,0x68,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x78,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x6d,0x69,0x6e,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x4c,0x28,0x22,0x6d,0x69,0x6e,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x6d,0x69,0x6e,0x2d,0x68,0x22,0x2c,0x5b,0x22,0x6d,0x69,0x6e,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x77,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x77,0x22,0x2c,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x22,0x2c,0x5b,0x22,0x6d,0x69,0x6e,0x57,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x6d,0x61,0x78,0x57,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x6d,0x61,0x78,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x6d,0x61,0x78,0x2d,0x77,0x22,0x2c,0x5b,0x22,0x6d,0x61,0x78,0x57,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x66,0x6c,0x65,0x78,0x3a,0x4c,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x2c,0x66,0x6c,0x65,0x78,0x53,0x68,0x72,0x69,0x6e,0x6b,0x3a,0x4c,0x28,0x22,0x66,0x6c,0x65,0x78,0x53,0x68,0x72,0x69,0x6e,0x6b,0x22,0x2c,0x5b,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x2c,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x2c,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x66,0x6c,0x65,0x78,0x47,0x72,0x6f,0x77,0x3a,0x4c,0x28,0x22,0x66,0x6c,0x65,0x78,0x47,0x72,0x6f,0x77,0x22,0x2c,0x5b,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x22,0x2c,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x67,0x72,0x6f,0x77,0x22,0x2c,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x66,0x6c,0x65,0x78,0x42,0x61,0x73,0x69,0x73,0x3a,0x4c,0x28,0x22,0x66,0x6c,0x65,0x78,0x42,0x61,0x73,0x69,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x61,0x73,0x69,0x73,0x22,0x2c,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x62,0x61,0x73,0x69,0x73,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x74,0x61,0x62,0x6c,0x65,0x4c,0x61,0x79,0x6f,0x75,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x6c,0x65,0x2d,0x66,0x69,0x78,0x65,0x64,0x22,0x3a,0x7b,0x22,0x74,0x61,0x62,0x6c,0x65,0x2d,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x3a,0x22,0x66,0x69,0x78,0x65,0x64,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x53,0x69,0x64,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x7b,0x22,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x69,0x64,0x65,0x22,0x3a,0x22,0x74,0x6f,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x7b,0x22,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x69,0x64,0x65,0x22,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x3a,0x22,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x22,0x3a,0x30,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x22,0x3a,0x30,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x22,0x3a,0x69,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x22,0x3a,0x69,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x29,0x22,0x7d,0x29,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x22,0x3a,0x69,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x29,0x22,0x7d,0x29,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x22,0x3a,0x69,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x78,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2d,0x79,0x29,0x22,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x4c,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x72,0x69,0x67,0x69,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x72,0x69,0x67,0x69,0x6e,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x3a,0x4c,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x22,0x2c,0x5b,0x5b,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x72,0x6f,0x74,0x61,0x74,0x65,0x3a,0x4c,0x28,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x73,0x6b,0x65,0x77,0x3a,0x4c,0x28,0x22,0x73,0x6b,0x65,0x77,0x22,0x2c,0x5b,0x5b,0x5b,0x22,0x73,0x6b,0x65,0x77,0x2d,0x78,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x6b,0x65,0x77,0x2d,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x73,0x63,0x61,0x6c,0x65,0x3a,0x4c,0x28,0x22,0x73,0x63,0x61,0x6c,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x61,0x6c,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x58,0x65,0x5d,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x78,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6b,0x65,0x77,0x2d,0x79,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x78,0x22,0x3a,0x22,0x31,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x79,0x22,0x3a,0x22,0x31,0x22,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x3a,0x7b,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x58,0x65,0x7d,0x2c,0x22,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x63,0x70,0x75,0x22,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x58,0x65,0x7d,0x2c,0x22,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x67,0x70,0x75,0x22,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x58,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x29,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x33,0x64,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x78,0x29,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2d,0x79,0x29,0x2c,0x20,0x30,0x29,0x22,0x29,0x7d,0x2c,0x22,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x61,0x3d,0x3e,0x54,0x65,0x28,0x74,0x28,0x22,0x70,0x72,0x65,0x66,0x69,0x78,0x22,0x29,0x2b,0x61,0x29,0x2c,0x6e,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x65,0x28,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x29,0x3f,0x3f,0x7b,0x7d,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x61,0x2c,0x73,0x5d,0x29,0x3d,0x3e,0x5b,0x61,0x2c,0x7b,0x5b,0x60,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x24,0x7b,0x69,0x28,0x61,0x29,0x7d,0x60,0x5d,0x3a,0x73,0x7d,0x5d,0x29,0x29,0x3b,0x72,0x28,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x3a,0x61,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x24,0x6f,0x28,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x2e,0x2e,0x2e,0x73,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x6f,0x3d,0x3e,0x6e,0x5b,0x6f,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x29,0x2c,0x7b,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x6f,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6c,0x7d,0x29,0x3d,0x3e,0x6f,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x6e,0x5b,0x6f,0x5d,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x6c,0x3a,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x6f,0x2c,0x69,0x28,0x6f,0x29,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x5d,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x63,0x75,0x72,0x73,0x6f,0x72,0x3a,0x4c,0x28,0x22,0x63,0x75,0x72,0x73,0x6f,0x72,0x22,0x29,0x2c,0x74,0x6f,0x75,0x63,0x68,0x41,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x78,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x79,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x69,0x6e,0x63,0x68,0x2d,0x7a,0x6f,0x6f,0x6d,0x22,0x3a,0x22,0x20,0x22,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x78,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x79,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x69,0x6e,0x63,0x68,0x2d,0x7a,0x6f,0x6f,0x6d,0x29,0x22,0x3b,0x65,0x28,0x7b,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x61,0x6e,0x2d,0x78,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x78,0x22,0x3a,0x22,0x70,0x61,0x6e,0x2d,0x78,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x61,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x78,0x22,0x3a,0x22,0x70,0x61,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x61,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x78,0x22,0x3a,0x22,0x70,0x61,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x61,0x6e,0x2d,0x79,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x79,0x22,0x3a,0x22,0x70,0x61,0x6e,0x2d,0x79,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x61,0x6e,0x2d,0x75,0x70,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x79,0x22,0x3a,0x22,0x70,0x61,0x6e,0x2d,0x75,0x70,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x61,0x6e,0x2d,0x64,0x6f,0x77,0x6e,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x61,0x6e,0x2d,0x79,0x22,0x3a,0x22,0x70,0x61,0x6e,0x2d,0x64,0x6f,0x77,0x6e,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x70,0x69,0x6e,0x63,0x68,0x2d,0x7a,0x6f,0x6f,0x6d,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x69,0x6e,0x63,0x68,0x2d,0x7a,0x6f,0x6f,0x6d,0x22,0x3a,0x22,0x70,0x69,0x6e,0x63,0x68,0x2d,0x7a,0x6f,0x6f,0x6d,0x22,0x2c,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x6f,0x75,0x63,0x68,0x2d,0x6d,0x61,0x6e,0x69,0x70,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x22,0x74,0x6f,0x75,0x63,0x68,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x6d,0x61,0x6e,0x69,0x70,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x75,0x73,0x65,0x72,0x53,0x65,0x6c,0x65,0x63,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x74,0x65,0x78,0x74,0x22,0x3a,0x7b,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x61,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x3a,0x22,0x61,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x72,0x65,0x73,0x69,0x7a,0x65,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x72,0x65,0x73,0x69,0x7a,0x65,0x2d,0x79,0x22,0x3a,0x7b,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x72,0x65,0x73,0x69,0x7a,0x65,0x2d,0x78,0x22,0x3a,0x7b,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x22,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x72,0x65,0x73,0x69,0x7a,0x65,0x22,0x3a,0x7b,0x72,0x65,0x73,0x69,0x7a,0x65,0x3a,0x22,0x62,0x6f,0x74,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x53,0x6e,0x61,0x70,0x54,0x79,0x70,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x22,0x70,0x72,0x6f,0x78,0x69,0x6d,0x69,0x74,0x79,0x22,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x78,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x22,0x78,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x6e,0x65,0x73,0x73,0x29,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x79,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x22,0x79,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x6e,0x65,0x73,0x73,0x29,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x62,0x6f,0x74,0x68,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x74,0x79,0x70,0x65,0x22,0x3a,0x22,0x62,0x6f,0x74,0x68,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x6e,0x65,0x73,0x73,0x29,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x22,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x22,0x6d,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x70,0x72,0x6f,0x78,0x69,0x6d,0x69,0x74,0x79,0x22,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x22,0x70,0x72,0x6f,0x78,0x69,0x6d,0x69,0x74,0x79,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x53,0x6e,0x61,0x70,0x41,0x6c,0x69,0x67,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x53,0x6e,0x61,0x70,0x53,0x74,0x6f,0x70,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x6f,0x70,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x6e,0x61,0x70,0x2d,0x61,0x6c,0x77,0x61,0x79,0x73,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6e,0x61,0x70,0x2d,0x73,0x74,0x6f,0x70,0x22,0x3a,0x22,0x61,0x6c,0x77,0x61,0x79,0x73,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x4d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x4c,0x28,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x4d,0x61,0x72,0x67,0x69,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x78,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x79,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x73,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x65,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x74,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x72,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x62,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x6c,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x50,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x4c,0x28,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x50,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x78,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x79,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x73,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x65,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x74,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x72,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x62,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x6c,0x22,0x2c,0x5b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x22,0x5d,0x5d,0x5d,0x5d,0x29,0x2c,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6c,0x69,0x73,0x74,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x3a,0x7b,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6c,0x69,0x73,0x74,0x2d,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x22,0x3a,0x7b,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x54,0x79,0x70,0x65,0x3a,0x4c,0x28,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x54,0x79,0x70,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x6c,0x69,0x73,0x74,0x22,0x2c,0x5b,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x54,0x79,0x70,0x65,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x49,0x6d,0x61,0x67,0x65,0x3a,0x4c,0x28,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x49,0x6d,0x61,0x67,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x6c,0x69,0x73,0x74,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x5b,0x22,0x6c,0x69,0x73,0x74,0x53,0x74,0x79,0x6c,0x65,0x49,0x6d,0x61,0x67,0x65,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x4c,0x28,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x5b,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x62,0x72,0x65,0x61,0x6b,0x42,0x65,0x66,0x6f,0x72,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x61,0x76,0x6f,0x69,0x64,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x61,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x61,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x70,0x61,0x67,0x65,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x70,0x61,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x72,0x65,0x61,0x6b,0x49,0x6e,0x73,0x69,0x64,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x2d,0x61,0x76,0x6f,0x69,0x64,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x2d,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x2d,0x61,0x76,0x6f,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x72,0x65,0x61,0x6b,0x41,0x66,0x74,0x65,0x72,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x61,0x76,0x6f,0x69,0x64,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x61,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x61,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x70,0x61,0x67,0x65,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x70,0x61,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x73,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x67,0x72,0x69,0x64,0x2d,0x66,0x6c,0x6f,0x77,0x2d,0x72,0x6f,0x77,0x22,0x3a,0x7b,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x3a,0x22,0x72,0x6f,0x77,0x22,0x7d,0x2c,0x22,0x2e,0x67,0x72,0x69,0x64,0x2d,0x66,0x6c,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x22,0x3a,0x7b,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x3a,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x67,0x72,0x69,0x64,0x2d,0x66,0x6c,0x6f,0x77,0x2d,0x64,0x65,0x6e,0x73,0x65,0x22,0x3a,0x7b,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x3a,0x22,0x64,0x65,0x6e,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x67,0x72,0x69,0x64,0x2d,0x66,0x6c,0x6f,0x77,0x2d,0x72,0x6f,0x77,0x2d,0x64,0x65,0x6e,0x73,0x65,0x22,0x3a,0x7b,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x3a,0x22,0x72,0x6f,0x77,0x20,0x64,0x65,0x6e,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x67,0x72,0x69,0x64,0x2d,0x66,0x6c,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x2d,0x64,0x65,0x6e,0x73,0x65,0x22,0x3a,0x7b,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x46,0x6c,0x6f,0x77,0x3a,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x20,0x64,0x65,0x6e,0x73,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x52,0x6f,0x77,0x73,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x52,0x6f,0x77,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x41,0x75,0x74,0x6f,0x52,0x6f,0x77,0x73,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x73,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x6f,0x77,0x73,0x3a,0x4c,0x28,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x6f,0x77,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x6f,0x77,0x73,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x66,0x6c,0x65,0x78,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x72,0x6f,0x77,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x72,0x6f,0x77,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x72,0x6f,0x77,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x72,0x6f,0x77,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x63,0x6f,0x6c,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x63,0x6f,0x6c,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x66,0x6c,0x65,0x78,0x57,0x72,0x61,0x70,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x77,0x72,0x61,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x77,0x72,0x61,0x70,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6c,0x65,0x78,0x2d,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x3a,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x70,0x6c,0x61,0x63,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x65,0x76,0x65,0x6e,0x6c,0x79,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x65,0x76,0x65,0x6e,0x6c,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x70,0x6c,0x61,0x63,0x65,0x49,0x74,0x65,0x6d,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x61,0x6c,0x69,0x67,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x65,0x76,0x65,0x6e,0x6c,0x79,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x65,0x76,0x65,0x6e,0x6c,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x61,0x6c,0x69,0x67,0x6e,0x49,0x74,0x65,0x6d,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x69,0x74,0x65,0x6d,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x74,0x65,0x6d,0x73,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x74,0x65,0x6d,0x73,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x69,0x74,0x65,0x6d,0x73,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x65,0x76,0x65,0x6e,0x6c,0x79,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x65,0x76,0x65,0x6e,0x6c,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x49,0x74,0x65,0x6d,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x67,0x61,0x70,0x3a,0x4c,0x28,0x22,0x67,0x61,0x70,0x22,0x2c,0x5b,0x5b,0x22,0x67,0x61,0x70,0x22,0x2c,0x5b,0x22,0x67,0x61,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x67,0x61,0x70,0x2d,0x78,0x22,0x2c,0x5b,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x47,0x61,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x67,0x61,0x70,0x2d,0x79,0x22,0x2c,0x5b,0x22,0x72,0x6f,0x77,0x47,0x61,0x70,0x22,0x5d,0x5d,0x5d,0x5d,0x29,0x2c,0x73,0x70,0x61,0x63,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x69,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x3f,0x22,0x30,0x70,0x78,0x22,0x3a,0x69,0x2c,0x7b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x60,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x60,0x7d,0x7d,0x29,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x79,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x69,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x3f,0x22,0x30,0x70,0x78,0x22,0x3a,0x69,0x2c,0x7b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x60,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x60,0x7d,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x74,0x28,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x2c,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x73,0x70,0x61,0x63,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x31,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x70,0x61,0x63,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x31,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x69,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x3f,0x22,0x30,0x70,0x78,0x22,0x3a,0x69,0x2c,0x7b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x60,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x60,0x7d,0x7d,0x29,0x2c,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x22,0x3a,0x69,0x3d,0x3e,0x28,0x69,0x3d,0x69,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x3f,0x22,0x30,0x70,0x78,0x22,0x3a,0x69,0x2c,0x7b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x30,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x63,0x61,0x6c,0x63,0x28,0x31,0x20,0x2d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x29,0x60,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x60,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x69,0x7d,0x20,0x2a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x29,0x29,0x60,0x7d,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x74,0x28,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x57,0x69,0x64,0x74,0x68,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x79,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x31,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x78,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x31,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x53,0x74,0x79,0x6c,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x73,0x6f,0x6c,0x69,0x64,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x73,0x6f,0x6c,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x64,0x61,0x73,0x68,0x65,0x64,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x64,0x6f,0x74,0x74,0x65,0x64,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x64,0x6f,0x75,0x62,0x6c,0x65,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x6e,0x6f,0x6e,0x65,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x64,0x69,0x76,0x69,0x64,0x65,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x7b,0x5b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x5d,0x3a,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x7d,0x3a,0x7b,0x5b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x5d,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x28,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x69,0x2c,0x2e,0x2e,0x2e,0x6e,0x7d,0x29,0x3d,0x3e,0x6e,0x29,0x28,0x78,0x65,0x28,0x65,0x28,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x64,0x69,0x76,0x69,0x64,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x5b,0x22,0x26,0x20,0x3e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7e,0x20,0x3a,0x6e,0x6f,0x74,0x28,0x5b,0x68,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x22,0x5d,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x69,0x76,0x69,0x64,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x74,0x7d,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x64,0x69,0x76,0x69,0x64,0x65,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x70,0x6c,0x61,0x63,0x65,0x53,0x65,0x6c,0x66,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x61,0x6c,0x69,0x67,0x6e,0x53,0x65,0x6c,0x66,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x65,0x6c,0x66,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x66,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x66,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x66,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x66,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x65,0x6c,0x66,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x53,0x65,0x6c,0x66,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x3a,0x7b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x3a,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x63,0x6c,0x69,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x2d,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x22,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x22,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x22,0x3a,0x22,0x63,0x6c,0x69,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x22,0x3a,0x22,0x63,0x6c,0x69,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x22,0x3a,0x22,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x22,0x3a,0x22,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x78,0x22,0x3a,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x22,0x3a,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x42,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x79,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2d,0x79,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2d,0x79,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x79,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2d,0x79,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x78,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2d,0x78,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2d,0x78,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x78,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2d,0x78,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x42,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x22,0x3a,0x7b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x3a,0x22,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x4f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x74,0x72,0x75,0x6e,0x63,0x61,0x74,0x65,0x22,0x3a,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x3a,0x22,0x65,0x6c,0x6c,0x69,0x70,0x73,0x69,0x73,0x22,0x2c,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x65,0x6c,0x6c,0x69,0x70,0x73,0x69,0x73,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x3a,0x22,0x65,0x6c,0x6c,0x69,0x70,0x73,0x69,0x73,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x65,0x6c,0x6c,0x69,0x70,0x73,0x69,0x73,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x3a,0x22,0x65,0x6c,0x6c,0x69,0x70,0x73,0x69,0x73,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x22,0x3a,0x22,0x63,0x6c,0x69,0x70,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x2d,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x22,0x3a,0x7b,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x3a,0x22,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x3a,0x7b,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x70,0x72,0x65,0x22,0x3a,0x7b,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x70,0x72,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x70,0x72,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x70,0x72,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x7b,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x3a,0x7b,0x22,0x77,0x68,0x69,0x74,0x65,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x73,0x70,0x61,0x63,0x65,0x73,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x57,0x72,0x61,0x70,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x77,0x72,0x61,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x70,0x72,0x65,0x74,0x74,0x79,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x70,0x72,0x65,0x74,0x74,0x79,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x77,0x6f,0x72,0x64,0x42,0x72,0x65,0x61,0x6b,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x2c,0x22,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x77,0x6f,0x72,0x64,0x73,0x22,0x3a,0x7b,0x22,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x77,0x72,0x61,0x70,0x22,0x3a,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x77,0x6f,0x72,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x72,0x65,0x61,0x6b,0x2d,0x6b,0x65,0x65,0x70,0x22,0x3a,0x7b,0x22,0x77,0x6f,0x72,0x64,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x6b,0x65,0x65,0x70,0x2d,0x61,0x6c,0x6c,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x52,0x61,0x64,0x69,0x75,0x73,0x3a,0x4c,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x52,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x73,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x65,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x74,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x72,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x6c,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x73,0x73,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x73,0x65,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x65,0x65,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x65,0x6e,0x64,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x65,0x73,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x74,0x6c,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x74,0x72,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x72,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6c,0x22,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x5d,0x5d,0x5d,0x29,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x78,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x22,0x2c,0x5b,0x5b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x7d,0x5d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x5d,0x7d,0x29,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x53,0x74,0x79,0x6c,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x6f,0x6c,0x69,0x64,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x73,0x6f,0x6c,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x28,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x69,0x2c,0x2e,0x2e,0x2e,0x6e,0x7d,0x29,0x3d,0x3e,0x6e,0x29,0x28,0x78,0x65,0x28,0x65,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x2c,0x72,0x28,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x78,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x5d,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x79,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x5d,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x28,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x69,0x2c,0x2e,0x2e,0x2e,0x6e,0x7d,0x29,0x3d,0x3e,0x6e,0x29,0x28,0x78,0x65,0x28,0x65,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x2c,0x72,0x28,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x69,0x67,0x68,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x22,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6c,0x65,0x66,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x28,0x28,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x69,0x2c,0x2e,0x2e,0x2e,0x6e,0x7d,0x29,0x3d,0x3e,0x6e,0x29,0x28,0x78,0x65,0x28,0x65,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x4c,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x62,0x67,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x4c,0x28,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x49,0x6d,0x61,0x67,0x65,0x3a,0x4c,0x28,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x49,0x6d,0x61,0x67,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x67,0x22,0x2c,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x22,0x2c,0x22,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x75,0x72,0x6c,0x22,0x5d,0x7d,0x29,0x2c,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x73,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5a,0x65,0x28,0x65,0x2c,0x30,0x2c,0x22,0x72,0x67,0x62,0x28,0x32,0x35,0x35,0x20,0x32,0x35,0x35,0x20,0x32,0x35,0x35,0x20,0x2f,0x20,0x30,0x29,0x22,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x74,0x2c,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x69,0x7d,0x29,0x7b,0x69,0x28,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x74,0x6f,0x70,0x73,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x66,0x72,0x6f,0x6d,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x76,0x69,0x61,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x20,0x22,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x74,0x28,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x73,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x2c,0x61,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x74,0x28,0x22,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x5d,0x7d,0x3b,0x65,0x28,0x7b,0x66,0x72,0x6f,0x6d,0x3a,0x73,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x72,0x28,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x74,0x6f,0x70,0x73,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x66,0x72,0x6f,0x6d,0x22,0x3a,0x60,0x24,0x7b,0x58,0x28,0x73,0x29,0x7d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x66,0x72,0x6f,0x6d,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x60,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x22,0x3a,0x60,0x24,0x7b,0x6f,0x7d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x60,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x22,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x66,0x72,0x6f,0x6d,0x29,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x29,0x22,0x7d,0x7d,0x7d,0x2c,0x6e,0x29,0x2c,0x65,0x28,0x7b,0x66,0x72,0x6f,0x6d,0x3a,0x73,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x66,0x72,0x6f,0x6d,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x73,0x7d,0x29,0x7d,0x2c,0x61,0x29,0x2c,0x65,0x28,0x7b,0x76,0x69,0x61,0x3a,0x73,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x72,0x28,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x74,0x6f,0x70,0x73,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x22,0x3a,0x60,0x24,0x7b,0x6f,0x7d,0x20,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x60,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x73,0x74,0x6f,0x70,0x73,0x22,0x3a,0x60,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x66,0x72,0x6f,0x6d,0x29,0x2c,0x20,0x24,0x7b,0x58,0x28,0x73,0x29,0x7d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x76,0x69,0x61,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x2c,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x29,0x60,0x7d,0x7d,0x7d,0x2c,0x6e,0x29,0x2c,0x65,0x28,0x7b,0x76,0x69,0x61,0x3a,0x73,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x76,0x69,0x61,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x73,0x7d,0x29,0x7d,0x2c,0x61,0x29,0x2c,0x65,0x28,0x7b,0x74,0x6f,0x3a,0x73,0x3d,0x3e,0x28,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x74,0x6f,0x70,0x73,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x22,0x3a,0x60,0x24,0x7b,0x58,0x28,0x73,0x29,0x7d,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x60,0x7d,0x29,0x7d,0x2c,0x6e,0x29,0x2c,0x65,0x28,0x7b,0x74,0x6f,0x3a,0x73,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2d,0x74,0x6f,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x73,0x7d,0x29,0x7d,0x2c,0x61,0x29,0x7d,0x7d,0x29,0x28,0x29,0x2c,0x62,0x6f,0x78,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x42,0x72,0x65,0x61,0x6b,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6c,0x69,0x63,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x73,0x6c,0x69,0x63,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6c,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6c,0x69,0x63,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x73,0x6c,0x69,0x63,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6c,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x69,0x7a,0x65,0x3a,0x4c,0x28,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x53,0x69,0x7a,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x67,0x22,0x2c,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x22,0x2c,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x2c,0x22,0x73,0x69,0x7a,0x65,0x22,0x5d,0x7d,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x41,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x67,0x2d,0x66,0x69,0x78,0x65,0x64,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x61,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x22,0x3a,0x22,0x66,0x69,0x78,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x6c,0x6f,0x63,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x61,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x22,0x3a,0x22,0x6c,0x6f,0x63,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x61,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x22,0x3a,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x69,0x70,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x67,0x2d,0x63,0x6c,0x69,0x70,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x63,0x6c,0x69,0x70,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x63,0x6c,0x69,0x70,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x63,0x6c,0x69,0x70,0x2d,0x74,0x65,0x78,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x4c,0x28,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x62,0x67,0x22,0x2c,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x22,0x2c,0x5b,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x7b,0x70,0x72,0x65,0x66,0x65,0x72,0x4f,0x6e,0x43,0x6f,0x6e,0x66,0x6c,0x69,0x63,0x74,0x3a,0x21,0x30,0x7d,0x5d,0x5d,0x7d,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x52,0x65,0x70,0x65,0x61,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x67,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x22,0x6e,0x6f,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x2d,0x78,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x2d,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x2d,0x79,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x2d,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x2d,0x72,0x6f,0x75,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x22,0x72,0x6f,0x75,0x6e,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x2d,0x73,0x70,0x61,0x63,0x65,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x4f,0x72,0x69,0x67,0x69,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x67,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x3a,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2d,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x3a,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x62,0x6f,0x78,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x66,0x69,0x6c,0x6c,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x66,0x69,0x6c,0x6c,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x66,0x69,0x6c,0x6c,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x66,0x69,0x6c,0x6c,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x73,0x74,0x72,0x6f,0x6b,0x65,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x75,0x72,0x6c,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x22,0x2c,0x5b,0x22,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x5d,0x7d,0x29,0x2c,0x6f,0x62,0x6a,0x65,0x63,0x74,0x46,0x69,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x22,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x63,0x6f,0x76,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x22,0x3a,0x22,0x63,0x6f,0x76,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x6c,0x6c,0x22,0x3a,0x7b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x22,0x3a,0x22,0x66,0x69,0x6c,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x73,0x63,0x61,0x6c,0x65,0x2d,0x64,0x6f,0x77,0x6e,0x22,0x3a,0x7b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x66,0x69,0x74,0x22,0x3a,0x22,0x73,0x63,0x61,0x6c,0x65,0x2d,0x64,0x6f,0x77,0x6e,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6f,0x62,0x6a,0x65,0x63,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x4c,0x28,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x2c,0x5b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x4c,0x28,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x2c,0x5b,0x5b,0x22,0x70,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x22,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x70,0x78,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x70,0x79,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x5d,0x2c,0x5b,0x5b,0x22,0x70,0x73,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x70,0x65,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x70,0x74,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x74,0x6f,0x70,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x70,0x72,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x70,0x62,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x5d,0x2c,0x5b,0x22,0x70,0x6c,0x22,0x2c,0x5b,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x22,0x5d,0x5d,0x5d,0x5d,0x29,0x2c,0x74,0x65,0x78,0x74,0x41,0x6c,0x69,0x67,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x6c,0x65,0x66,0x74,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x74,0x65,0x78,0x74,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x3a,0x4c,0x28,0x22,0x74,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x6e,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x69,0x6e,0x64,0x65,0x6e,0x74,0x22,0x2c,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x69,0x6e,0x64,0x65,0x6e,0x74,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x41,0x6c,0x69,0x67,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x74,0x6f,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x6d,0x69,0x64,0x64,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x6d,0x69,0x64,0x64,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x74,0x65,0x78,0x74,0x2d,0x74,0x6f,0x70,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x74,0x6f,0x70,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x74,0x65,0x78,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x75,0x62,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x73,0x75,0x62,0x22,0x7d,0x2c,0x22,0x2e,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x75,0x70,0x65,0x72,0x22,0x3a,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x22,0x73,0x75,0x70,0x65,0x72,0x22,0x7d,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x74,0x7d,0x29,0x7d,0x29,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x66,0x6f,0x6e,0x74,0x3a,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x3d,0x7b,0x7d,0x5d,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x26,0x26,0x6b,0x65,0x28,0x74,0x5b,0x31,0x5d,0x29,0x3f,0x74,0x3a,0x5b,0x74,0x5d,0x2c,0x7b,0x66,0x6f,0x6e,0x74,0x46,0x65,0x61,0x74,0x75,0x72,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x61,0x2c,0x66,0x6f,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3a,0x73,0x7d,0x3d,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x22,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x3f,0x69,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x3a,0x69,0x2c,0x2e,0x2e,0x2e,0x61,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x7d,0x3a,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x3a,0x61,0x7d,0x2c,0x2e,0x2e,0x2e,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x7d,0x3a,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x3a,0x73,0x7d,0x7d,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x66,0x6f,0x6e,0x74,0x46,0x61,0x6d,0x69,0x6c,0x79,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x22,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x22,0x66,0x61,0x6d,0x69,0x6c,0x79,0x2d,0x6e,0x61,0x6d,0x65,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x53,0x69,0x7a,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x74,0x65,0x78,0x74,0x3a,0x28,0x74,0x2c,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x6e,0x2c,0x61,0x5d,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x3f,0x74,0x3a,0x5b,0x74,0x5d,0x3b,0x69,0x66,0x28,0x69,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x6e,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x3a,0x69,0x7d,0x3b,0x6c,0x65,0x74,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x73,0x2c,0x6c,0x65,0x74,0x74,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x6f,0x2c,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x3a,0x6c,0x7d,0x3d,0x6b,0x65,0x28,0x61,0x29,0x3f,0x61,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x61,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x6e,0x2c,0x2e,0x2e,0x2e,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x7d,0x3a,0x7b,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x3a,0x73,0x7d,0x2c,0x2e,0x2e,0x2e,0x6f,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x7d,0x3a,0x7b,0x22,0x6c,0x65,0x74,0x74,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x6f,0x7d,0x2c,0x2e,0x2e,0x2e,0x6c,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x7b,0x7d,0x3a,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x22,0x3a,0x6c,0x7d,0x7d,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x66,0x6f,0x6e,0x74,0x53,0x69,0x7a,0x65,0x22,0x29,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x65,0x28,0x22,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x3a,0x4c,0x28,0x22,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x66,0x6f,0x6e,0x74,0x22,0x2c,0x5b,0x22,0x66,0x6f,0x6e,0x74,0x57,0x65,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x22,0x2c,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x2c,0x74,0x65,0x78,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x3a,0x22,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x3a,0x22,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x3a,0x22,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2d,0x63,0x61,0x73,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x53,0x74,0x79,0x6c,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x69,0x74,0x61,0x6c,0x69,0x63,0x22,0x3a,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x69,0x74,0x61,0x6c,0x69,0x63,0x22,0x7d,0x2c,0x22,0x2e,0x6e,0x6f,0x74,0x2d,0x69,0x74,0x61,0x6c,0x69,0x63,0x22,0x3a,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x66,0x6f,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4e,0x75,0x6d,0x65,0x72,0x69,0x63,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x2d,0x7a,0x65,0x72,0x6f,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x69,0x67,0x75,0x72,0x65,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x29,0x22,0x3b,0x72,0x28,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x2d,0x7a,0x65,0x72,0x6f,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x69,0x67,0x75,0x72,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x20,0x22,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x3a,0x7b,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x22,0x3a,0x22,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x2d,0x7a,0x65,0x72,0x6f,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x2d,0x7a,0x65,0x72,0x6f,0x22,0x3a,0x22,0x73,0x6c,0x61,0x73,0x68,0x65,0x64,0x2d,0x7a,0x65,0x72,0x6f,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x6c,0x69,0x6e,0x69,0x6e,0x67,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x69,0x67,0x75,0x72,0x65,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x69,0x6e,0x67,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x6f,0x6c,0x64,0x73,0x74,0x79,0x6c,0x65,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x69,0x67,0x75,0x72,0x65,0x22,0x3a,0x22,0x6f,0x6c,0x64,0x73,0x74,0x79,0x6c,0x65,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x70,0x72,0x6f,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x22,0x70,0x72,0x6f,0x70,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x74,0x61,0x62,0x75,0x6c,0x61,0x72,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x3a,0x22,0x74,0x61,0x62,0x75,0x6c,0x61,0x72,0x2d,0x6e,0x75,0x6d,0x73,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x64,0x69,0x61,0x67,0x6f,0x6e,0x61,0x6c,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x64,0x69,0x61,0x67,0x6f,0x6e,0x61,0x6c,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x73,0x74,0x61,0x63,0x6b,0x65,0x64,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x22,0x73,0x74,0x61,0x63,0x6b,0x65,0x64,0x2d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x22,0x2c,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2d,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x22,0x3a,0x74,0x7d,0x7d,0x29,0x7d,0x2c,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3a,0x4c,0x28,0x22,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x6c,0x65,0x61,0x64,0x69,0x6e,0x67,0x22,0x2c,0x5b,0x22,0x6c,0x69,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x6c,0x65,0x74,0x74,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x4c,0x28,0x22,0x6c,0x65,0x74,0x74,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x2c,0x5b,0x5b,0x22,0x74,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x22,0x2c,0x5b,0x22,0x6c,0x65,0x74,0x74,0x65,0x72,0x53,0x70,0x61,0x63,0x69,0x6e,0x67,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x74,0x65,0x78,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x74,0x65,0x78,0x74,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x74,0x65,0x78,0x74,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x74,0x65,0x78,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x4c,0x28,0x22,0x74,0x65,0x78,0x74,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x22,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x76,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x22,0x6f,0x76,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x22,0x7d,0x2c,0x22,0x2e,0x6e,0x6f,0x2d,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x53,0x74,0x79,0x6c,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6f,0x6c,0x69,0x64,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x73,0x6f,0x6c,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x77,0x61,0x76,0x79,0x22,0x3a,0x7b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x77,0x61,0x76,0x79,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x54,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x3a,0x4c,0x28,0x22,0x74,0x65,0x78,0x74,0x44,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x54,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x22,0x2c,0x5b,0x5b,0x22,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x5d,0x7d,0x29,0x2c,0x74,0x65,0x78,0x74,0x55,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x4c,0x28,0x22,0x74,0x65,0x78,0x74,0x55,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x2c,0x66,0x6f,0x6e,0x74,0x53,0x6d,0x6f,0x6f,0x74,0x68,0x69,0x6e,0x67,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x61,0x6e,0x74,0x69,0x61,0x6c,0x69,0x61,0x73,0x65,0x64,0x22,0x3a,0x7b,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x69,0x6e,0x67,0x22,0x3a,0x22,0x61,0x6e,0x74,0x69,0x61,0x6c,0x69,0x61,0x73,0x65,0x64,0x22,0x2c,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x6f,0x73,0x78,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x69,0x6e,0x67,0x22,0x3a,0x22,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x73,0x75,0x62,0x70,0x69,0x78,0x65,0x6c,0x2d,0x61,0x6e,0x74,0x69,0x61,0x6c,0x69,0x61,0x73,0x65,0x64,0x22,0x3a,0x7b,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x69,0x6e,0x67,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x2c,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x6f,0x73,0x78,0x2d,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x69,0x6e,0x67,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x7b,0x22,0x26,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x7d,0x3a,0x7b,0x22,0x26,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x5b,0x22,0x26,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x5d,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x74,0x7d,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x63,0x61,0x72,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x63,0x61,0x72,0x65,0x74,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x63,0x61,0x72,0x65,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x63,0x61,0x72,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x61,0x63,0x63,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x61,0x63,0x63,0x65,0x6e,0x74,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x61,0x63,0x63,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x4c,0x28,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x42,0x6c,0x65,0x6e,0x64,0x4d,0x6f,0x64,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x64,0x61,0x72,0x6b,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x64,0x61,0x72,0x6b,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6c,0x69,0x67,0x68,0x74,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6c,0x69,0x67,0x68,0x74,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x64,0x6f,0x64,0x67,0x65,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x64,0x6f,0x64,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x62,0x75,0x72,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x62,0x75,0x72,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x68,0x61,0x72,0x64,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x68,0x61,0x72,0x64,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x73,0x6f,0x66,0x74,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x73,0x6f,0x66,0x74,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x68,0x75,0x65,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x68,0x75,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x62,0x67,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6c,0x75,0x6d,0x69,0x6e,0x6f,0x73,0x69,0x74,0x79,0x22,0x3a,0x7b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6c,0x75,0x6d,0x69,0x6e,0x6f,0x73,0x69,0x74,0x79,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6d,0x69,0x78,0x42,0x6c,0x65,0x6e,0x64,0x4d,0x6f,0x64,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6f,0x76,0x65,0x72,0x6c,0x61,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x64,0x61,0x72,0x6b,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x64,0x61,0x72,0x6b,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6c,0x69,0x67,0x68,0x74,0x65,0x6e,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6c,0x69,0x67,0x68,0x74,0x65,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x64,0x6f,0x64,0x67,0x65,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x64,0x6f,0x64,0x67,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x62,0x75,0x72,0x6e,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x62,0x75,0x72,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x68,0x61,0x72,0x64,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x68,0x61,0x72,0x64,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x73,0x6f,0x66,0x74,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x73,0x6f,0x66,0x74,0x2d,0x6c,0x69,0x67,0x68,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x68,0x75,0x65,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x68,0x75,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6c,0x75,0x6d,0x69,0x6e,0x6f,0x73,0x69,0x74,0x79,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x6c,0x75,0x6d,0x69,0x6e,0x6f,0x73,0x69,0x74,0x79,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x70,0x6c,0x75,0x73,0x2d,0x64,0x61,0x72,0x6b,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x70,0x6c,0x75,0x73,0x2d,0x64,0x61,0x72,0x6b,0x65,0x72,0x22,0x7d,0x2c,0x22,0x2e,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x70,0x6c,0x75,0x73,0x2d,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x6d,0x69,0x78,0x2d,0x62,0x6c,0x65,0x6e,0x64,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x22,0x70,0x6c,0x75,0x73,0x2d,0x6c,0x69,0x67,0x68,0x74,0x65,0x72,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x3a,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x72,0x3d,0x6d,0x74,0x28,0x22,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x22,0x29,0x2c,0x65,0x3d,0x5b,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x20,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x20,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x74,0x2c,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x69,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x6e,0x7d,0x29,0x7b,0x69,0x28,0x22,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x7d,0x29,0x2c,0x74,0x28,0x7b,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x61,0x3d,0x3e,0x7b,0x61,0x3d,0x72,0x28,0x61,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x4a,0x69,0x28,0x61,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x29,0x21,0x6f,0x2e,0x76,0x61,0x6c,0x69,0x64,0x7c,0x7c,0x28,0x6f,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x3d,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x61,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3f,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x3a,0x61,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x22,0x3a,0x61,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3f,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x3a,0x71,0x66,0x28,0x73,0x29,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x65,0x7d,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x6e,0x28,0x22,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x5d,0x7d,0x29,0x7d,0x7d,0x29,0x28,0x29,0x2c,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x73,0x68,0x61,0x64,0x6f,0x77,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x74,0x29,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x29,0x22,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x62,0x6f,0x78,0x53,0x68,0x61,0x64,0x6f,0x77,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x53,0x74,0x79,0x6c,0x65,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x22,0x32,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x74,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x3a,0x22,0x32,0x70,0x78,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x73,0x6f,0x6c,0x69,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x3a,0x7b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x61,0x73,0x68,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x3a,0x7b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x74,0x74,0x65,0x64,0x22,0x7d,0x2c,0x22,0x2e,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x64,0x6f,0x75,0x62,0x6c,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x57,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x5b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x5d,0x7d,0x29,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x4c,0x28,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x5b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x2c,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x2c,0x22,0x70,0x65,0x72,0x63,0x65,0x6e,0x74,0x61,0x67,0x65,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x2c,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x6f,0x75,0x74,0x6c,0x69,0x6e,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x72,0x69,0x6e,0x67,0x57,0x69,0x64,0x74,0x68,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x65,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x74,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x69,0x2c,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x6e,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x77,0x65,0x28,0x6e,0x28,0x29,0x2c,0x22,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x2c,0x22,0x30,0x2e,0x35,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x3f,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3f,0x5a,0x65,0x28,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x3f,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x2c,0x73,0x2c,0x60,0x72,0x67,0x62,0x28,0x31,0x34,0x37,0x20,0x31,0x39,0x37,0x20,0x32,0x35,0x33,0x20,0x2f,0x20,0x24,0x7b,0x73,0x7d,0x29,0x60,0x29,0x3a,0x60,0x72,0x67,0x62,0x28,0x31,0x34,0x37,0x20,0x31,0x39,0x37,0x20,0x32,0x35,0x33,0x20,0x2f,0x20,0x24,0x7b,0x73,0x7d,0x29,0x60,0x7d,0x29,0x28,0x29,0x3b,0x65,0x28,0x22,0x72,0x69,0x6e,0x67,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x73,0x65,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x57,0x69,0x64,0x74,0x68,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x2c,0x22,0x30,0x70,0x78,0x22,0x29,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x2c,0x22,0x23,0x66,0x66,0x66,0x22,0x29,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x61,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x65,0x64,0x22,0x3a,0x22,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x22,0x7d,0x29,0x2c,0x72,0x28,0x7b,0x72,0x69,0x6e,0x67,0x3a,0x73,0x3d,0x3e,0x28,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x72,0x69,0x6e,0x67,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x73,0x65,0x74,0x29,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x60,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x73,0x65,0x74,0x29,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x63,0x61,0x6c,0x63,0x28,0x24,0x7b,0x73,0x7d,0x20,0x2b,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x29,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x60,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x5b,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x29,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x2c,0x20,0x30,0x20,0x30,0x20,0x23,0x30,0x30,0x30,0x30,0x29,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x69,0x28,0x22,0x72,0x69,0x6e,0x67,0x57,0x69,0x64,0x74,0x68,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x7d,0x29,0x2c,0x74,0x28,0x7b,0x22,0x2e,0x72,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x73,0x65,0x74,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x72,0x69,0x6e,0x67,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x73,0x65,0x74,0x22,0x3a,0x22,0x69,0x6e,0x73,0x65,0x74,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x72,0x69,0x6e,0x67,0x3a,0x69,0x3d,0x3e,0x74,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x3f,0x41,0x65,0x28,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x69,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x3a,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x7d,0x29,0x3a,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x69,0x29,0x7d,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x45,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x78,0x65,0x28,0x65,0x28,0x22,0x72,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5b,0x69,0x5d,0x29,0x3d,0x3e,0x69,0x21,0x3d,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x72,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x65,0x7d,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4c,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x66,0x69,0x6c,0x74,0x65,0x72,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x21,0x77,0x65,0x28,0x65,0x28,0x29,0x2c,0x22,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x52,0x69,0x6e,0x67,0x43,0x6f,0x6c,0x6f,0x72,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x7d,0x29,0x28,0x72,0x29,0x7d,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x57,0x69,0x64,0x74,0x68,0x3a,0x4c,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x57,0x69,0x64,0x74,0x68,0x22,0x2c,0x5b,0x5b,0x22,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x7d,0x29,0x2c,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x72,0x69,0x6e,0x67,0x2d,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x58,0x28,0x74,0x29,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x78,0x65,0x28,0x65,0x28,0x22,0x72,0x69,0x6e,0x67,0x4f,0x66,0x66,0x73,0x65,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x3a,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x2c,0x22,0x61,0x6e,0x79,0x22,0x5d,0x7d,0x29,0x7d,0x2c,0x62,0x6c,0x75,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x62,0x6c,0x75,0x72,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6c,0x75,0x72,0x22,0x3a,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x22,0x3f,0x22,0x20,0x22,0x3a,0x60,0x62,0x6c,0x75,0x72,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x6c,0x75,0x72,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x60,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x3a,0x60,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x64,0x72,0x6f,0x70,0x53,0x68,0x61,0x64,0x6f,0x77,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x64,0x72,0x6f,0x70,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x72,0x6f,0x70,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x29,0x3f,0x74,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x60,0x64,0x72,0x6f,0x70,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x28,0x24,0x7b,0x69,0x7d,0x29,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x3a,0x60,0x64,0x72,0x6f,0x70,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x64,0x72,0x6f,0x70,0x53,0x68,0x61,0x64,0x6f,0x77,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x3a,0x60,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x68,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x60,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x68,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x22,0x29,0x2c,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x2c,0x69,0x6e,0x76,0x65,0x72,0x74,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x69,0x6e,0x76,0x65,0x72,0x74,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x3a,0x60,0x69,0x6e,0x76,0x65,0x72,0x74,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x3a,0x60,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x73,0x65,0x70,0x69,0x61,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x73,0x65,0x70,0x69,0x61,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x65,0x70,0x69,0x61,0x22,0x3a,0x60,0x73,0x65,0x70,0x69,0x61,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x73,0x65,0x70,0x69,0x61,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x6c,0x75,0x72,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x73,0x65,0x70,0x69,0x61,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x64,0x72,0x6f,0x70,0x2d,0x73,0x68,0x61,0x64,0x6f,0x77,0x22,0x3a,0x22,0x20,0x22,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x6e,0x74,0x7d,0x2c,0x22,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x66,0x69,0x6c,0x74,0x65,0x72,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x6c,0x75,0x72,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x6c,0x75,0x72,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x6c,0x75,0x72,0x22,0x3a,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x22,0x3f,0x22,0x20,0x22,0x3a,0x60,0x62,0x6c,0x75,0x72,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x6c,0x75,0x72,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x60,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x42,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x3a,0x60,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x47,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x3a,0x60,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x47,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x48,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x60,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x48,0x75,0x65,0x52,0x6f,0x74,0x61,0x74,0x65,0x22,0x29,0x2c,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x49,0x6e,0x76,0x65,0x72,0x74,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x3a,0x60,0x69,0x6e,0x76,0x65,0x72,0x74,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x49,0x6e,0x76,0x65,0x72,0x74,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x60,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x4f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x3a,0x60,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x65,0x70,0x69,0x61,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x65,0x70,0x69,0x61,0x22,0x3a,0x74,0x3d,0x3e,0x28,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x65,0x70,0x69,0x61,0x22,0x3a,0x60,0x73,0x65,0x70,0x69,0x61,0x28,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x53,0x65,0x70,0x69,0x61,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x46,0x69,0x6c,0x74,0x65,0x72,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x6c,0x75,0x72,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x62,0x72,0x69,0x67,0x68,0x74,0x6e,0x65,0x73,0x73,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x67,0x72,0x61,0x79,0x73,0x63,0x61,0x6c,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x68,0x75,0x65,0x2d,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x69,0x6e,0x76,0x65,0x72,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x73,0x65,0x70,0x69,0x61,0x22,0x3a,0x22,0x20,0x22,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x67,0x65,0x7d,0x2c,0x22,0x2e,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x2c,0x69,0x3d,0x65,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x3b,0x72,0x28,0x7b,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x6e,0x3d,0x3e,0x28,0x7b,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x3a,0x6e,0x2c,0x2e,0x2e,0x2e,0x6e,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3f,0x7b,0x7d,0x3a,0x7b,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x74,0x69,0x6d,0x69,0x6e,0x67,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x74,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x69,0x7d,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x65,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x7d,0x29,0x7d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x3a,0x4c,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x22,0x2c,0x5b,0x5b,0x22,0x64,0x65,0x6c,0x61,0x79,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x4c,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x66,0x69,0x6c,0x74,0x65,0x72,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x4c,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x5b,0x5b,0x22,0x65,0x61,0x73,0x65,0x22,0x2c,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x5d,0x5d,0x2c,0x7b,0x66,0x69,0x6c,0x74,0x65,0x72,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x21,0x30,0x7d,0x29,0x2c,0x77,0x69,0x6c,0x6c,0x43,0x68,0x61,0x6e,0x67,0x65,0x3a,0x4c,0x28,0x22,0x77,0x69,0x6c,0x6c,0x43,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x5b,0x5b,0x22,0x77,0x69,0x6c,0x6c,0x2d,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x5b,0x22,0x77,0x69,0x6c,0x6c,0x2d,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x5d,0x5d,0x5d,0x29,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x28,0x7b,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x69,0x7a,0x65,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x6c,0x61,0x79,0x6f,0x75,0x74,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x70,0x61,0x69,0x6e,0x74,0x29,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x29,0x22,0x3b,0x72,0x28,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x2c,0x7b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x70,0x61,0x69,0x6e,0x74,0x22,0x3a,0x22,0x20,0x22,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x20,0x22,0x7d,0x29,0x2c,0x65,0x28,0x7b,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3a,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x22,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x73,0x69,0x7a,0x65,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x3a,0x22,0x6c,0x61,0x79,0x6f,0x75,0x74,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x70,0x61,0x69,0x6e,0x74,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x70,0x61,0x69,0x6e,0x74,0x22,0x3a,0x22,0x70,0x61,0x69,0x6e,0x74,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x74,0x7d,0x2c,0x22,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x7b,0x22,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x3a,0x7b,0x7d,0x2c,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x3a,0x74,0x7d,0x7d,0x29,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x4c,0x28,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x5b,0x5b,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x5b,0x22,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x5b,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x76,0x61,0x72,0x28,0x2d,0x2d,0x74,0x77,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x22,0x5d,0x5d,0x5d,0x5d,0x29,0x2c,0x66,0x6f,0x72,0x63,0x65,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x41,0x64,0x6a,0x75,0x73,0x74,0x3a,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x7d,0x29,0x3d,0x3e,0x7b,0x72,0x28,0x7b,0x22,0x2e,0x66,0x6f,0x72,0x63,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3a,0x7b,0x22,0x66,0x6f,0x72,0x63,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x3a,0x22,0x61,0x75,0x74,0x6f,0x22,0x7d,0x2c,0x22,0x2e,0x66,0x6f,0x72,0x63,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x66,0x6f,0x72,0x63,0x65,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x3a,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7d,0x7d,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x5f,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x31,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x22,0x2a,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x3a,0x22,0x29,0x5b,0x30,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x22,0x29,0x3f,0x21,0x31,0x3a,0x21,0x21,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x22,0x29,0x7d,0x76,0x61,0x72,0x20,0x4a,0x65,0x2c,0x79,0x68,0x2c,0x62,0x68,0x2c,0x5a,0x6e,0x2c,0x4c,0x6f,0x2c,0x67,0x74,0x2c,0x45,0x69,0x2c,0x49,0x74,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4a,0x65,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6d,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x7b,0x4e,0x4f,0x44,0x45,0x5f,0x45,0x4e,0x56,0x3a,0x22,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x44,0x45,0x42,0x55,0x47,0x3a,0x70,0x5f,0x28,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x44,0x45,0x42,0x55,0x47,0x29,0x7d,0x3a,0x7b,0x4e,0x4f,0x44,0x45,0x5f,0x45,0x4e,0x56,0x3a,0x22,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x44,0x45,0x42,0x55,0x47,0x3a,0x21,0x31,0x7d,0x2c,0x79,0x68,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x62,0x68,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x5a,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x4c,0x6f,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x67,0x74,0x3d,0x6e,0x65,0x77,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x22,0x2a,0x22,0x29,0x2c,0x45,0x69,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x5f,0x4e,0x4f,0x4e,0x45,0x5f,0x5f,0x22,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x72,0x5b,0x69,0x5d,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x3a,0x22,0x26,0x26,0x21,0x74,0x26,0x26,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x64,0x5f,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x26,0x26,0x72,0x5b,0x69,0x2d,0x31,0x5d,0x21,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x26,0x26,0x28,0x74,0x3d,0x21,0x74,0x29,0x2c,0x21,0x74,0x26,0x26,0x72,0x5b,0x69,0x2d,0x31,0x5d,0x21,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x29,0x7b,0x69,0x66,0x28,0x77,0x68,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x29,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x76,0x68,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x76,0x68,0x2e,0x67,0x65,0x74,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x3d,0x30,0x7c,0x7c,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x21,0x3d,0x3d,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x28,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7d,0x76,0x61,0x72,0x20,0x77,0x68,0x2c,0x76,0x68,0x2c,0x64,0x5f,0x2c,0x4d,0x6f,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x77,0x68,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x5b,0x5b,0x22,0x7b,0x22,0x2c,0x22,0x7d,0x22,0x5d,0x2c,0x5b,0x22,0x5b,0x22,0x2c,0x22,0x5d,0x22,0x5d,0x2c,0x5b,0x22,0x28,0x22,0x2c,0x22,0x29,0x22,0x5d,0x5d,0x29,0x2c,0x76,0x68,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x77,0x68,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x72,0x2c,0x65,0x5d,0x29,0x3d,0x3e,0x5b,0x65,0x2c,0x72,0x5d,0x29,0x29,0x2c,0x64,0x5f,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x27,0x22,0x27,0x2c,0x22,0x27,0x22,0x2c,0x22,0x60,0x22,0x5d,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x65,0x5d,0x3d,0x78,0x68,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x5b,0x74,0x2c,0x69,0x5d,0x29,0x3d,0x3e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x69,0x29,0x29,0x2c,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x65,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x2c,0x74,0x5d,0x29,0x3d,0x3e,0x74,0x29,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x78,0x68,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x29,0x65,0x3d,0x65,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5b,0x2c,0x6e,0x5d,0x29,0x3d,0x3e,0x42,0x6f,0x28,0x6e,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x29,0x29,0x2c,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x29,0x7b,0x68,0x5f,0x28,0x69,0x29,0x3f,0x28,0x74,0x3d,0x69,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x72,0x2c,0x69,0x2c,0x6e,0x75,0x6c,0x6c,0x5d,0x29,0x29,0x3a,0x74,0x26,0x26,0x6d,0x5f,0x28,0x69,0x2c,0x74,0x29,0x3f,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x72,0x2c,0x69,0x2c,0x74,0x5d,0x29,0x3a,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3f,0x3f,0x5b,0x5d,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x61,0x2c,0x73,0x5d,0x3d,0x78,0x68,0x28,0x6e,0x29,0x3b,0x74,0x3d,0x73,0x7c,0x7c,0x74,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x61,0x29,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x65,0x2c,0x74,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6b,0x68,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x7c,0x7c,0x4e,0x6f,0x5b,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x5f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x68,0x28,0x72,0x29,0x26,0x26,0x42,0x6f,0x28,0x72,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x7c,0x7c,0x6b,0x68,0x28,0x72,0x29,0x3f,0x21,0x31,0x3a,0x42,0x6f,0x28,0x65,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x6f,0x5b,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x3f,0x3f,0x4e,0x6f,0x2e,0x5f,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x5f,0x7d,0x76,0x61,0x72,0x20,0x4e,0x6f,0x2c,0x65,0x73,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4e,0x6f,0x3d,0x7b,0x22,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x63,0x75,0x65,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x63,0x75,0x65,0x2d,0x72,0x65,0x67,0x69,0x6f,0x6e,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x67,0x72,0x61,0x6d,0x6d,0x61,0x72,0x2d,0x65,0x72,0x72,0x6f,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x6d,0x61,0x72,0x6b,0x65,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x70,0x61,0x72,0x74,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x73,0x65,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x73,0x6c,0x6f,0x74,0x74,0x65,0x64,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x73,0x70,0x65,0x6c,0x6c,0x69,0x6e,0x67,0x2d,0x65,0x72,0x72,0x6f,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x74,0x61,0x72,0x67,0x65,0x74,0x2d,0x74,0x65,0x78,0x74,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x64,0x65,0x65,0x70,0x22,0x3a,0x5b,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x76,0x2d,0x64,0x65,0x65,0x70,0x22,0x3a,0x5b,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x3a,0x6e,0x67,0x2d,0x64,0x65,0x65,0x70,0x22,0x3a,0x5b,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x61,0x66,0x74,0x65,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x6a,0x75,0x6d,0x70,0x61,0x62,0x6c,0x65,0x22,0x5d,0x2c,0x22,0x3a,0x77,0x68,0x65,0x72,0x65,0x22,0x3a,0x5b,0x5d,0x2c,0x22,0x3a,0x69,0x73,0x22,0x3a,0x5b,0x5d,0x2c,0x22,0x3a,0x68,0x61,0x73,0x22,0x3a,0x5b,0x5d,0x2c,0x5f,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x5f,0x5f,0x3a,0x5b,0x22,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,0x22,0x2c,0x22,0x61,0x63,0x74,0x69,0x6f,0x6e,0x61,0x62,0x6c,0x65,0x22,0x5d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x72,0x28,0x72,0x2c,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x65,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x74,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x3f,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3f,0x3f,0x22,0x22,0x2c,0x6e,0x3d,0x72,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x28,0x30,0x2c,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x73,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x73,0x2c,0x61,0x73,0x74,0x3a,0x73,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3f,0x75,0x72,0x28,0x69,0x2c,0x6f,0x29,0x3a,0x6f,0x7d,0x7d,0x29,0x2c,0x61,0x3d,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x54,0x65,0x28,0x74,0x29,0x7d,0x29,0x5d,0x7d,0x29,0x5d,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x7b,0x61,0x73,0x74,0x3a,0x73,0x7d,0x6f,0x66,0x20,0x6e,0x29,0x5b,0x61,0x2c,0x73,0x5d,0x3d,0x79,0x5f,0x28,0x61,0x2c,0x73,0x29,0x2c,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x28,0x6f,0x3d,0x3e,0x6f,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x2e,0x2e,0x2e,0x61,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x29,0x2c,0x61,0x3d,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x68,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x72,0x2e,0x70,0x72,0x65,0x76,0x28,0x29,0x26,0x26,0x72,0x2e,0x70,0x72,0x65,0x76,0x28,0x29,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x3b,0x29,0x72,0x3d,0x72,0x2e,0x70,0x72,0x65,0x76,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x72,0x26,0x26,0x72,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x3b,0x29,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x29,0x2c,0x72,0x3d,0x72,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x5f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x61,0x67,0x22,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x3f,0x2d,0x31,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x61,0x67,0x22,0x3f,0x31,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x26,0x26,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x3f,0x2d,0x31,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x26,0x26,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x3f,0x31,0x3a,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x74,0x29,0x29,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x21,0x31,0x3b,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x26,0x26,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x21,0x30,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x74,0x7c,0x7c,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x73,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x74,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x69,0x2c,0x62,0x61,0x73,0x65,0x3a,0x6e,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x3f,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3f,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3f,0x3f,0x22,0x3a,0x22,0x3b,0x6e,0x3d,0x6e,0x3f,0x3f,0x76,0x65,0x28,0x69,0x2c,0x61,0x29,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x28,0x30,0x2c,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x66,0x2e,0x72,0x61,0x77,0x73,0x26,0x26,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x29,0x26,0x26,0x28,0x66,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x54,0x65,0x28,0x28,0x30,0x2c,0x53,0x68,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x66,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x29,0x7d,0x29,0x2c,0x73,0x2e,0x65,0x61,0x63,0x68,0x28,0x66,0x3d,0x3e,0x6a,0x6f,0x28,0x66,0x2c,0x6e,0x29,0x29,0x2c,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x3f,0x64,0x72,0x28,0x65,0x2c,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x74,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x69,0x7d,0x29,0x3a,0x65,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2f,0x2a,0x5f,0x5f,0x73,0x69,0x6d,0x70,0x6c,0x65,0x5f,0x5f,0x2a,0x2f,0x22,0x7d,0x29,0x2c,0x63,0x3d,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2f,0x2a,0x5f,0x5f,0x73,0x69,0x6d,0x70,0x6c,0x65,0x5f,0x5f,0x2a,0x2f,0x22,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x70,0x3d,0x6f,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x69,0x66,0x28,0x64,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x29,0x7b,0x66,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x2e,0x2e,0x2e,0x70,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x68,0x3d,0x41,0x68,0x28,0x66,0x29,0x3b,0x64,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x68,0x5b,0x30,0x5d,0x2c,0x6c,0x29,0x2c,0x64,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x28,0x68,0x5b,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x63,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x76,0x20,0x6f,0x66,0x20,0x70,0x29,0x64,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x68,0x5b,0x30,0x5d,0x2c,0x76,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x29,0x3b,0x66,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x2c,0x68,0x3d,0x41,0x68,0x28,0x6c,0x29,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x64,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x6c,0x29,0x3b,0x64,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x62,0x2c,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x2e,0x2e,0x2e,0x67,0x5f,0x28,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x68,0x7d,0x29,0x29,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x2c,0x63,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x29,0x2c,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x50,0x73,0x65,0x75,0x64,0x6f,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x46,0x6f,0x26,0x26,0x66,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x66,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x7d,0x29,0x2c,0x73,0x2e,0x65,0x61,0x63,0x68,0x28,0x66,0x3d,0x3e,0x70,0x72,0x28,0x66,0x29,0x29,0x2c,0x73,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x79,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x50,0x73,0x65,0x75,0x64,0x6f,0x73,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x46,0x6f,0x26,0x26,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x70,0x73,0x65,0x75,0x64,0x6f,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x29,0x7d,0x29,0x2c,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x50,0x73,0x65,0x75,0x64,0x6f,0x73,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x46,0x6f,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x61,0x3d,0x74,0x2e,0x66,0x69,0x6e,0x64,0x28,0x63,0x3d,0x3e,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x6e,0x29,0x3b,0x69,0x66,0x28,0x21,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x5b,0x5d,0x2c,0x6f,0x3d,0x69,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6f,0x26,0x26,0x6f,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x3b,0x29,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x2c,0x6f,0x3d,0x6f,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x6f,0x3b,0x61,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x66,0x74,0x65,0x72,0x28,0x61,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x2c,0x73,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x73,0x2e,0x6d,0x61,0x70,0x28,0x63,0x3d,0x3e,0x63,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x29,0x7d,0x29,0x29,0x2c,0x69,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x2c,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x63,0x3d,0x3e,0x63,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x2c,0x6c,0x26,0x26,0x6c,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x26,0x26,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x29,0x2c,0x5b,0x72,0x2c,0x65,0x5d,0x7d,0x76,0x61,0x72,0x20,0x73,0x74,0x2c,0x53,0x68,0x2c,0x46,0x6f,0x2c,0x7a,0x6f,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x73,0x74,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x2c,0x53,0x68,0x3d,0x70,0x65,0x28,0x52,0x6e,0x28,0x29,0x29,0x3b,0x66,0x72,0x28,0x29,0x3b,0x57,0x6e,0x28,0x29,0x3b,0x65,0x73,0x28,0x29,0x3b,0x7a,0x74,0x28,0x29,0x3b,0x46,0x6f,0x3d,0x22,0x3a,0x6d,0x65,0x72,0x67,0x65,0x22,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x73,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x28,0x30,0x2c,0x55,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x65,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x29,0x26,0x26,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x55,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x3a,0x69,0x73,0x22,0x2c,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x69,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x5d,0x29,0x2c,0x70,0x72,0x28,0x69,0x29,0x7d,0x29,0x2c,0x60,0x24,0x7b,0x65,0x7d,0x20,0x24,0x7b,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x60,0x7d,0x76,0x61,0x72,0x20,0x55,0x6f,0x2c,0x56,0x6f,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x55,0x6f,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x3b,0x65,0x73,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x5f,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x77,0x5f,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x31,0x2f,0x30,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x3e,0x3d,0x30,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x3d,0x21,0x31,0x3b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x31,0x2f,0x30,0x26,0x26,0x72,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5d,0x22,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5b,0x22,0x29,0x3b,0x72,0x5b,0x73,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x3f,0x74,0x3d,0x73,0x2d,0x31,0x3a,0x72,0x5b,0x73,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x3f,0x28,0x74,0x3d,0x73,0x2d,0x31,0x2c,0x69,0x3d,0x21,0x30,0x29,0x3a,0x74,0x3d,0x2d,0x31,0x7d,0x65,0x6c,0x73,0x65,0x20,0x65,0x3d,0x3d,0x3d,0x31,0x2f,0x30,0x26,0x26,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2f,0x22,0x29,0x3f,0x28,0x74,0x3d,0x72,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2f,0x22,0x29,0x2c,0x69,0x3d,0x21,0x30,0x29,0x3a,0x74,0x3d,0x72,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2d,0x22,0x2c,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x3c,0x30,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x74,0x29,0x2c,0x61,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x3f,0x74,0x3a,0x74,0x2b,0x31,0x29,0x3b,0x65,0x3d,0x74,0x2d,0x31,0x2c,0x21,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x22,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x29,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x6e,0x2c,0x61,0x5d,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x69,0x5d,0x3d,0x74,0x3b,0x69,0x66,0x28,0x69,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x74,0x5b,0x31,0x5d,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x2c,0x61,0x3d,0x74,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3b,0x6e,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x73,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x61,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x22,0x29,0x3b,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x75,0x72,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x2c,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x6f,0x29,0x7d,0x29,0x2c,0x74,0x5b,0x31,0x5d,0x3d,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x78,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x6e,0x2c,0x61,0x5d,0x6f,0x66,0x20,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x61,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x3b,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x6f,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x28,0x6f,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x28,0x30,0x2c,0x69,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x6f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3b,0x6c,0x2e,0x65,0x61,0x63,0x68,0x28,0x63,0x3d,0x3e,0x6a,0x6f,0x28,0x63,0x2c,0x65,0x29,0x29,0x2c,0x57,0x66,0x28,0x6c,0x2c,0x63,0x3d,0x3e,0x63,0x3d,0x3d,0x3d,0x65,0x3f,0x60,0x21,0x24,0x7b,0x63,0x7d,0x60,0x3a,0x63,0x29,0x2c,0x6f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x6f,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x63,0x3d,0x3e,0x63,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x21,0x30,0x29,0x7d,0x29,0x2c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x2e,0x2e,0x2e,0x6e,0x2c,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x30,0x7d,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x5d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6b,0x5f,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x45,0x69,0x7d,0x3b,0x7b,0x6c,0x65,0x74,0x5b,0x6e,0x2c,0x2e,0x2e,0x2e,0x61,0x5d,0x3d,0x76,0x65,0x28,0x72,0x2c,0x22,0x2f,0x22,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x28,0x6e,0x3d,0x6e,0x2b,0x22,0x2f,0x22,0x2b,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x31,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2f,0x22,0x29,0x2c,0x61,0x3d,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x2d,0x31,0x29,0x29,0x2c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x21,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x26,0x26,0x28,0x72,0x3d,0x6e,0x2c,0x69,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3d,0x61,0x5b,0x30,0x5d,0x2c,0x21,0x77,0x65,0x28,0x74,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x69,0x66,0x28,0x72,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5d,0x22,0x29,0x26,0x26,0x21,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5b,0x22,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x2f,0x28,0x2e,0x29,0x28,0x2d,0x3f,0x29,0x5c,0x5b,0x28,0x2e,0x2a,0x29,0x5c,0x5d,0x2f,0x67,0x2e,0x65,0x78,0x65,0x63,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x5d,0x3d,0x6e,0x3b,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x40,0x22,0x26,0x26,0x73,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x61,0x21,0x3d,0x3d,0x22,0x40,0x22,0x26,0x26,0x73,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x72,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x60,0x24,0x7b,0x73,0x7d,0x5b,0x24,0x7b,0x6f,0x7d,0x5d,0x60,0x2c,0x22,0x22,0x29,0x2c,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6f,0x7d,0x7d,0x69,0x66,0x28,0x51,0x6f,0x28,0x72,0x29,0x26,0x26,0x21,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x72,0x65,0x63,0x6f,0x72,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x72,0x29,0x2c,0x61,0x3d,0x4b,0x28,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x29,0x2c,0x73,0x3d,0x76,0x65,0x28,0x61,0x2c,0x22,0x2c,0x22,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x21,0x73,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x6f,0x73,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6c,0x2c,0x63,0x29,0x3d,0x3e,0x5b,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x61,0x70,0x70,0x6c,0x79,0x50,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x6e,0x2c,0x63,0x29,0x2c,0x4f,0x69,0x28,0x6c,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x5d,0x29,0x3b,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x6f,0x29,0x7d,0x69,0x66,0x28,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x51,0x6f,0x28,0x72,0x29,0x2c,0x61,0x3d,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x3f,0x2e,0x5b,0x50,0x74,0x5d,0x3f,0x3f,0x7b,0x7d,0x2c,0x73,0x3d,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x2c,0x6f,0x3d,0x5b,0x5d,0x2c,0x6c,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x21,0x28,0x6e,0x7c,0x7c,0x61,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x29,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x63,0x2c,0x66,0x5d,0x6f,0x66,0x20,0x65,0x29,0x7b,0x69,0x66,0x28,0x63,0x2e,0x6c,0x61,0x79,0x65,0x72,0x3d,0x3d,0x3d,0x22,0x75,0x73,0x65,0x72,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x66,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x70,0x2c,0x68,0x2c,0x62,0x5d,0x6f,0x66,0x20,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x76,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x65,0x65,0x64,0x65,0x64,0x42,0x61,0x63,0x6b,0x75,0x70,0x7c,0x7c,0x28,0x76,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x65,0x65,0x64,0x65,0x64,0x42,0x61,0x63,0x6b,0x75,0x70,0x3d,0x21,0x30,0x2c,0x76,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x4f,0x3d,0x3e,0x4f,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x4f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x29,0x7d,0x2c,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x4f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x28,0x29,0x2c,0x76,0x2e,0x65,0x61,0x63,0x68,0x28,0x42,0x3d,0x3e,0x7b,0x42,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x28,0x42,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3d,0x42,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x4e,0x3d,0x3e,0x4f,0x28,0x7b,0x67,0x65,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x6f,0x28,0x4e,0x29,0x7d,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x4e,0x7d,0x29,0x29,0x29,0x7d,0x29,0x2c,0x76,0x7d,0x2c,0x76,0x3d,0x28,0x62,0x3f,0x3f,0x64,0x29,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x2c,0x79,0x3d,0x5b,0x5d,0x2c,0x53,0x3d,0x68,0x28,0x7b,0x67,0x65,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x28,0x29,0x2c,0x76,0x7d,0x2c,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3a,0x74,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x6b,0x2c,0x77,0x72,0x61,0x70,0x28,0x4f,0x29,0x7b,0x6c,0x65,0x74,0x20,0x42,0x3d,0x76,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x76,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x6c,0x6c,0x28,0x29,0x2c,0x4f,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x42,0x29,0x2c,0x76,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x4f,0x29,0x7d,0x2c,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x4f,0x29,0x7b,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x4f,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x6c,0x7d,0x29,0x7d,0x2c,0x61,0x72,0x67,0x73,0x3a,0x69,0x7d,0x29,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x53,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x4f,0x2c,0x42,0x5d,0x6f,0x66,0x20,0x53,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x61,0x70,0x70,0x6c,0x79,0x50,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x2c,0x4f,0x29,0x2c,0x42,0x2c,0x76,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x53,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x53,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x6c,0x7d,0x29,0x2c,0x53,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x76,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x65,0x65,0x64,0x65,0x64,0x42,0x61,0x63,0x6b,0x75,0x70,0x26,0x26,0x28,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x76,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6e,0x65,0x65,0x64,0x65,0x64,0x42,0x61,0x63,0x6b,0x75,0x70,0x2c,0x76,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x4f,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x42,0x3d,0x4f,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3b,0x69,0x66,0x28,0x21,0x42,0x7c,0x7c,0x28,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x4f,0x2e,0x72,0x61,0x77,0x73,0x2e,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x42,0x3d,0x3d,0x3d,0x4f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x4e,0x3d,0x4f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x54,0x3d,0x28,0x30,0x2c,0x69,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x46,0x3d,0x3e,0x7b,0x46,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x59,0x3d,0x3e,0x7b,0x59,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x60,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x74,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x7d,0x24,0x7b,0x59,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x7d,0x29,0x7d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x79,0x6e,0x63,0x28,0x42,0x29,0x3b,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x4e,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x54,0x2c,0x22,0x26,0x22,0x29,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x6c,0x7d,0x29,0x2c,0x4f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x42,0x7d,0x29,0x29,0x2c,0x76,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3d,0x7b,0x2e,0x2e,0x2e,0x76,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2c,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x3a,0x63,0x2e,0x6c,0x61,0x79,0x65,0x72,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x45,0x3d,0x5b,0x7b,0x2e,0x2e,0x2e,0x63,0x2c,0x73,0x6f,0x72,0x74,0x3a,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x61,0x70,0x70,0x6c,0x79,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x63,0x2e,0x73,0x6f,0x72,0x74,0x2c,0x70,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x69,0x2c,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x29,0x29,0x2c,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x65,0x64,0x46,0x6f,0x72,0x6d,0x61,0x74,0x73,0x3a,0x28,0x63,0x2e,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x65,0x64,0x46,0x6f,0x72,0x6d,0x61,0x74,0x73,0x3f,0x3f,0x5b,0x5d,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x79,0x29,0x7d,0x2c,0x76,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x5d,0x3b,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x45,0x29,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x6f,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x6b,0x65,0x28,0x72,0x29,0x26,0x26,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x5b,0x5b,0x72,0x5d,0x2c,0x74,0x5d,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x57,0x6f,0x28,0x72,0x5b,0x30,0x5d,0x2c,0x65,0x2c,0x72,0x5b,0x31,0x5d,0x29,0x3a,0x28,0x65,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7c,0x7c,0x65,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x6c,0x72,0x28,0x72,0x29,0x29,0x2c,0x5b,0x65,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x2c,0x74,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x5f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x5f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x5f,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x21,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x2f,0x2f,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x74,0x72,0x79,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x55,0x52,0x4c,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x73,0x63,0x68,0x65,0x6d,0x65,0x21,0x3d,0x3d,0x22,0x22,0x26,0x26,0x65,0x2e,0x68,0x6f,0x73,0x74,0x21,0x3d,0x3d,0x22,0x22,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x68,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x21,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x74,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x5f,0x68,0x28,0x74,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x21,0x31,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x68,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x43,0x5f,0x28,0x60,0x24,0x7b,0x72,0x7d,0x3a,0x24,0x7b,0x65,0x7d,0x60,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x74,0x72,0x79,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x60,0x61,0x7b,0x24,0x7b,0x72,0x7d,0x3a,0x24,0x7b,0x65,0x7d,0x7d,0x60,0x29,0x2e,0x74,0x6f,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x29,0x2c,0x21,0x30,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x2c,0x74,0x2c,0x69,0x5d,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x5c,0x5b,0x28,0x5b,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x2d,0x5f,0x5d,0x2b,0x29,0x3a,0x28,0x5c,0x53,0x2b,0x29,0x5c,0x5d,0x24,0x2f,0x29,0x3f,0x3f,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x21,0x41,0x5f,0x28,0x74,0x29,0x7c,0x7c,0x21,0x63,0x72,0x28,0x69,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x4b,0x28,0x69,0x2c,0x7b,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x74,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x68,0x28,0x74,0x2c,0x6e,0x29,0x3f,0x5b,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x65,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x29,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x30,0x7d,0x7d,0x2c,0x28,0x29,0x3d,0x3e,0x28,0x7b,0x5b,0x44,0x6f,0x28,0x72,0x29,0x5d,0x3a,0x7b,0x5b,0x74,0x5d,0x3a,0x6e,0x7d,0x7d,0x29,0x5d,0x5d,0x3a,0x6e,0x75,0x6c,0x6c,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x45,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x2c,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x5d,0x29,0x2c,0x79,0x69,0x65,0x6c,0x64,0x2a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x28,0x6f,0x29,0x7b,0x6f,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x6f,0x2c,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x5d,0x29,0x7d,0x28,0x5f,0x5f,0x28,0x72,0x2c,0x65,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2c,0x69,0x3d,0x21,0x31,0x2c,0x6e,0x3d,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x2c,0x61,0x3d,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x3d,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x6e,0x29,0x7c,0x7c,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x60,0x2d,0x24,0x7b,0x6e,0x7d,0x60,0x29,0x3b,0x74,0x5b,0x61,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x26,0x26,0x73,0x26,0x26,0x28,0x69,0x3d,0x21,0x30,0x2c,0x74,0x3d,0x6e,0x2b,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x61,0x2b,0x31,0x29,0x29,0x2c,0x69,0x26,0x26,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x74,0x29,0x2c,0x22,0x2d,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x5d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x6f,0x2c,0x6c,0x5d,0x6f,0x66,0x20,0x77,0x5f,0x28,0x74,0x29,0x29,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x5b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x6f,0x29,0x2c,0x69,0x3f,0x60,0x2d,0x24,0x7b,0x6c,0x7d,0x60,0x3a,0x6c,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x67,0x74,0x3f,0x5b,0x67,0x74,0x5d,0x3a,0x76,0x65,0x28,0x72,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x54,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x29,0x74,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3d,0x7b,0x2e,0x2e,0x2e,0x74,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2c,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x65,0x2c,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3a,0x74,0x5b,0x30,0x5d,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3f,0x3f,0x21,0x31,0x7d,0x2c,0x79,0x69,0x65,0x6c,0x64,0x20,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x47,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2c,0x5b,0x69,0x2c,0x2e,0x2e,0x2e,0x6e,0x5d,0x3d,0x4f,0x5f,0x28,0x72,0x2c,0x74,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x2c,0x61,0x3d,0x21,0x31,0x3b,0x69,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x21,0x22,0x29,0x26,0x26,0x28,0x61,0x3d,0x21,0x30,0x2c,0x69,0x3d,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x45,0x5f,0x28,0x69,0x2c,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x5b,0x5d,0x2c,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x5b,0x63,0x2c,0x66,0x5d,0x3d,0x73,0x2c,0x64,0x3d,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x70,0x2c,0x68,0x5d,0x6f,0x66,0x20,0x63,0x29,0x7b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x68,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x76,0x20,0x6f,0x66,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x68,0x28,0x66,0x2c,0x7b,0x69,0x73,0x4f,0x6e,0x6c,0x79,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x64,0x7d,0x29,0x29,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x79,0x2c,0x77,0x5d,0x3d,0x57,0x6f,0x28,0x76,0x2c,0x65,0x2e,0x70,0x6f,0x73,0x74,0x43,0x73,0x73,0x4e,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6b,0x20,0x6f,0x66,0x20,0x79,0x29,0x62,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x2e,0x2e,0x2e,0x70,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x2e,0x2e,0x2e,0x70,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x2e,0x2e,0x2e,0x77,0x7d,0x7d,0x2c,0x6b,0x5d,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x3d,0x3d,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x7c,0x7c,0x66,0x3d,0x3d,0x3d,0x22,0x2d,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x68,0x2c,0x5b,0x79,0x2c,0x77,0x5d,0x3d,0x57,0x6f,0x28,0x76,0x2c,0x65,0x2e,0x70,0x6f,0x73,0x74,0x43,0x73,0x73,0x4e,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6b,0x20,0x6f,0x66,0x20,0x79,0x29,0x62,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x2e,0x2e,0x2e,0x70,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x2e,0x2e,0x2e,0x70,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x2e,0x2e,0x2e,0x77,0x7d,0x7d,0x2c,0x6b,0x5d,0x29,0x7d,0x69,0x66,0x28,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x5a,0x73,0x28,0x70,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x2e,0x74,0x79,0x70,0x65,0x73,0x3f,0x3f,0x5b,0x5d,0x2c,0x66,0x2c,0x70,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x3f,0x7b,0x7d,0x2c,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x79,0x2c,0x77,0x5d,0x29,0x3d,0x3e,0x77,0x29,0x3b,0x76,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x6c,0x2e,0x73,0x65,0x74,0x28,0x62,0x2c,0x76,0x29,0x2c,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x62,0x29,0x7d,0x7d,0x69,0x66,0x28,0x51,0x6f,0x28,0x66,0x29,0x29,0x7b,0x69,0x66,0x28,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x29,0x7b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x79,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x3f,0x79,0x5b,0x30,0x5d,0x3a,0x79,0x2e,0x66,0x69,0x6e,0x64,0x28,0x77,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6b,0x3d,0x6c,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x5b,0x7b,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x53,0x7d,0x2c,0x45,0x5d,0x29,0x3d,0x3e,0x43,0x68,0x28,0x45,0x29,0x3f,0x53,0x2e,0x74,0x79,0x70,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x4f,0x2c,0x70,0x72,0x65,0x66,0x65,0x72,0x4f,0x6e,0x43,0x6f,0x6e,0x66,0x6c,0x69,0x63,0x74,0x3a,0x42,0x7d,0x29,0x3d,0x3e,0x6b,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x4f,0x29,0x26,0x26,0x42,0x29,0x3a,0x21,0x31,0x29,0x7d,0x29,0x7d,0x2c,0x5b,0x70,0x2c,0x68,0x5d,0x3d,0x6f,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x79,0x2c,0x77,0x29,0x3d,0x3e,0x28,0x77,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x5b,0x7b,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x53,0x7d,0x5d,0x29,0x3d,0x3e,0x53,0x2e,0x74,0x79,0x70,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x45,0x7d,0x29,0x3d,0x3e,0x45,0x3d,0x3d,0x3d,0x22,0x61,0x6e,0x79,0x22,0x29,0x29,0x3f,0x79,0x5b,0x30,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x77,0x29,0x3a,0x79,0x5b,0x31,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x77,0x29,0x2c,0x79,0x29,0x2c,0x5b,0x5b,0x5d,0x2c,0x5b,0x5d,0x5d,0x29,0x2c,0x76,0x3d,0x62,0x28,0x68,0x29,0x3f,0x3f,0x62,0x28,0x70,0x29,0x3b,0x69,0x66,0x28,0x76,0x29,0x6f,0x3d,0x5b,0x76,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x6f,0x2e,0x6d,0x61,0x70,0x28,0x6b,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x6c,0x2e,0x67,0x65,0x74,0x28,0x6b,0x29,0x3f,0x3f,0x5b,0x5d,0x5d,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6b,0x20,0x6f,0x66,0x20,0x79,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x53,0x20,0x6f,0x66,0x20,0x6b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x45,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x4f,0x20,0x6f,0x66,0x20,0x79,0x29,0x6b,0x21,0x3d,0x3d,0x4f,0x26,0x26,0x4f,0x2e,0x68,0x61,0x73,0x28,0x53,0x29,0x26,0x26,0x28,0x4f,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x53,0x29,0x2c,0x45,0x3d,0x21,0x30,0x29,0x3b,0x45,0x26,0x26,0x6b,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x53,0x29,0x7d,0x6c,0x65,0x74,0x20,0x77,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x6b,0x2c,0x53,0x5d,0x6f,0x66,0x20,0x79,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x45,0x20,0x6f,0x66,0x20,0x53,0x29,0x7b,0x6c,0x65,0x74,0x20,0x4f,0x3d,0x6f,0x5b,0x6b,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x2c,0x42,0x5d,0x29,0x3d,0x3e,0x42,0x29,0x2e,0x66,0x6c,0x61,0x74,0x28,0x29,0x2e,0x6d,0x61,0x70,0x28,0x42,0x3d,0x3e,0x42,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x2e,0x6d,0x61,0x70,0x28,0x4e,0x3d,0x3e,0x4e,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x4e,0x3d,0x3e,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x24,0x7b,0x4e,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x0a,0x60,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x0a,0x0a,0x60,0x29,0x3b,0x77,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x20,0x55,0x73,0x65,0x20,0x5c,0x60,0x24,0x7b,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x5b,0x22,0x2c,0x60,0x5b,0x24,0x7b,0x45,0x7d,0x3a,0x60,0x29,0x7d,0x5c,0x60,0x20,0x66,0x6f,0x72,0x20,0x5c,0x60,0x24,0x7b,0x4f,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x7d,0x5c,0x60,0x60,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x5b,0x60,0x54,0x68,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x5c,0x60,0x24,0x7b,0x72,0x7d,0x5c,0x60,0x20,0x69,0x73,0x20,0x61,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x20,0x61,0x6e,0x64,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x2e,0x60,0x2c,0x2e,0x2e,0x2e,0x77,0x2c,0x60,0x49,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x61,0x6e,0x64,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x69,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x5c,0x60,0x24,0x7b,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x5b,0x22,0x2c,0x22,0x26,0x6c,0x73,0x71,0x62,0x3b,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x5d,0x22,0x2c,0x22,0x26,0x72,0x73,0x71,0x62,0x3b,0x22,0x29,0x7d,0x5c,0x60,0x20,0x74,0x6f,0x20,0x73,0x69,0x6c,0x65,0x6e,0x63,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x60,0x5d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x7d,0x6f,0x3d,0x6f,0x2e,0x6d,0x61,0x70,0x28,0x70,0x3d,0x3e,0x70,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x68,0x3d,0x3e,0x43,0x68,0x28,0x68,0x5b,0x31,0x5d,0x29,0x29,0x29,0x7d,0x6f,0x3d,0x6f,0x2e,0x66,0x6c,0x61,0x74,0x28,0x29,0x2c,0x6f,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x54,0x5f,0x28,0x6f,0x2c,0x69,0x29,0x29,0x2c,0x6f,0x3d,0x76,0x5f,0x28,0x6f,0x2c,0x65,0x29,0x2c,0x61,0x26,0x26,0x28,0x6f,0x3d,0x78,0x5f,0x28,0x6f,0x2c,0x69,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x20,0x6f,0x66,0x20,0x6e,0x29,0x6f,0x3d,0x6b,0x5f,0x28,0x70,0x2c,0x6f,0x2c,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x20,0x6f,0x66,0x20,0x6f,0x29,0x70,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3d,0x7b,0x2e,0x2e,0x2e,0x70,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x72,0x7d,0x2c,0x70,0x3d,0x52,0x5f,0x28,0x70,0x2c,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x65,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x72,0x7d,0x29,0x2c,0x70,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x79,0x69,0x65,0x6c,0x64,0x20,0x70,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x5f,0x28,0x72,0x2c,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x65,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x74,0x7d,0x29,0x7b,0x69,0x66,0x28,0x21,0x72,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x65,0x64,0x46,0x6f,0x72,0x6d,0x61,0x74,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x21,0x30,0x2c,0x6e,0x3b,0x74,0x72,0x79,0x7b,0x6e,0x3d,0x64,0x72,0x28,0x72,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x65,0x64,0x46,0x6f,0x72,0x6d,0x61,0x74,0x73,0x2c,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x65,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x74,0x7d,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x7d,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x72,0x5b,0x31,0x5d,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x73,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x6e,0x73,0x28,0x73,0x29,0x29,0x74,0x72,0x79,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x73,0x28,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x6e,0x2c,0x7b,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x74,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x65,0x7d,0x29,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x6f,0x7d,0x63,0x61,0x74,0x63,0x68,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x21,0x31,0x2c,0x21,0x31,0x7d,0x7d,0x29,0x2c,0x21,0x69,0x7c,0x7c,0x61,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x3f,0x6e,0x75,0x6c,0x6c,0x3a,0x28,0x72,0x5b,0x31,0x5d,0x3d,0x61,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2c,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x50,0x5f,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3e,0x7b,0x6e,0x73,0x28,0x65,0x29,0x7c,0x7c,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x74,0x3d,0x3e,0x7b,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x21,0x6e,0x73,0x28,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x26,0x26,0x28,0x74,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x21,0x30,0x29,0x7d,0x29,0x7d,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3e,0x7b,0x6e,0x73,0x28,0x65,0x29,0x7c,0x7c,0x28,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3d,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x72,0x73,0x28,0x74,0x2c,0x72,0x29,0x29,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x73,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x21,0x31,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x50,0x5f,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x6e,0x6f,0x74,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x61,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x61,0x29,0x29,0x7b,0x69,0x3d,0x69,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x61,0x29,0x29,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x73,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x47,0x6f,0x28,0x61,0x2c,0x65,0x29,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x65,0x2e,0x6e,0x6f,0x74,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x61,0x64,0x64,0x28,0x61,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x61,0x2c,0x73,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x61,0x29,0x3f,0x3f,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x61,0x2c,0x6f,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x73,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x63,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x66,0x7d,0x2c,0x64,0x5d,0x3d,0x6c,0x3b,0x69,0x66,0x28,0x66,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x26,0x26,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x64,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x3b,0x68,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x6e,0x29,0x2c,0x64,0x3d,0x68,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x7d,0x6c,0x65,0x74,0x20,0x70,0x3d,0x5b,0x63,0x2c,0x74,0x3f,0x64,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x3a,0x64,0x5d,0x3b,0x6f,0x2e,0x61,0x64,0x64,0x28,0x70,0x29,0x2c,0x65,0x2e,0x72,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x61,0x64,0x64,0x28,0x70,0x29,0x2c,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x29,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x6f,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5b,0x22,0x29,0x26,0x26,0x72,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5d,0x22,0x29,0x7d,0x76,0x61,0x72,0x20,0x69,0x73,0x2c,0x62,0x5f,0x2c,0x53,0x5f,0x2c,0x61,0x73,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x69,0x73,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x3b,0x49,0x6f,0x28,0x29,0x3b,0x4b,0x74,0x28,0x29,0x3b,0x57,0x6e,0x28,0x29,0x3b,0x46,0x72,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x49,0x74,0x28,0x29,0x3b,0x7a,0x6f,0x28,0x29,0x3b,0x71,0x6f,0x28,0x29,0x3b,0x42,0x72,0x28,0x29,0x3b,0x5f,0x69,0x28,0x29,0x3b,0x4d,0x6f,0x28,0x29,0x3b,0x7a,0x74,0x28,0x29,0x3b,0x63,0x74,0x28,0x29,0x3b,0x56,0x6f,0x28,0x29,0x3b,0x62,0x5f,0x3d,0x28,0x30,0x2c,0x69,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x3d,0x3e,0x72,0x2e,0x66,0x69,0x72,0x73,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x65,0x7d,0x29,0x3d,0x3e,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x53,0x5f,0x3d,0x2f,0x5e,0x5b,0x61,0x2d,0x7a,0x5f,0x2d,0x5d,0x2f,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x45,0x68,0x2c,0x4f,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x45,0x68,0x3d,0x7b,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x49,0x5f,0x28,0x72,0x29,0x7b,0x74,0x72,0x79,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x45,0x68,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x61,0x73,0x68,0x28,0x22,0x6d,0x64,0x35,0x22,0x29,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x72,0x2c,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x29,0x2e,0x64,0x69,0x67,0x65,0x73,0x74,0x28,0x22,0x62,0x69,0x6e,0x61,0x72,0x79,0x22,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x68,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x69,0x66,0x28,0x21,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x4c,0x6f,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x2c,0x6e,0x3d,0x49,0x5f,0x28,0x74,0x29,0x2c,0x61,0x3d,0x69,0x21,0x3d,0x3d,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4c,0x6f,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x6e,0x29,0x2c,0x61,0x7d,0x76,0x61,0x72,0x20,0x52,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4f,0x68,0x28,0x29,0x3b,0x49,0x74,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x72,0x3e,0x30,0x6e,0x29,0x2d,0x28,0x72,0x3c,0x30,0x6e,0x29,0x7d,0x76,0x61,0x72,0x20,0x50,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x49,0x68,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x30,0x6e,0x2c,0x69,0x3d,0x30,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x6e,0x2c,0x61,0x5d,0x6f,0x66,0x20,0x65,0x29,0x72,0x26,0x6e,0x26,0x26,0x28,0x74,0x3d,0x74,0x7c,0x6e,0x2c,0x69,0x3d,0x69,0x7c,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x7e,0x74,0x7c,0x69,0x7d,0x76,0x61,0x72,0x20,0x44,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x68,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x29,0x65,0x3d,0x65,0x3f,0x3f,0x74,0x2c,0x65,0x3d,0x65,0x3e,0x74,0x3f,0x65,0x3a,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x69,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6e,0x3d,0x74,0x3c,0x69,0x3f,0x74,0x3a,0x69,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x3d,0x30,0x3b,0x61,0x3c,0x6e,0x3b,0x61,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x61,0x29,0x2d,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x61,0x29,0x3b,0x69,0x66,0x28,0x73,0x21,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2d,0x69,0x7d,0x76,0x61,0x72,0x20,0x59,0x6f,0x2c,0x24,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x50,0x68,0x28,0x29,0x3b,0x44,0x68,0x28,0x29,0x3b,0x59,0x6f,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x3d,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x30,0x6e,0x2c,0x62,0x61,0x73,0x65,0x3a,0x30,0x6e,0x2c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x30,0x6e,0x2c,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x30,0x6e,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x30,0x6e,0x2c,0x75,0x73,0x65,0x72,0x3a,0x30,0x6e,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x79,0x65,0x72,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x30,0x6e,0x2c,0x62,0x61,0x73,0x65,0x3a,0x31,0x6e,0x2c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x32,0x6e,0x2c,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x33,0x6e,0x2c,0x75,0x73,0x65,0x72,0x3a,0x34,0x6e,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x35,0x6e,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x42,0x69,0x74,0x73,0x3d,0x30,0x6e,0x2c,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x7d,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x65,0x2c,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x3a,0x65,0x2c,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x3a,0x30,0x6e,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x30,0x6e,0x2c,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x3a,0x30,0x6e,0x2c,0x69,0x6e,0x64,0x65,0x78,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x5b,0x65,0x5d,0x2b,0x2b,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x30,0x6e,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x22,0x22,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x5b,0x5d,0x7d,0x7d,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x2c,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x3a,0x31,0x6e,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3a,0x65,0x7d,0x7d,0x66,0x6f,0x72,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x65,0x2c,0x74,0x3d,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x66,0x69,0x6e,0x64,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x66,0x6f,0x72,0x20,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x20,0x24,0x7b,0x65,0x7d,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x29,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x69,0x3c,0x3c,0x42,0x69,0x67,0x49,0x6e,0x74,0x28,0x74,0x29,0x7d,0x7d,0x61,0x70,0x70,0x6c,0x79,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x3d,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x2c,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x3a,0x65,0x2e,0x6c,0x61,0x79,0x65,0x72,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x3f,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x3a,0x65,0x2e,0x6c,0x61,0x79,0x65,0x72,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x7c,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x69,0x2e,0x73,0x6f,0x72,0x74,0x3f,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x69,0x2c,0x65,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3a,0x65,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x3a,0x71,0x68,0x28,0x5b,0x65,0x2e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x2c,0x74,0x2e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x5d,0x29,0x7d,0x7d,0x61,0x70,0x70,0x6c,0x79,0x50,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x4f,0x66,0x66,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x3a,0x42,0x69,0x67,0x49,0x6e,0x74,0x28,0x74,0x29,0x7d,0x7d,0x72,0x65,0x63,0x6f,0x72,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x63,0x6f,0x72,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x69,0x2c,0x74,0x28,0x69,0x29,0x29,0x7d,0x72,0x65,0x63,0x6f,0x72,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x65,0x2c,0x74,0x3d,0x31,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x31,0x6e,0x3c,0x3c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x42,0x69,0x74,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x42,0x69,0x74,0x73,0x2b,0x3d,0x42,0x69,0x67,0x49,0x6e,0x74,0x28,0x74,0x29,0x2c,0x7b,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x29,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x7d,0x7d,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x6c,0x61,0x79,0x65,0x72,0x21,0x3d,0x3d,0x74,0x2e,0x6c,0x61,0x79,0x65,0x72,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x79,0x65,0x72,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x65,0x2e,0x6c,0x61,0x79,0x65,0x72,0x5d,0x2d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x79,0x65,0x72,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x74,0x2e,0x6c,0x61,0x79,0x65,0x72,0x5d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x21,0x3d,0x3d,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x79,0x65,0x72,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x5d,0x2d,0x74,0x68,0x69,0x73,0x2e,0x6c,0x61,0x79,0x65,0x72,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x7b,0x69,0x66,0x28,0x69,0x2e,0x69,0x64,0x21,0x3d,0x3d,0x6e,0x2e,0x69,0x64,0x7c,0x7c,0x21,0x69,0x2e,0x73,0x6f,0x72,0x74,0x7c,0x7c,0x21,0x6e,0x2e,0x73,0x6f,0x72,0x74,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x71,0x68,0x28,0x5b,0x69,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2c,0x6e,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x5d,0x29,0x3f,0x3f,0x30,0x6e,0x2c,0x73,0x3d,0x7e,0x28,0x61,0x7c,0x61,0x2d,0x31,0x6e,0x29,0x2c,0x6f,0x3d,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x26,0x73,0x2c,0x6c,0x3d,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x26,0x73,0x3b,0x69,0x66,0x28,0x6f,0x21,0x3d,0x3d,0x6c,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x69,0x2e,0x73,0x6f,0x72,0x74,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x69,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x6e,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x7d,0x29,0x3b,0x69,0x66,0x28,0x63,0x21,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x21,0x3d,0x3d,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3f,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2d,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x65,0x2e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x21,0x3d,0x3d,0x74,0x2e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x3f,0x65,0x2e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x2d,0x74,0x2e,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x49,0x6e,0x64,0x65,0x78,0x3a,0x65,0x2e,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x21,0x3d,0x3d,0x74,0x2e,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x3f,0x65,0x2e,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x2d,0x74,0x2e,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x3a,0x65,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x21,0x3d,0x3d,0x74,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x3f,0x65,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x2d,0x74,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x7d,0x72,0x65,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5b,0x6e,0x5d,0x29,0x3d,0x3e,0x6e,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5b,0x22,0x29,0x29,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x5b,0x6e,0x5d,0x2c,0x5b,0x61,0x5d,0x29,0x3d,0x3e,0x44,0x5f,0x28,0x6e,0x2c,0x61,0x29,0x29,0x2c,0x74,0x3d,0x65,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x2c,0x6e,0x5d,0x29,0x3d,0x3e,0x6e,0x29,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3e,0x6c,0x73,0x28,0x6e,0x2d,0x61,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x2c,0x6e,0x5d,0x2c,0x61,0x29,0x3d,0x3e,0x5b,0x6e,0x2c,0x74,0x5b,0x61,0x5d,0x5d,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5b,0x6e,0x2c,0x61,0x5d,0x29,0x3d,0x3e,0x6e,0x21,0x3d,0x3d,0x61,0x29,0x7d,0x72,0x65,0x6d,0x61,0x70,0x41,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x65,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x3f,0x65,0x3a,0x65,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x6e,0x2c,0x61,0x5d,0x3d,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x7b,0x2e,0x2e,0x2e,0x6e,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x49,0x68,0x28,0x6e,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x74,0x29,0x7d,0x2c,0x5b,0x6e,0x2c,0x61,0x5d,0x7d,0x29,0x7d,0x73,0x6f,0x72,0x74,0x41,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x73,0x5d,0x6f,0x66,0x20,0x65,0x29,0x73,0x2e,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x3d,0x3d,0x3d,0x31,0x6e,0x26,0x26,0x74,0x2e,0x61,0x64,0x64,0x28,0x73,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x29,0x3b,0x69,0x66,0x28,0x74,0x2e,0x73,0x69,0x7a,0x65,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x74,0x29,0x2e,0x73,0x6f,0x72,0x74,0x28,0x29,0x2c,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x61,0x3d,0x31,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x69,0x29,0x6e,0x2e,0x73,0x65,0x74,0x28,0x73,0x2c,0x61,0x2b,0x2b,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x6f,0x2c,0x6c,0x5d,0x3d,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x3d,0x7b,0x2e,0x2e,0x2e,0x6f,0x2c,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x3a,0x6e,0x2e,0x67,0x65,0x74,0x28,0x6f,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x29,0x3f,0x3f,0x30,0x6e,0x7d,0x2c,0x5b,0x6f,0x2c,0x6c,0x5d,0x7d,0x29,0x7d,0x73,0x6f,0x72,0x74,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x61,0x70,0x41,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x73,0x28,0x65,0x29,0x2c,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x72,0x74,0x41,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x65,0x29,0x2c,0x65,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x5b,0x74,0x5d,0x2c,0x5b,0x69,0x5d,0x29,0x3d,0x3e,0x6c,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x74,0x2c,0x69,0x29,0x29,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5a,0x6f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x74,0x28,0x65,0x29,0x3a,0x74,0x2b,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x72,0x3d,0x22,0x61,0x6e,0x79,0x22,0x2c,0x2e,0x2e,0x2e,0x65,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x74,0x79,0x70,0x65,0x73,0x3a,0x74,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x29,0x3f,0x7b,0x74,0x79,0x70,0x65,0x3a,0x69,0x5b,0x30,0x5d,0x2c,0x2e,0x2e,0x2e,0x69,0x5b,0x31,0x5d,0x7d,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x69,0x2c,0x70,0x72,0x65,0x66,0x65,0x72,0x4f,0x6e,0x43,0x6f,0x6e,0x66,0x6c,0x69,0x63,0x74,0x3a,0x21,0x31,0x7d,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x5f,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x22,0x22,0x2c,0x69,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x30,0x3b,0x6e,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6e,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x72,0x5b,0x6e,0x5d,0x3b,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x29,0x74,0x2b,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x72,0x5b,0x2b,0x2b,0x6e,0x5d,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x29,0x2b,0x2b,0x69,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x74,0x3d,0x22,0x22,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x7d,0x22,0x29,0x7b,0x69,0x66,0x28,0x2d,0x2d,0x69,0x3c,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x59,0x6f,0x75,0x72,0x20,0x7b,0x20,0x61,0x6e,0x64,0x20,0x7d,0x20,0x61,0x72,0x65,0x20,0x75,0x6e,0x62,0x61,0x6c,0x61,0x6e,0x63,0x65,0x64,0x2e,0x22,0x29,0x3b,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x74,0x3d,0x22,0x22,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x2b,0x3d,0x61,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x65,0x3d,0x65,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6e,0x3d,0x3e,0x6e,0x21,0x3d,0x3d,0x22,0x22,0x29,0x2c,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x5f,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x74,0x3d,0x5b,0x5d,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x29,0x2c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x3d,0x30,0x29,0x7b,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x29,0x3b,0x61,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x69,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x69,0x2c,0x61,0x29,0x29,0x7d,0x72,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x30,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x68,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x26,0x26,0x21,0x6b,0x65,0x28,0x65,0x29,0x3f,0x65,0x3a,0x6c,0x72,0x28,0x65,0x29,0x29,0x3a,0x4e,0x68,0x28,0x5b,0x72,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x30,0x2c,0x4b,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x65,0x28,0x69,0x29,0x2c,0x69,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x61,0x3d,0x3e,0x7b,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x29,0x2c,0x6e,0x7d,0x29,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4d,0x5f,0x28,0x72,0x29,0x7b,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x50,0x73,0x65,0x75,0x64,0x6f,0x73,0x28,0x65,0x3d,0x3e,0x7b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x3a,0x6e,0x6f,0x74,0x22,0x26,0x26,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x5f,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x4e,0x6f,0x6e,0x4f,0x6e,0x44,0x65,0x6d,0x61,0x6e,0x64,0x61,0x62,0x6c,0x65,0x3a,0x21,0x31,0x7d,0x2c,0x74,0x3d,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x5b,0x5d,0x3b,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x3f,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x72,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x29,0x3a,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x61,0x3d,0x3e,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x61,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x4c,0x5f,0x28,0x61,0x2c,0x4d,0x5f,0x29,0x3b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x4e,0x6f,0x6e,0x4f,0x6e,0x44,0x65,0x6d,0x61,0x6e,0x64,0x61,0x62,0x6c,0x65,0x3d,0x21,0x30,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x29,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x30,0x3f,0x5b,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x4e,0x6f,0x6e,0x4f,0x6e,0x44,0x65,0x6d,0x61,0x6e,0x64,0x61,0x62,0x6c,0x65,0x7c,0x7c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x2c,0x69,0x5d,0x3a,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x68,0x28,0x72,0x29,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x5b,0x69,0x2c,0x6e,0x5d,0x3d,0x4e,0x5f,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x26,0x26,0x6e,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x67,0x74,0x29,0x2c,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x28,0x74,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x7c,0x7c,0x74,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x65,0x29,0x2c,0x5b,0x61,0x2c,0x74,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x5d,0x29,0x29,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x40,0x22,0x29,0x7c,0x7c,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x26,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x69,0x28,0x72,0x29,0x7b,0x72,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x6e,0x2b,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x7b,0x31,0x2c,0x7d,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x71,0x5f,0x28,0x72,0x29,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x40,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x61,0x7d,0x29,0x3d,0x3e,0x61,0x28,0x74,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x2c,0x69,0x2c,0x6e,0x5d,0x3d,0x2f,0x40,0x28,0x5c,0x53,0x2a,0x29,0x28,0x20,0x2e,0x2b,0x7c,0x5b,0x28,0x7b,0x5d,0x2e,0x2a,0x29,0x3f,0x2f,0x67,0x2e,0x65,0x78,0x65,0x63,0x28,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x7b,0x77,0x72,0x61,0x70,0x3a,0x61,0x7d,0x29,0x3d,0x3e,0x61,0x28,0x65,0x65,0x2e,0x61,0x74,0x52,0x75,0x6c,0x65,0x28,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x69,0x2c,0x70,0x61,0x72,0x61,0x6d,0x73,0x3a,0x6e,0x3f,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3f,0x3f,0x22,0x22,0x7d,0x29,0x29,0x7d,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x28,0x74,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x5f,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4c,0x69,0x73,0x74,0x3a,0x74,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x3a,0x69,0x2c,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x3a,0x6e,0x2c,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x3a,0x61,0x7d,0x29,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x28,0x70,0x2c,0x68,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x3f,0x28,0x30,0x2c,0x4c,0x68,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x2c,0x70,0x2c,0x68,0x29,0x3a,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x28,0x70,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x75,0x72,0x28,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x2c,0x70,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x28,0x70,0x2c,0x68,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x3d,0x3d,0x3d,0x67,0x74,0x3f,0x67,0x74,0x3a,0x68,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3f,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x2b,0x70,0x3a,0x70,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x28,0x70,0x2c,0x68,0x2c,0x62,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x6b,0x74,0x28,0x70,0x29,0x2c,0x79,0x3d,0x73,0x28,0x5b,0x22,0x74,0x68,0x65,0x6d,0x65,0x22,0x2c,0x2e,0x2e,0x2e,0x76,0x5d,0x2c,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x74,0x28,0x76,0x5b,0x30,0x5d,0x29,0x28,0x79,0x2c,0x62,0x29,0x7d,0x6c,0x65,0x74,0x20,0x66,0x3d,0x30,0x2c,0x64,0x3d,0x7b,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x3a,0x65,0x65,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x6f,0x2c,0x65,0x3a,0x54,0x65,0x2c,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x73,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x63,0x2c,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x70,0x3d,0x3e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x3f,0x72,0x2e,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x70,0x29,0x3a,0x73,0x28,0x5b,0x22,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x22,0x2c,0x70,0x5d,0x2c,0x21,0x30,0x29,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x28,0x29,0x3d,0x3e,0x5b,0x5d,0x2c,0x61,0x64,0x64,0x42,0x61,0x73,0x65,0x28,0x70,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x68,0x2c,0x62,0x5d,0x6f,0x66,0x20,0x75,0x73,0x28,0x70,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x6c,0x28,0x68,0x2c,0x7b,0x7d,0x29,0x2c,0x79,0x3d,0x6e,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x62,0x61,0x73,0x65,0x22,0x29,0x3b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x76,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x76,0x2c,0x5b,0x5d,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x76,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x79,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x62,0x61,0x73,0x65,0x22,0x7d,0x2c,0x62,0x5d,0x29,0x7d,0x7d,0x2c,0x61,0x64,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x28,0x70,0x2c,0x68,0x29,0x7b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x7b,0x5b,0x60,0x40,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x24,0x7b,0x70,0x7d,0x60,0x5d,0x3a,0x68,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x76,0x2c,0x79,0x5d,0x6f,0x66,0x20,0x75,0x73,0x28,0x62,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x6c,0x28,0x76,0x2c,0x7b,0x7d,0x29,0x3b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x77,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x5b,0x5d,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x6e,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x22,0x29,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x22,0x7d,0x2c,0x79,0x5d,0x29,0x7d,0x7d,0x2c,0x61,0x64,0x64,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x28,0x70,0x2c,0x68,0x29,0x7b,0x68,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x7b,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3a,0x21,0x31,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x30,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x31,0x7d,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x29,0x3f,0x7b,0x7d,0x3a,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x76,0x2c,0x79,0x5d,0x6f,0x66,0x20,0x75,0x73,0x28,0x70,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x6c,0x28,0x76,0x2c,0x68,0x29,0x3b,0x61,0x2e,0x61,0x64,0x64,0x28,0x77,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x77,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x5b,0x5d,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x6e,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x29,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x68,0x7d,0x2c,0x79,0x5d,0x29,0x7d,0x7d,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x28,0x70,0x2c,0x68,0x29,0x7b,0x68,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x7d,0x2c,0x7b,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3a,0x21,0x31,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x30,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x30,0x7d,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x29,0x3f,0x7b,0x7d,0x3a,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x76,0x2c,0x79,0x5d,0x6f,0x66,0x20,0x75,0x73,0x28,0x70,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x6c,0x28,0x76,0x2c,0x68,0x29,0x3b,0x61,0x2e,0x61,0x64,0x64,0x28,0x77,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x77,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x5b,0x5d,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x6e,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x68,0x7d,0x2c,0x79,0x5d,0x29,0x7d,0x7d,0x2c,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x2c,0x68,0x29,0x7b,0x68,0x3d,0x4d,0x68,0x28,0x7b,0x2e,0x2e,0x2e,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x30,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x30,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x21,0x31,0x7d,0x2c,0x2e,0x2e,0x2e,0x68,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x6e,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x69,0x6e,0x20,0x70,0x29,0x7b,0x6c,0x65,0x74,0x20,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x4f,0x2c,0x7b,0x69,0x73,0x4f,0x6e,0x6c,0x79,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x42,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x4e,0x2c,0x54,0x2c,0x46,0x5d,0x3d,0x4a,0x73,0x28,0x68,0x2e,0x74,0x79,0x70,0x65,0x73,0x2c,0x4f,0x2c,0x68,0x2c,0x72,0x29,0x3b,0x69,0x66,0x28,0x4e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x21,0x68,0x2e,0x74,0x79,0x70,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x55,0x7d,0x29,0x3d,0x3e,0x55,0x3d,0x3d,0x3d,0x54,0x29,0x29,0x69,0x66,0x28,0x42,0x29,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x5b,0x60,0x55,0x6e,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x68,0x69,0x6e,0x74,0x20,0x5c,0x60,0x24,0x7b,0x54,0x7d,0x5c,0x60,0x20,0x69,0x6e,0x20,0x5c,0x60,0x24,0x7b,0x79,0x7d,0x2d,0x24,0x7b,0x4f,0x7d,0x5c,0x60,0x2e,0x60,0x2c,0x60,0x59,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x73,0x61,0x66,0x65,0x6c,0x79,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x5c,0x60,0x24,0x7b,0x79,0x7d,0x2d,0x24,0x7b,0x4f,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x54,0x2b,0x22,0x3a,0x22,0x2c,0x22,0x22,0x29,0x7d,0x5c,0x60,0x2e,0x60,0x5d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x21,0x63,0x72,0x28,0x4e,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x59,0x3d,0x7b,0x67,0x65,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x7c,0x7c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x2d,0x75,0x73,0x65,0x64,0x2d,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x2d,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x66,0x6f,0x72,0x2d,0x24,0x7b,0x79,0x7d,0x60,0x2c,0x5b,0x22,0x59,0x6f,0x75,0x72,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x73,0x65,0x74,0x20,0x60,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x60,0x20,0x69,0x6e,0x20,0x69,0x74,0x73,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x74,0x6f,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x22,0x5d,0x29,0x2c,0x46,0x7d,0x7d,0x2c,0x5f,0x3d,0x77,0x65,0x28,0x72,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x5f,0x3f,0x6b,0x28,0x4e,0x2c,0x59,0x29,0x3a,0x6b,0x28,0x4e,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2e,0x6d,0x61,0x70,0x28,0x55,0x3d,0x3e,0x28,0x7b,0x5b,0x47,0x6e,0x28,0x79,0x2c,0x4f,0x29,0x5d,0x3a,0x55,0x7d,0x29,0x29,0x7d,0x2c,0x77,0x3d,0x6c,0x28,0x79,0x2c,0x68,0x29,0x2c,0x6b,0x3d,0x70,0x5b,0x79,0x5d,0x3b,0x61,0x2e,0x61,0x64,0x64,0x28,0x5b,0x77,0x2c,0x68,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x45,0x3d,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x76,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x68,0x7d,0x2c,0x53,0x5d,0x3b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x77,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x5b,0x5d,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x45,0x29,0x7d,0x7d,0x2c,0x6d,0x61,0x74,0x63,0x68,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x2c,0x68,0x29,0x7b,0x68,0x3d,0x4d,0x68,0x28,0x7b,0x2e,0x2e,0x2e,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x30,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x31,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x21,0x31,0x7d,0x2c,0x2e,0x2e,0x2e,0x68,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x6e,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x69,0x6e,0x20,0x70,0x29,0x7b,0x6c,0x65,0x74,0x20,0x53,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x4f,0x2c,0x7b,0x69,0x73,0x4f,0x6e,0x6c,0x79,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x42,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x4e,0x2c,0x54,0x2c,0x46,0x5d,0x3d,0x4a,0x73,0x28,0x68,0x2e,0x74,0x79,0x70,0x65,0x73,0x2c,0x4f,0x2c,0x68,0x2c,0x72,0x29,0x3b,0x69,0x66,0x28,0x4e,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x21,0x68,0x2e,0x74,0x79,0x70,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x55,0x7d,0x29,0x3d,0x3e,0x55,0x3d,0x3d,0x3d,0x54,0x29,0x29,0x69,0x66,0x28,0x42,0x29,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x5b,0x60,0x55,0x6e,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x74,0x79,0x70,0x65,0x68,0x69,0x6e,0x74,0x20,0x5c,0x60,0x24,0x7b,0x54,0x7d,0x5c,0x60,0x20,0x69,0x6e,0x20,0x5c,0x60,0x24,0x7b,0x79,0x7d,0x2d,0x24,0x7b,0x4f,0x7d,0x5c,0x60,0x2e,0x60,0x2c,0x60,0x59,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x73,0x61,0x66,0x65,0x6c,0x79,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x5c,0x60,0x24,0x7b,0x79,0x7d,0x2d,0x24,0x7b,0x4f,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x54,0x2b,0x22,0x3a,0x22,0x2c,0x22,0x22,0x29,0x7d,0x5c,0x60,0x2e,0x60,0x5d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x21,0x63,0x72,0x28,0x4e,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x59,0x3d,0x7b,0x67,0x65,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x7c,0x7c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x2d,0x75,0x73,0x65,0x64,0x2d,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x2d,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x66,0x6f,0x72,0x2d,0x24,0x7b,0x79,0x7d,0x60,0x2c,0x5b,0x22,0x59,0x6f,0x75,0x72,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x73,0x65,0x74,0x20,0x60,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x60,0x20,0x69,0x6e,0x20,0x69,0x74,0x73,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x74,0x6f,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x22,0x5d,0x29,0x2c,0x46,0x7d,0x7d,0x2c,0x5f,0x3d,0x77,0x65,0x28,0x72,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x5f,0x3f,0x6b,0x28,0x4e,0x2c,0x59,0x29,0x3a,0x6b,0x28,0x4e,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2e,0x6d,0x61,0x70,0x28,0x55,0x3d,0x3e,0x28,0x7b,0x5b,0x47,0x6e,0x28,0x79,0x2c,0x4f,0x29,0x5d,0x3a,0x55,0x7d,0x29,0x29,0x7d,0x2c,0x77,0x3d,0x6c,0x28,0x79,0x2c,0x68,0x29,0x2c,0x6b,0x3d,0x70,0x5b,0x79,0x5d,0x3b,0x61,0x2e,0x61,0x64,0x64,0x28,0x5b,0x77,0x2c,0x68,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x45,0x3d,0x5b,0x7b,0x73,0x6f,0x72,0x74,0x3a,0x76,0x2c,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x68,0x7d,0x2c,0x53,0x5d,0x3b,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x77,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x5b,0x5d,0x29,0x2c,0x65,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x45,0x29,0x7d,0x7d,0x2c,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x70,0x2c,0x68,0x2c,0x62,0x3d,0x7b,0x7d,0x29,0x7b,0x68,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x68,0x29,0x2e,0x6d,0x61,0x70,0x28,0x76,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x79,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x61,0x72,0x67,0x73,0x3a,0x77,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x6b,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x53,0x2c,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3a,0x45,0x2c,0x77,0x72,0x61,0x70,0x3a,0x4f,0x2c,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x42,0x7d,0x3d,0x79,0x2c,0x4e,0x3d,0x76,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x6b,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x53,0x2c,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3a,0x45,0x7d,0x2c,0x62,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x58,0x6f,0x2e,0x4d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x26,0x26,0x7b,0x61,0x72,0x67,0x73,0x3a,0x77,0x2c,0x77,0x72,0x61,0x70,0x3a,0x4f,0x2c,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x42,0x7d,0x29,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x4e,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x21,0x6f,0x73,0x28,0x4e,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x59,0x6f,0x75,0x72,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x20,0x5c,0x60,0x24,0x7b,0x70,0x7d,0x5c,0x60,0x20,0x68,0x61,0x73,0x20,0x61,0x6e,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x20,0x4d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x6e,0x20,0x61,0x74,0x2d,0x72,0x75,0x6c,0x65,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x61,0x20,0x5c,0x60,0x26,0x5c,0x60,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2e,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x4e,0x29,0x3f,0x4e,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x54,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x54,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x2e,0x6d,0x61,0x70,0x28,0x54,0x3d,0x3e,0x4f,0x69,0x28,0x54,0x29,0x29,0x3a,0x4e,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x4e,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x4f,0x69,0x28,0x4e,0x29,0x28,0x79,0x29,0x7d,0x3b,0x69,0x66,0x28,0x21,0x6f,0x73,0x28,0x76,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x59,0x6f,0x75,0x72,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x20,0x5c,0x60,0x24,0x7b,0x70,0x7d,0x5c,0x60,0x20,0x68,0x61,0x73,0x20,0x61,0x6e,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x20,0x4d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x6e,0x20,0x61,0x74,0x2d,0x72,0x75,0x6c,0x65,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x61,0x20,0x5c,0x60,0x26,0x5c,0x60,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2e,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x69,0x28,0x76,0x29,0x7d,0x29,0x2c,0x24,0x5f,0x28,0x74,0x2c,0x70,0x2c,0x62,0x29,0x2c,0x69,0x2e,0x73,0x65,0x74,0x28,0x70,0x2c,0x68,0x29,0x2c,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x65,0x74,0x28,0x70,0x2c,0x62,0x29,0x7d,0x2c,0x6d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x70,0x2c,0x68,0x2c,0x62,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x62,0x3f,0x2e,0x69,0x64,0x3f,0x3f,0x2b,0x2b,0x66,0x2c,0x79,0x3d,0x70,0x3d,0x3d,0x3d,0x22,0x40,0x22,0x2c,0x77,0x3d,0x77,0x65,0x28,0x72,0x2c,0x22,0x67,0x65,0x6e,0x65,0x72,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x53,0x2c,0x45,0x5d,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x62,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x29,0x53,0x21,0x3d,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x26,0x26,0x64,0x2e,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x79,0x3f,0x60,0x24,0x7b,0x70,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3a,0x60,0x24,0x7b,0x70,0x7d,0x2d,0x24,0x7b,0x53,0x7d,0x60,0x2c,0x28,0x7b,0x61,0x72,0x67,0x73,0x3a,0x4f,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x42,0x7d,0x29,0x3d,0x3e,0x68,0x28,0x45,0x2c,0x77,0x3f,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x4f,0x3f,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x42,0x7d,0x3a,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x42,0x7d,0x29,0x2c,0x7b,0x2e,0x2e,0x2e,0x62,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x45,0x2c,0x69,0x64,0x3a,0x76,0x2c,0x74,0x79,0x70,0x65,0x3a,0x58,0x6f,0x2e,0x4d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x49,0x6e,0x66,0x6f,0x3a,0x4a,0x6f,0x2e,0x42,0x61,0x73,0x65,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6b,0x3d,0x22,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x22,0x69,0x6e,0x28,0x62,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x3b,0x64,0x2e,0x61,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x70,0x2c,0x28,0x7b,0x61,0x72,0x67,0x73,0x3a,0x53,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x45,0x7d,0x29,0x3d,0x3e,0x53,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x45,0x69,0x26,0x26,0x21,0x6b,0x3f,0x6e,0x75,0x6c,0x6c,0x3a,0x68,0x28,0x53,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x45,0x69,0x3f,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x53,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3f,0x3f,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x53,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x53,0x3a,0x22,0x22,0x29,0x2c,0x77,0x3f,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x53,0x3f,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x45,0x7d,0x3a,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x45,0x7d,0x29,0x2c,0x7b,0x2e,0x2e,0x2e,0x62,0x2c,0x69,0x64,0x3a,0x76,0x2c,0x74,0x79,0x70,0x65,0x3a,0x58,0x6f,0x2e,0x4d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x49,0x6e,0x66,0x6f,0x3a,0x4a,0x6f,0x2e,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x7d,0x29,0x7d,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7c,0x7c,0x65,0x6c,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x29,0x2c,0x65,0x6c,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x68,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x69,0x66,0x28,0x21,0x6e,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x73,0x61,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x61,0x2e,0x68,0x61,0x73,0x68,0x3f,0x61,0x2e,0x68,0x72,0x65,0x66,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x61,0x2e,0x68,0x61,0x73,0x68,0x2c,0x22,0x22,0x29,0x3a,0x61,0x2e,0x68,0x72,0x65,0x66,0x3b,0x73,0x3d,0x61,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x3f,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x61,0x2e,0x73,0x65,0x61,0x72,0x63,0x68,0x2c,0x22,0x22,0x29,0x3a,0x73,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x62,0x65,0x2e,0x73,0x74,0x61,0x74,0x53,0x79,0x6e,0x63,0x28,0x64,0x65,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x73,0x29,0x2c,0x7b,0x74,0x68,0x72,0x6f,0x77,0x49,0x66,0x4e,0x6f,0x45,0x6e,0x74,0x72,0x79,0x3a,0x21,0x31,0x7d,0x29,0x3f,0x2e,0x6d,0x74,0x69,0x6d,0x65,0x4d,0x73,0x3b,0x21,0x6f,0x7c,0x7c,0x28,0x28,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x7c,0x7c,0x6f,0x3e,0x65,0x2e,0x67,0x65,0x74,0x28,0x6e,0x29,0x29,0x26,0x26,0x28,0x74,0x3d,0x21,0x30,0x29,0x2c,0x69,0x2e,0x73,0x65,0x74,0x28,0x6e,0x2c,0x6f,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x74,0x2c,0x69,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x68,0x28,0x72,0x29,0x7b,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x65,0x3d,0x3e,0x7b,0x5b,0x22,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x22,0x2c,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x26,0x26,0x28,0x46,0x68,0x28,0x65,0x29,0x2c,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x5f,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x65,0x61,0x63,0x68,0x28,0x74,0x3d,0x3e,0x7b,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x5b,0x22,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x22,0x2c,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x26,0x26,0x28,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x61,0x79,0x65,0x72,0x22,0x2c,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x7d,0x29,0x2c,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x6c,0x61,0x79,0x65,0x72,0x22,0x2c,0x74,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x46,0x68,0x28,0x74,0x29,0x2c,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x62,0x61,0x73,0x65,0x22,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x61,0x64,0x64,0x42,0x61,0x73,0x65,0x3a,0x6e,0x7d,0x29,0x7b,0x6e,0x28,0x69,0x2c,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x7d,0x29,0x7d,0x29,0x3b,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x61,0x64,0x64,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x7d,0x29,0x7b,0x6e,0x28,0x69,0x2c,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x2c,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x29,0x3b,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x6e,0x7d,0x29,0x7b,0x6e,0x28,0x69,0x2c,0x7b,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x21,0x31,0x2c,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x29,0x3b,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x7d,0x29,0x2c,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x7b,0x2e,0x2e,0x2e,0x73,0x65,0x2c,0x2e,0x2e,0x2e,0x6d,0x68,0x7d,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x6c,0x2c,0x63,0x5d,0x29,0x3d,0x3e,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x72,0x65,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6c,0x29,0x3f,0x63,0x3a,0x6e,0x75,0x6c,0x6c,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x2c,0x69,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x28,0x6c,0x2e,0x5f,0x5f,0x69,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x26,0x26,0x28,0x6c,0x3d,0x6c,0x28,0x29,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6c,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x6c,0x3a,0x6c,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x29,0x2c,0x6e,0x3d,0x46,0x5f,0x28,0x65,0x29,0x2c,0x61,0x3d,0x5b,0x73,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x2c,0x73,0x65,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x70,0x73,0x65,0x75,0x64,0x6f,0x43,0x6c,0x61,0x73,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x68,0x61,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x61,0x72,0x69,0x61,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x64,0x61,0x74,0x61,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x5d,0x2c,0x73,0x3d,0x5b,0x73,0x65,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x4d,0x6f,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x64,0x61,0x72,0x6b,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x66,0x6f,0x72,0x63,0x65,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x70,0x72,0x69,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x7c,0x7c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x29,0x26,0x26,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x26,0x26,0x28,0x73,0x3d,0x5b,0x73,0x65,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x64,0x4d,0x6f,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x70,0x72,0x65,0x66,0x65,0x72,0x73,0x43,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x64,0x61,0x72,0x6b,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x66,0x6f,0x72,0x63,0x65,0x64,0x43,0x6f,0x6c,0x6f,0x72,0x73,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2c,0x73,0x65,0x2e,0x70,0x72,0x69,0x6e,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x5d,0x29,0x2c,0x5b,0x2e,0x2e,0x2e,0x74,0x2c,0x2e,0x2e,0x2e,0x61,0x2c,0x2e,0x2e,0x2e,0x69,0x2c,0x2e,0x2e,0x2e,0x73,0x2c,0x2e,0x2e,0x2e,0x6e,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x3d,0x69,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x59,0x6f,0x3b,0x65,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x3d,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x73,0x3d,0x42,0x5f,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x65,0x2c,0x7b,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4c,0x69,0x73,0x74,0x3a,0x74,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x3a,0x69,0x2c,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x3a,0x6e,0x2c,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x3a,0x61,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x66,0x20,0x6f,0x66,0x20,0x72,0x29,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x66,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x64,0x20,0x6f,0x66,0x20,0x66,0x29,0x64,0x28,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x66,0x3f,0x2e,0x28,0x73,0x29,0x3b,0x6e,0x2e,0x72,0x65,0x63,0x6f,0x72,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x28,0x74,0x2c,0x66,0x3d,0x3e,0x69,0x2e,0x67,0x65,0x74,0x28,0x66,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x66,0x2c,0x64,0x5d,0x6f,0x66,0x20,0x69,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x66,0x2c,0x64,0x2e,0x6d,0x61,0x70,0x28,0x28,0x70,0x2c,0x68,0x29,0x3d,0x3e,0x5b,0x6e,0x2e,0x66,0x6f,0x72,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x28,0x66,0x2c,0x68,0x29,0x2c,0x70,0x5d,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x3f,0x3f,0x5b,0x5d,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x3b,0x69,0x66,0x28,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x64,0x20,0x6f,0x66,0x20,0x6f,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x7b,0x65,0x2e,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x64,0x2c,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x68,0x74,0x6d,0x6c,0x22,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x64,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x29,0x7b,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x72,0x6f,0x6f,0x74,0x2d,0x72,0x65,0x67,0x65,0x78,0x22,0x2c,0x5b,0x22,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x73,0x20,0x69,0x6e,0x20,0x60,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x60,0x20,0x77,0x6f,0x72,0x6b,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x69,0x6e,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x76,0x33,0x2e,0x30,0x2e,0x22,0x2c,0x22,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x79,0x6f,0x75,0x72,0x20,0x60,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x65,0x6c,0x69,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x23,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x69,0x6e,0x67,0x2d,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x22,0x5d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x66,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x29,0x7d,0x69,0x66,0x28,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x70,0x3d,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x68,0x3d,0x66,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x62,0x3d,0x3e,0x62,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x21,0x22,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x62,0x20,0x6f,0x66,0x20,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x62,0x29,0x3f,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x79,0x2c,0x77,0x5d,0x3d,0x62,0x2c,0x53,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x77,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x2e,0x6d,0x61,0x70,0x28,0x45,0x3d,0x3e,0x43,0x69,0x28,0x79,0x2c,0x45,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x3f,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x26,0x26,0x28,0x53,0x3d,0x5b,0x2e,0x2e,0x2e,0x53,0x2c,0x2e,0x2e,0x2e,0x53,0x2e,0x6d,0x61,0x70,0x28,0x45,0x3d,0x3e,0x22,0x2d,0x22,0x2b,0x45,0x29,0x5d,0x2c,0x53,0x3d,0x5b,0x2e,0x2e,0x2e,0x53,0x2c,0x2e,0x2e,0x2e,0x53,0x2e,0x6d,0x61,0x70,0x28,0x45,0x3d,0x3e,0x45,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x70,0x29,0x2b,0x22,0x2d,0x22,0x2b,0x45,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x70,0x29,0x29,0x5d,0x29,0x2c,0x77,0x2e,0x74,0x79,0x70,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x45,0x7d,0x29,0x3d,0x3e,0x45,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x26,0x26,0x28,0x53,0x3d,0x5b,0x2e,0x2e,0x2e,0x53,0x2c,0x2e,0x2e,0x2e,0x53,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x45,0x3d,0x3e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2e,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x29,0x2e,0x6d,0x61,0x70,0x28,0x4f,0x3d,0x3e,0x60,0x24,0x7b,0x45,0x7d,0x2f,0x24,0x7b,0x4f,0x7d,0x60,0x29,0x29,0x5d,0x29,0x2c,0x68,0x26,0x26,0x77,0x3f,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x49,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x26,0x26,0x28,0x53,0x3d,0x5b,0x2e,0x2e,0x2e,0x53,0x2c,0x2e,0x2e,0x2e,0x53,0x2e,0x6d,0x61,0x70,0x28,0x45,0x3d,0x3e,0x22,0x21,0x22,0x2b,0x45,0x29,0x5d,0x29,0x2c,0x53,0x7d,0x29,0x28,0x29,0x3a,0x5b,0x62,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x6f,0x66,0x20,0x76,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x7b,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3a,0x77,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x6b,0x3d,0x5b,0x5d,0x7d,0x6f,0x66,0x20,0x66,0x29,0x69,0x66,0x28,0x77,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x30,0x2c,0x64,0x2e,0x68,0x61,0x73,0x28,0x77,0x29,0x7c,0x7c,0x64,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x30,0x29,0x2c,0x21,0x21,0x77,0x2e,0x74,0x65,0x73,0x74,0x28,0x79,0x29,0x29,0x7b,0x64,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x64,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x2b,0x31,0x29,0x2c,0x65,0x2e,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x79,0x2c,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x68,0x74,0x6d,0x6c,0x22,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x53,0x20,0x6f,0x66,0x20,0x6b,0x29,0x65,0x2e,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x53,0x2b,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2b,0x79,0x2c,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x22,0x68,0x74,0x6d,0x6c,0x22,0x7d,0x29,0x7d,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x62,0x2c,0x76,0x5d,0x6f,0x66,0x20,0x64,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x76,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x5b,0x60,0x54,0x68,0x65,0x20,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x5c,0x60,0x24,0x7b,0x62,0x7d,0x5c,0x60,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x6e,0x79,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x2e,0x60,0x2c,0x22,0x46,0x69,0x78,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x6f,0x72,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x69,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x79,0x6f,0x75,0x72,0x20,0x60,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x23,0x73,0x61,0x66,0x65,0x6c,0x69,0x73,0x74,0x69,0x6e,0x67,0x2d,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x22,0x5d,0x29,0x7d,0x7d,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x61,0x72,0x6b,0x4d,0x6f,0x64,0x65,0x3f,0x3f,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x29,0x5b,0x31,0x5d,0x3f,0x3f,0x22,0x64,0x61,0x72,0x6b,0x22,0x2c,0x63,0x3d,0x5b,0x5a,0x6f,0x28,0x65,0x2c,0x6c,0x29,0x2c,0x5a,0x6f,0x28,0x65,0x2c,0x22,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x2c,0x5a,0x6f,0x28,0x65,0x2c,0x22,0x70,0x65,0x65,0x72,0x22,0x29,0x5d,0x3b,0x65,0x2e,0x67,0x65,0x74,0x43,0x6c,0x61,0x73,0x73,0x4f,0x72,0x64,0x65,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x64,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x5b,0x2e,0x2e,0x2e,0x64,0x5d,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x79,0x2c,0x77,0x29,0x3d,0x3e,0x79,0x3d,0x3d,0x3d,0x77,0x3f,0x30,0x3a,0x79,0x3c,0x77,0x3f,0x2d,0x31,0x3a,0x31,0x29,0x2c,0x68,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x70,0x2e,0x6d,0x61,0x70,0x28,0x79,0x3d,0x3e,0x5b,0x79,0x2c,0x6e,0x75,0x6c,0x6c,0x5d,0x29,0x29,0x2c,0x62,0x3d,0x73,0x73,0x28,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x70,0x29,0x2c,0x65,0x2c,0x21,0x30,0x29,0x3b,0x62,0x3d,0x65,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x62,0x29,0x3b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x42,0x69,0x67,0x49,0x6e,0x74,0x28,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x2c,0x79,0x5d,0x6f,0x66,0x20,0x62,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x79,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3b,0x68,0x2e,0x73,0x65,0x74,0x28,0x77,0x2c,0x68,0x2e,0x67,0x65,0x74,0x28,0x77,0x29,0x3f,0x3f,0x76,0x2b,0x2b,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x2e,0x6d,0x61,0x70,0x28,0x79,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x68,0x2e,0x67,0x65,0x74,0x28,0x79,0x29,0x3f,0x3f,0x6e,0x75,0x6c,0x6c,0x2c,0x6b,0x3d,0x63,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x79,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x6b,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x77,0x3d,0x42,0x69,0x67,0x49,0x6e,0x74,0x28,0x6b,0x29,0x29,0x2c,0x5b,0x79,0x2c,0x77,0x5d,0x7d,0x29,0x7d,0x2c,0x65,0x2e,0x67,0x65,0x74,0x43,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x64,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x61,0x29,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x29,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x62,0x2c,0x76,0x5d,0x3d,0x68,0x2c,0x79,0x3d,0x5b,0x5d,0x2c,0x77,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x76,0x3f,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x3b,0x76,0x3f,0x2e,0x74,0x79,0x70,0x65,0x73,0x3f,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x45,0x7d,0x29,0x3d,0x3e,0x45,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x29,0x26,0x26,0x77,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2e,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3f,0x3f,0x7b,0x7d,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6b,0x3d,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x77,0x7d,0x2c,0x53,0x3d,0x64,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x4d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x26,0x26,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x45,0x2c,0x4f,0x5d,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x76,0x3f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x29,0x7b,0x69,0x66,0x28,0x4f,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x42,0x3d,0x43,0x69,0x28,0x62,0x2c,0x45,0x29,0x3b,0x69,0x66,0x28,0x70,0x2e,0x70,0x75,0x73,0x68,0x28,0x53,0x3f,0x5b,0x42,0x2c,0x6b,0x5d,0x3a,0x42,0x29,0x2c,0x76,0x3f,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x26,0x26,0x78,0x74,0x28,0x4f,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x4e,0x3d,0x43,0x69,0x28,0x62,0x2c,0x60,0x2d,0x24,0x7b,0x45,0x7d,0x60,0x29,0x3b,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x53,0x3f,0x5b,0x4e,0x2c,0x6b,0x5d,0x3a,0x4e,0x29,0x7d,0x7d,0x70,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x79,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x70,0x2e,0x70,0x75,0x73,0x68,0x28,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x7d,0x2c,0x65,0x2e,0x67,0x65,0x74,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x28,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x33,0x36,0x29,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x37,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x70,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x68,0x2c,0x62,0x5d,0x6f,0x66,0x20,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x62,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x49,0x6e,0x66,0x6f,0x21,0x3d,0x3d,0x4a,0x6f,0x2e,0x42,0x61,0x73,0x65,0x26,0x26,0x70,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x68,0x2c,0x69,0x73,0x41,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x79,0x3a,0x62,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x4d,0x41,0x54,0x43,0x48,0x5f,0x56,0x41,0x52,0x49,0x41,0x4e,0x54,0x22,0x29,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x2c,0x68,0x61,0x73,0x44,0x61,0x73,0x68,0x3a,0x68,0x21,0x3d,0x3d,0x22,0x40,0x22,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x28,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x76,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x79,0x7d,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x60,0x54,0x41,0x49,0x4c,0x57,0x49,0x4e,0x44,0x50,0x4c,0x41,0x43,0x45,0x48,0x4f,0x4c,0x44,0x45,0x52,0x24,0x7b,0x64,0x7d,0x60,0x2c,0x6b,0x3d,0x65,0x65,0x2e,0x72,0x75,0x6c,0x65,0x28,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x60,0x2e,0x24,0x7b,0x77,0x7d,0x60,0x7d,0x29,0x2c,0x53,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x6b,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x2c,0x45,0x3d,0x53,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x4f,0x3d,0x28,0x65,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x68,0x29,0x3f,0x3f,0x5b,0x5d,0x29,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x28,0x5b,0x6f,0x65,0x2c,0x41,0x5d,0x29,0x3d,0x3e,0x41,0x29,0x2c,0x42,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x65,0x20,0x6f,0x66,0x20,0x4f,0x29,0x7b,0x6c,0x65,0x74,0x20,0x41,0x3d,0x5b,0x5d,0x2c,0x43,0x3d,0x7b,0x61,0x72,0x67,0x73,0x3a,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3a,0x76,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x2e,0x5b,0x79,0x5d,0x3f,0x3f,0x79,0x7d,0x2c,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3a,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2c,0x6d,0x6f,0x64,0x69,0x66,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x28,0x56,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x2e,0x65,0x61,0x63,0x68,0x28,0x45,0x65,0x3d,0x3e,0x7b,0x45,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x28,0x45,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3d,0x45,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x49,0x65,0x3d,0x3e,0x56,0x28,0x7b,0x67,0x65,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x6f,0x28,0x49,0x65,0x29,0x7d,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x49,0x65,0x7d,0x29,0x29,0x29,0x7d,0x29,0x2c,0x53,0x7d,0x2c,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x56,0x29,0x7b,0x41,0x2e,0x70,0x75,0x73,0x68,0x28,0x56,0x29,0x7d,0x2c,0x77,0x72,0x61,0x70,0x28,0x56,0x29,0x7b,0x41,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x40,0x24,0x7b,0x56,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x20,0x24,0x7b,0x56,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x7d,0x20,0x7b,0x20,0x26,0x20,0x7d,0x60,0x29,0x7d,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x53,0x7d,0x2c,0x68,0x65,0x3d,0x6f,0x65,0x28,0x43,0x29,0x3b,0x69,0x66,0x28,0x41,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x42,0x2e,0x70,0x75,0x73,0x68,0x28,0x41,0x29,0x2c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x65,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x56,0x20,0x6f,0x66,0x20,0x68,0x65,0x29,0x41,0x3d,0x5b,0x5d,0x2c,0x56,0x28,0x43,0x29,0x2c,0x42,0x2e,0x70,0x75,0x73,0x68,0x28,0x41,0x29,0x7d,0x6c,0x65,0x74,0x20,0x4e,0x3d,0x5b,0x5d,0x2c,0x54,0x3d,0x53,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x45,0x21,0x3d,0x3d,0x54,0x26,0x26,0x28,0x53,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x6f,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x41,0x3d,0x6f,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x43,0x3d,0x28,0x30,0x2c,0x4b,0x6f,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x68,0x65,0x3d,0x3e,0x7b,0x68,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x56,0x3d,0x3e,0x7b,0x56,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x60,0x24,0x7b,0x68,0x7d,0x24,0x7b,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x7d,0x24,0x7b,0x56,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x7d,0x29,0x7d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x79,0x6e,0x63,0x28,0x41,0x29,0x3b,0x4e,0x2e,0x70,0x75,0x73,0x68,0x28,0x41,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x43,0x2c,0x22,0x26,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x77,0x2c,0x22,0x26,0x22,0x29,0x29,0x7d,0x29,0x2c,0x53,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x6f,0x65,0x3d,0x3e,0x7b,0x4e,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x40,0x24,0x7b,0x6f,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x20,0x28,0x24,0x7b,0x6f,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x7d,0x29,0x20,0x7b,0x20,0x26,0x20,0x7d,0x60,0x29,0x7d,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x46,0x3d,0x21,0x28,0x79,0x20,0x69,0x6e,0x28,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3f,0x3f,0x7b,0x7d,0x29,0x29,0x2c,0x59,0x3d,0x62,0x5b,0x50,0x74,0x5d,0x3f,0x3f,0x7b,0x7d,0x2c,0x5f,0x3d,0x28,0x28,0x29,0x3d,0x3e,0x21,0x28,0x46,0x7c,0x7c,0x59,0x2e,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x29,0x28,0x29,0x3b,0x42,0x3d,0x42,0x2e,0x6d,0x61,0x70,0x28,0x6f,0x65,0x3d,0x3e,0x6f,0x65,0x2e,0x6d,0x61,0x70,0x28,0x41,0x3d,0x3e,0x28,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x41,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x5f,0x7d,0x29,0x29,0x29,0x2c,0x4e,0x3d,0x4e,0x2e,0x6d,0x61,0x70,0x28,0x6f,0x65,0x3d,0x3e,0x28,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x6f,0x65,0x2c,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x5f,0x7d,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x51,0x3d,0x7b,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x77,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x65,0x7d,0x2c,0x55,0x3d,0x42,0x2e,0x6d,0x61,0x70,0x28,0x6f,0x65,0x3d,0x3e,0x74,0x73,0x28,0x60,0x2e,0x24,0x7b,0x77,0x7d,0x60,0x2c,0x64,0x72,0x28,0x6f,0x65,0x2c,0x51,0x29,0x2c,0x51,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x60,0x2e,0x24,0x7b,0x77,0x7d,0x60,0x2c,0x22,0x26,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x7b,0x20,0x26,0x20,0x7d,0x22,0x2c,0x22,0x22,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x55,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x72,0x28,0x4e,0x2c,0x51,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x60,0x2e,0x24,0x7b,0x77,0x7d,0x60,0x2c,0x22,0x26,0x22,0x29,0x29,0x2c,0x55,0x7d,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x68,0x28,0x72,0x2c,0x65,0x29,0x7b,0x21,0x72,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x7c,0x7c,0x28,0x72,0x2e,0x6e,0x6f,0x74,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x61,0x64,0x64,0x28,0x65,0x29,0x2c,0x72,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x2c,0x72,0x2e,0x61,0x70,0x70,0x6c,0x79,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x2c,0x72,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x2c,0x72,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x29,0x2c,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3b,0x69,0x66,0x28,0x21,0x21,0x74,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x72,0x2e,0x72,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x29,0x69,0x5b,0x31,0x5d,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3d,0x3d,0x3d,0x74,0x26,0x26,0x72,0x2e,0x72,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x29,0x3b,0x6a,0x68,0x28,0x72,0x2c,0x74,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6c,0x28,0x72,0x2c,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7b,0x64,0x69,0x73,0x70,0x6f,0x73,0x61,0x62,0x6c,0x65,0x73,0x3a,0x5b,0x5d,0x2c,0x72,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x61,0x70,0x70,0x6c,0x79,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x6e,0x6f,0x74,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x72,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x6c,0x69,0x73,0x74,0x3f,0x3f,0x5b,0x5d,0x29,0x2c,0x70,0x6f,0x73,0x74,0x43,0x73,0x73,0x4e,0x6f,0x64,0x65,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x52,0x75,0x6c,0x65,0x4d,0x61,0x70,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x72,0x2c,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x65,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4d,0x61,0x70,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x6d,0x61,0x72,0x6b,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x43,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3a,0x61,0x3d,0x3e,0x6a,0x68,0x28,0x69,0x2c,0x61,0x29,0x2c,0x6d,0x61,0x72,0x6b,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x4e,0x6f,0x64,0x65,0x3a,0x61,0x3d,0x3e,0x55,0x5f,0x28,0x69,0x2c,0x61,0x29,0x7d,0x2c,0x6e,0x3d,0x6a,0x5f,0x28,0x69,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7a,0x5f,0x28,0x6e,0x2c,0x69,0x29,0x2c,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x68,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x65,0x2e,0x6f,0x70,0x74,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x2c,0x6f,0x3d,0x69,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x4a,0x65,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x70,0x61,0x74,0x68,0x3a,0x22,0x2c,0x73,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3b,0x69,0x66,0x28,0x6f,0x26,0x26,0x68,0x72,0x2e,0x68,0x61,0x73,0x28,0x73,0x29,0x29,0x6c,0x3d,0x68,0x72,0x2e,0x67,0x65,0x74,0x28,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x54,0x69,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x54,0x69,0x2e,0x67,0x65,0x74,0x28,0x6e,0x29,0x3b,0x44,0x74,0x2e,0x67,0x65,0x74,0x28,0x70,0x29,0x2e,0x61,0x64,0x64,0x28,0x73,0x29,0x2c,0x68,0x72,0x2e,0x73,0x65,0x74,0x28,0x73,0x2c,0x70,0x29,0x2c,0x6c,0x3d,0x70,0x7d,0x6c,0x65,0x74,0x20,0x63,0x3d,0x54,0x68,0x28,0x73,0x2c,0x72,0x29,0x3b,0x69,0x66,0x28,0x6c,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x70,0x2c,0x68,0x5d,0x3d,0x42,0x68,0x28,0x5b,0x2e,0x2e,0x2e,0x61,0x5d,0x2c,0x66,0x73,0x28,0x6c,0x29,0x29,0x3b,0x69,0x66,0x28,0x21,0x70,0x26,0x26,0x21,0x63,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x6c,0x2c,0x21,0x31,0x2c,0x68,0x5d,0x7d,0x69,0x66,0x28,0x68,0x72,0x2e,0x68,0x61,0x73,0x28,0x73,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x68,0x72,0x2e,0x67,0x65,0x74,0x28,0x73,0x29,0x3b,0x69,0x66,0x28,0x44,0x74,0x2e,0x68,0x61,0x73,0x28,0x70,0x29,0x26,0x26,0x28,0x44,0x74,0x2e,0x67,0x65,0x74,0x28,0x70,0x29,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x73,0x29,0x2c,0x44,0x74,0x2e,0x67,0x65,0x74,0x28,0x70,0x29,0x2e,0x73,0x69,0x7a,0x65,0x3d,0x3d,0x3d,0x30,0x29,0x29,0x7b,0x44,0x74,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x70,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x68,0x2c,0x62,0x5d,0x6f,0x66,0x20,0x54,0x69,0x29,0x62,0x3d,0x3d,0x3d,0x70,0x26,0x26,0x54,0x69,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x70,0x2e,0x64,0x69,0x73,0x70,0x6f,0x73,0x61,0x62,0x6c,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x30,0x29,0x29,0x68,0x28,0x70,0x29,0x7d,0x7d,0x4a,0x65,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x75,0x70,0x20,0x6e,0x65,0x77,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x2e,0x2e,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x74,0x6c,0x28,0x74,0x2c,0x5b,0x5d,0x2c,0x72,0x29,0x3b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x66,0x2c,0x7b,0x75,0x73,0x65,0x72,0x43,0x6f,0x6e,0x66,0x69,0x67,0x50,0x61,0x74,0x68,0x3a,0x69,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x2c,0x64,0x5d,0x3d,0x42,0x68,0x28,0x5b,0x2e,0x2e,0x2e,0x61,0x5d,0x2c,0x66,0x73,0x28,0x66,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x69,0x2e,0x73,0x65,0x74,0x28,0x6e,0x2c,0x66,0x29,0x2c,0x68,0x72,0x2e,0x73,0x65,0x74,0x28,0x73,0x2c,0x66,0x29,0x2c,0x44,0x74,0x2e,0x68,0x61,0x73,0x28,0x66,0x29,0x7c,0x7c,0x44,0x74,0x2e,0x73,0x65,0x74,0x28,0x66,0x2c,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x29,0x2c,0x44,0x74,0x2e,0x67,0x65,0x74,0x28,0x66,0x29,0x2e,0x61,0x64,0x64,0x28,0x73,0x29,0x2c,0x5b,0x66,0x2c,0x21,0x30,0x2c,0x64,0x5d,0x7d,0x76,0x61,0x72,0x20,0x4c,0x68,0x2c,0x4b,0x6f,0x2c,0x50,0x74,0x2c,0x58,0x6f,0x2c,0x4a,0x6f,0x2c,0x65,0x6c,0x2c,0x68,0x72,0x2c,0x54,0x69,0x2c,0x44,0x74,0x2c,0x5f,0x69,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x61,0x61,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x4c,0x68,0x3d,0x70,0x65,0x28,0x4f,0x61,0x28,0x29,0x29,0x2c,0x4b,0x6f,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x3b,0x53,0x69,0x28,0x29,0x3b,0x49,0x6f,0x28,0x29,0x3b,0x57,0x6e,0x28,0x29,0x3b,0x4b,0x74,0x28,0x29,0x3b,0x66,0x72,0x28,0x29,0x3b,0x71,0x6f,0x28,0x29,0x3b,0x46,0x72,0x28,0x29,0x3b,0x67,0x68,0x28,0x29,0x3b,0x49,0x74,0x28,0x29,0x3b,0x49,0x74,0x28,0x29,0x3b,0x47,0x69,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x48,0x69,0x28,0x29,0x3b,0x4d,0x6f,0x28,0x29,0x3b,0x61,0x73,0x28,0x29,0x3b,0x52,0x68,0x28,0x29,0x3b,0x24,0x68,0x28,0x29,0x3b,0x63,0x74,0x28,0x29,0x3b,0x7a,0x6f,0x28,0x29,0x3b,0x50,0x74,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x29,0x2c,0x58,0x6f,0x3d,0x7b,0x41,0x64,0x64,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x41,0x44,0x44,0x5f,0x56,0x41,0x52,0x49,0x41,0x4e,0x54,0x22,0x29,0x2c,0x4d,0x61,0x74,0x63,0x68,0x56,0x61,0x72,0x69,0x61,0x6e,0x74,0x3a,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x4d,0x41,0x54,0x43,0x48,0x5f,0x56,0x41,0x52,0x49,0x41,0x4e,0x54,0x22,0x29,0x7d,0x2c,0x4a,0x6f,0x3d,0x7b,0x42,0x61,0x73,0x65,0x3a,0x31,0x3c,0x3c,0x30,0x2c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x3a,0x31,0x3c,0x3c,0x31,0x7d,0x3b,0x65,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x3b,0x68,0x72,0x3d,0x79,0x68,0x2c,0x54,0x69,0x3d,0x62,0x68,0x2c,0x44,0x74,0x3d,0x5a,0x6e,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x3f,0x5b,0x5d,0x3a,0x72,0x2e,0x67,0x6c,0x6f,0x62,0x3f,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x52,0x4f,0x4c,0x4c,0x55,0x50,0x5f,0x57,0x41,0x54,0x43,0x48,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x75,0x65,0x22,0x3f,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x22,0x2c,0x66,0x69,0x6c,0x65,0x3a,0x72,0x2e,0x62,0x61,0x73,0x65,0x7d,0x5d,0x3a,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x69,0x72,0x2d,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x22,0x2c,0x64,0x69,0x72,0x3a,0x72,0x2e,0x62,0x61,0x73,0x65,0x2c,0x67,0x6c,0x6f,0x62,0x3a,0x72,0x2e,0x67,0x6c,0x6f,0x62,0x7d,0x5d,0x3a,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x22,0x2c,0x66,0x69,0x6c,0x65,0x3a,0x72,0x2e,0x62,0x61,0x73,0x65,0x7d,0x5d,0x7d,0x76,0x61,0x72,0x20,0x55,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x68,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x3a,0x72,0x2c,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x65,0x7d,0x7d,0x76,0x61,0x72,0x20,0x48,0x68,0x2c,0x57,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x56,0x68,0x2e,0x77,0x69,0x74,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x3d,0x28,0x29,0x3d,0x3e,0x28,0x7b,0x7d,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x5f,0x5f,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x69,0x2c,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x3a,0x72,0x28,0x69,0x29,0x2c,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x65,0x28,0x69,0x29,0x7d,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x5f,0x5f,0x69,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x21,0x30,0x2c,0x74,0x2e,0x5f,0x5f,0x70,0x6c,0x75,0x67,0x69,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x72,0x2c,0x74,0x2e,0x5f,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3d,0x65,0x2c,0x74,0x7d,0x3b,0x48,0x68,0x3d,0x56,0x68,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x6c,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x69,0x6c,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x56,0x5f,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x5f,0x2c,0x6e,0x6c,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x57,0x68,0x28,0x29,0x3b,0x56,0x5f,0x3d,0x48,0x68,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x68,0x3d,0x78,0x28,0x28,0x46,0x34,0x2c,0x47,0x68,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x5f,0x3d,0x28,0x6e,0x6c,0x28,0x29,0x2c,0x69,0x6c,0x29,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x57,0x5f,0x3d,0x7b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x3a,0x22,0x68,0x69,0x64,0x64,0x65,0x6e,0x22,0x2c,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x6f,0x78,0x22,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x3a,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x22,0x7d,0x2c,0x47,0x5f,0x3d,0x48,0x5f,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x7b,0x6d,0x61,0x74,0x63,0x68,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x72,0x2c,0x61,0x64,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x65,0x2c,0x74,0x68,0x65,0x6d,0x65,0x3a,0x74,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x69,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x28,0x22,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x22,0x29,0x3b,0x72,0x28,0x7b,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x61,0x3d,0x3e,0x28,0x7b,0x2e,0x2e,0x2e,0x57,0x5f,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x60,0x24,0x7b,0x61,0x7d,0x60,0x7d,0x29,0x7d,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x6e,0x7d,0x29,0x2c,0x65,0x28,0x5b,0x7b,0x22,0x2e,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x3a,0x7b,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x22,0x3a,0x22,0x75,0x6e,0x73,0x65,0x74,0x22,0x7d,0x7d,0x5d,0x2c,0x69,0x28,0x22,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x22,0x29,0x29,0x7d,0x2c,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x3a,0x7b,0x31,0x3a,0x22,0x31,0x22,0x2c,0x32,0x3a,0x22,0x32,0x22,0x2c,0x33,0x3a,0x22,0x33,0x22,0x2c,0x34,0x3a,0x22,0x34,0x22,0x2c,0x35,0x3a,0x22,0x35,0x22,0x2c,0x36,0x3a,0x22,0x36,0x22,0x7d,0x7d,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x7b,0x6c,0x69,0x6e,0x65,0x43,0x6c,0x61,0x6d,0x70,0x3a,0x5b,0x22,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x22,0x5d,0x7d,0x7d,0x29,0x3b,0x47,0x68,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x47,0x5f,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6c,0x28,0x72,0x29,0x7b,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x73,0x22,0x2c,0x5b,0x22,0x54,0x68,0x65,0x20,0x60,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x6f,0x72,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x22,0x2c,0x22,0x43,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x79,0x6f,0x75,0x72,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x20,0x6f,0x72,0x20,0x79,0x6f,0x75,0x72,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x43,0x53,0x53,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x29,0x3b,0x74,0x72,0x79,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x51,0x68,0x28,0x29,0x3b,0x72,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x26,0x26,0x28,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x2d,0x69,0x6e,0x2d,0x63,0x6f,0x72,0x65,0x22,0x2c,0x5b,0x22,0x41,0x73,0x20,0x6f,0x66,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x76,0x33,0x2e,0x33,0x2c,0x20,0x74,0x68,0x65,0x20,0x60,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x6c,0x69,0x6e,0x65,0x2d,0x63,0x6c,0x61,0x6d,0x70,0x60,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x77,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x64,0x20,0x62,0x79,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x22,0x2c,0x22,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x69,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x60,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x60,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x65,0x6c,0x69,0x6d,0x69,0x6e,0x61,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x2e,0x22,0x5d,0x29,0x2c,0x72,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3d,0x72,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x74,0x3d,0x3e,0x74,0x21,0x3d,0x3d,0x65,0x29,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x7b,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x76,0x61,0x72,0x20,0x59,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4b,0x68,0x2c,0x58,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4b,0x68,0x3d,0x28,0x29,0x3d,0x3e,0x21,0x31,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x73,0x2c,0x4a,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x63,0x73,0x3d,0x7b,0x73,0x79,0x6e,0x63,0x3a,0x72,0x3d,0x3e,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x2c,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x61,0x73,0x6b,0x73,0x3a,0x72,0x3d,0x3e,0x5b,0x7b,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x3a,0x21,0x31,0x2c,0x62,0x61,0x73,0x65,0x3a,0x22,0x2e,0x22,0x2c,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x3a,0x5b,0x5d,0x2c,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x3a,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x3a,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x7d,0x5d,0x2c,0x65,0x73,0x63,0x61,0x70,0x65,0x50,0x61,0x74,0x68,0x3a,0x72,0x3d,0x3e,0x72,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x6c,0x2c,0x5a,0x68,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x61,0x6c,0x3d,0x72,0x3d,0x3e,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x65,0x6d,0x2c,0x74,0x6d,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x65,0x6d,0x3d,0x28,0x29,0x3d,0x3e,0x22,0x22,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x6d,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2c,0x74,0x3d,0x65,0x6d,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x21,0x3d,0x3d,0x22,0x2e,0x22,0x26,0x26,0x28,0x65,0x3d,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x65,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x30,0x29,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x31,0x29,0x29,0x29,0x2c,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x30,0x2c,0x32,0x29,0x3d,0x3d,0x3d,0x22,0x2e,0x2f,0x22,0x3f,0x65,0x3d,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x32,0x29,0x3a,0x65,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x30,0x29,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x28,0x31,0x29,0x29,0x2c,0x7b,0x62,0x61,0x73,0x65,0x3a,0x74,0x2c,0x67,0x6c,0x6f,0x62,0x3a,0x65,0x7d,0x7d,0x76,0x61,0x72,0x20,0x69,0x6d,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x74,0x6d,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x73,0x3d,0x78,0x28,0x56,0x65,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x56,0x65,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x3d,0x72,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x72,0x29,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x21,0x3d,0x3d,0x22,0x22,0x3f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x72,0x29,0x29,0x3a,0x21,0x31,0x3b,0x56,0x65,0x2e,0x66,0x69,0x6e,0x64,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x65,0x29,0x3b,0x56,0x65,0x2e,0x65,0x78,0x63,0x65,0x65,0x64,0x73,0x4c,0x69,0x6d,0x69,0x74,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x31,0x2c,0x69,0x29,0x3d,0x3e,0x69,0x3d,0x3d,0x3d,0x21,0x31,0x7c,0x7c,0x21,0x56,0x65,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x72,0x29,0x7c,0x7c,0x21,0x56,0x65,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x65,0x29,0x3f,0x21,0x31,0x3a,0x28,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x65,0x29,0x2d,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x72,0x29,0x29,0x2f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x74,0x29,0x3e,0x3d,0x69,0x3b,0x56,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x4e,0x6f,0x64,0x65,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x30,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x65,0x5d,0x3b,0x21,0x69,0x7c,0x7c,0x28,0x74,0x26,0x26,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x74,0x7c,0x7c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x6f,0x70,0x65,0x6e,0x22,0x7c,0x7c,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x29,0x26,0x26,0x69,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x5c,0x5c,0x22,0x2b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x69,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x64,0x3d,0x21,0x30,0x29,0x7d,0x3b,0x56,0x65,0x2e,0x65,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x42,0x72,0x61,0x63,0x65,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x3f,0x21,0x31,0x3a,0x72,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x73,0x3e,0x3e,0x30,0x2b,0x72,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3e,0x3e,0x30,0x3d,0x3d,0x30,0x3f,0x28,0x72,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x21,0x30,0x2c,0x21,0x30,0x29,0x3a,0x21,0x31,0x3b,0x56,0x65,0x2e,0x69,0x73,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x42,0x72,0x61,0x63,0x65,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x3f,0x21,0x31,0x3a,0x72,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x72,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3f,0x21,0x30,0x3a,0x72,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x73,0x3e,0x3e,0x30,0x2b,0x72,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3e,0x3e,0x30,0x3d,0x3d,0x30,0x7c,0x7c,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x21,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x72,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x21,0x3d,0x3d,0x21,0x30,0x3f,0x28,0x72,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x21,0x30,0x2c,0x21,0x30,0x29,0x3a,0x21,0x31,0x3b,0x56,0x65,0x2e,0x69,0x73,0x4f,0x70,0x65,0x6e,0x4f,0x72,0x43,0x6c,0x6f,0x73,0x65,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x6f,0x70,0x65,0x6e,0x22,0x7c,0x7c,0x72,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x3f,0x21,0x30,0x3a,0x72,0x2e,0x6f,0x70,0x65,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x72,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x3b,0x56,0x65,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x26,0x26,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x61,0x6e,0x67,0x65,0x22,0x26,0x26,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x2c,0x65,0x29,0x2c,0x5b,0x5d,0x29,0x3b,0x56,0x65,0x2e,0x66,0x6c,0x61,0x74,0x74,0x65,0x6e,0x3d,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x69,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x30,0x3b,0x6e,0x3c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6e,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x69,0x5b,0x6e,0x5d,0x3b,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x29,0x3f,0x74,0x28,0x61,0x2c,0x65,0x29,0x3a,0x61,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x72,0x29,0x2c,0x65,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x64,0x73,0x3d,0x78,0x28,0x28,0x4b,0x34,0x2c,0x73,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6e,0x6d,0x3d,0x70,0x73,0x28,0x29,0x3b,0x73,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x28,0x69,0x2c,0x6e,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x26,0x26,0x6e,0x6d,0x2e,0x69,0x73,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x42,0x72,0x61,0x63,0x65,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x69,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x6f,0x3d,0x22,0x22,0x3b,0x69,0x66,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x61,0x7c,0x7c,0x73,0x29,0x26,0x26,0x6e,0x6d,0x2e,0x69,0x73,0x4f,0x70,0x65,0x6e,0x4f,0x72,0x43,0x6c,0x6f,0x73,0x65,0x28,0x69,0x29,0x3f,0x22,0x5c,0x5c,0x22,0x2b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3a,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x6f,0x2b,0x3d,0x74,0x28,0x6c,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x72,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x6d,0x3d,0x78,0x28,0x28,0x58,0x34,0x2c,0x61,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x61,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x72,0x2d,0x72,0x3d,0x3d,0x30,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x21,0x3d,0x3d,0x22,0x22,0x3f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x46,0x69,0x6e,0x69,0x74,0x65,0x3f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x46,0x69,0x6e,0x69,0x74,0x65,0x28,0x2b,0x72,0x29,0x3a,0x69,0x73,0x46,0x69,0x6e,0x69,0x74,0x65,0x28,0x2b,0x72,0x29,0x3a,0x21,0x31,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x67,0x6d,0x3d,0x78,0x28,0x28,0x4a,0x34,0x2c,0x6d,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6c,0x6d,0x3d,0x6f,0x6d,0x28,0x29,0x2c,0x57,0x74,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x6c,0x6d,0x28,0x72,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x52,0x61,0x6e,0x67,0x65,0x3a,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x3b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x6c,0x6d,0x28,0x65,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x52,0x61,0x6e,0x67,0x65,0x3a,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7b,0x72,0x65,0x6c,0x61,0x78,0x5a,0x65,0x72,0x6f,0x73,0x3a,0x21,0x30,0x2c,0x2e,0x2e,0x2e,0x74,0x7d,0x3b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x5a,0x65,0x72,0x6f,0x73,0x3d,0x3d,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x26,0x26,0x28,0x69,0x2e,0x72,0x65,0x6c,0x61,0x78,0x5a,0x65,0x72,0x6f,0x73,0x3d,0x69,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x5a,0x65,0x72,0x6f,0x73,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x2e,0x72,0x65,0x6c,0x61,0x78,0x5a,0x65,0x72,0x6f,0x73,0x29,0x2c,0x61,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x2e,0x73,0x68,0x6f,0x72,0x74,0x68,0x61,0x6e,0x64,0x29,0x2c,0x73,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x29,0x2c,0x6f,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x2e,0x77,0x72,0x61,0x70,0x29,0x2c,0x6c,0x3d,0x72,0x2b,0x22,0x3a,0x22,0x2b,0x65,0x2b,0x22,0x3d,0x22,0x2b,0x6e,0x2b,0x61,0x2b,0x73,0x2b,0x6f,0x3b,0x69,0x66,0x28,0x57,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6c,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x57,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x5b,0x6c,0x5d,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x72,0x2c,0x65,0x29,0x2c,0x66,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x72,0x2c,0x65,0x29,0x3b,0x69,0x66,0x28,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x63,0x2d,0x66,0x29,0x3d,0x3d,0x3d,0x31,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x72,0x2b,0x22,0x7c,0x22,0x2b,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x60,0x28,0x24,0x7b,0x76,0x7d,0x29,0x60,0x3a,0x69,0x2e,0x77,0x72,0x61,0x70,0x3d,0x3d,0x3d,0x21,0x31,0x3f,0x76,0x3a,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x76,0x7d,0x29,0x60,0x7d,0x6c,0x65,0x74,0x20,0x64,0x3d,0x68,0x6d,0x28,0x72,0x29,0x7c,0x7c,0x68,0x6d,0x28,0x65,0x29,0x2c,0x70,0x3d,0x7b,0x6d,0x69,0x6e,0x3a,0x72,0x2c,0x6d,0x61,0x78,0x3a,0x65,0x2c,0x61,0x3a,0x63,0x2c,0x62,0x3a,0x66,0x7d,0x2c,0x68,0x3d,0x5b,0x5d,0x2c,0x62,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x64,0x26,0x26,0x28,0x70,0x2e,0x69,0x73,0x50,0x61,0x64,0x64,0x65,0x64,0x3d,0x64,0x2c,0x70,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x2e,0x6d,0x61,0x78,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x63,0x3c,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x66,0x3c,0x30,0x3f,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x66,0x29,0x3a,0x31,0x3b,0x62,0x3d,0x75,0x6d,0x28,0x76,0x2c,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x63,0x29,0x2c,0x70,0x2c,0x69,0x29,0x2c,0x63,0x3d,0x70,0x2e,0x61,0x3d,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x3e,0x3d,0x30,0x26,0x26,0x28,0x68,0x3d,0x75,0x6d,0x28,0x63,0x2c,0x66,0x2c,0x70,0x2c,0x69,0x29,0x29,0x2c,0x70,0x2e,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x73,0x3d,0x62,0x2c,0x70,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x3d,0x68,0x2c,0x70,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3d,0x51,0x5f,0x28,0x62,0x2c,0x68,0x2c,0x69,0x29,0x2c,0x69,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x70,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3d,0x60,0x28,0x24,0x7b,0x70,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x7d,0x29,0x60,0x3a,0x69,0x2e,0x77,0x72,0x61,0x70,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x28,0x70,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x3d,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x70,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x7d,0x29,0x60,0x29,0x2c,0x57,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x5b,0x6c,0x5d,0x3d,0x70,0x2c,0x70,0x2e,0x72,0x65,0x73,0x75,0x6c,0x74,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x5f,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6f,0x6c,0x28,0x72,0x2c,0x65,0x2c,0x22,0x2d,0x22,0x2c,0x21,0x31,0x2c,0x74,0x29,0x7c,0x7c,0x5b,0x5d,0x2c,0x6e,0x3d,0x6f,0x6c,0x28,0x65,0x2c,0x72,0x2c,0x22,0x22,0x2c,0x21,0x31,0x2c,0x74,0x29,0x7c,0x7c,0x5b,0x5d,0x2c,0x61,0x3d,0x6f,0x6c,0x28,0x72,0x2c,0x65,0x2c,0x22,0x2d,0x3f,0x22,0x2c,0x21,0x30,0x2c,0x74,0x29,0x7c,0x7c,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x61,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x6e,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x31,0x2c,0x69,0x3d,0x31,0x2c,0x6e,0x3d,0x63,0x6d,0x28,0x72,0x2c,0x74,0x29,0x2c,0x61,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x65,0x5d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x72,0x3c,0x3d,0x6e,0x26,0x26,0x6e,0x3c,0x3d,0x65,0x3b,0x29,0x61,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x2c,0x74,0x2b,0x3d,0x31,0x2c,0x6e,0x3d,0x63,0x6d,0x28,0x72,0x2c,0x74,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6e,0x3d,0x70,0x6d,0x28,0x65,0x2b,0x31,0x2c,0x69,0x29,0x2d,0x31,0x3b,0x72,0x3c,0x6e,0x26,0x26,0x6e,0x3c,0x3d,0x65,0x3b,0x29,0x61,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x2c,0x69,0x2b,0x3d,0x31,0x2c,0x6e,0x3d,0x70,0x6d,0x28,0x65,0x2b,0x31,0x2c,0x69,0x29,0x2d,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3d,0x5b,0x2e,0x2e,0x2e,0x61,0x5d,0x2c,0x61,0x2e,0x73,0x6f,0x72,0x74,0x28,0x4a,0x5f,0x29,0x2c,0x61,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x5f,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3a,0x72,0x2c,0x63,0x6f,0x75,0x6e,0x74,0x3a,0x5b,0x5d,0x2c,0x64,0x69,0x67,0x69,0x74,0x73,0x3a,0x30,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x58,0x5f,0x28,0x72,0x2c,0x65,0x29,0x2c,0x6e,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x3d,0x22,0x22,0x2c,0x73,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x30,0x3b,0x6f,0x3c,0x6e,0x3b,0x6f,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x6c,0x2c,0x63,0x5d,0x3d,0x69,0x5b,0x6f,0x5d,0x3b,0x6c,0x3d,0x3d,0x3d,0x63,0x3f,0x61,0x2b,0x3d,0x6c,0x3a,0x6c,0x21,0x3d,0x3d,0x22,0x30,0x22,0x7c,0x7c,0x63,0x21,0x3d,0x3d,0x22,0x39,0x22,0x3f,0x61,0x2b,0x3d,0x5a,0x5f,0x28,0x6c,0x2c,0x63,0x2c,0x74,0x29,0x3a,0x73,0x2b,0x2b,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x26,0x26,0x28,0x61,0x2b,0x3d,0x74,0x2e,0x73,0x68,0x6f,0x72,0x74,0x68,0x61,0x6e,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x22,0x5c,0x5c,0x64,0x22,0x3a,0x22,0x5b,0x30,0x2d,0x39,0x5d,0x22,0x29,0x2c,0x7b,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3a,0x61,0x2c,0x63,0x6f,0x75,0x6e,0x74,0x3a,0x5b,0x73,0x5d,0x2c,0x64,0x69,0x67,0x69,0x74,0x73,0x3a,0x6e,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x59,0x5f,0x28,0x72,0x2c,0x65,0x29,0x2c,0x61,0x3d,0x5b,0x5d,0x2c,0x73,0x3d,0x72,0x2c,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x30,0x3b,0x6c,0x3c,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6c,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x6e,0x5b,0x6c,0x5d,0x2c,0x66,0x3d,0x4b,0x5f,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x73,0x29,0x2c,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x29,0x2c,0x69,0x29,0x2c,0x64,0x3d,0x22,0x22,0x3b,0x69,0x66,0x28,0x21,0x74,0x2e,0x69,0x73,0x50,0x61,0x64,0x64,0x65,0x64,0x26,0x26,0x6f,0x26,0x26,0x6f,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3d,0x3d,0x3d,0x66,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x7b,0x6f,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x6f,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x6f,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x5b,0x30,0x5d,0x29,0x2c,0x6f,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x6f,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2b,0x64,0x6d,0x28,0x6f,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x29,0x2c,0x73,0x3d,0x63,0x2b,0x31,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x74,0x2e,0x69,0x73,0x50,0x61,0x64,0x64,0x65,0x64,0x26,0x26,0x28,0x64,0x3d,0x65,0x45,0x28,0x63,0x2c,0x74,0x2c,0x69,0x29,0x29,0x2c,0x66,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x64,0x2b,0x66,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2b,0x64,0x6d,0x28,0x66,0x2e,0x63,0x6f,0x75,0x6e,0x74,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x29,0x2c,0x73,0x3d,0x63,0x2b,0x31,0x2c,0x6f,0x3d,0x66,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6c,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x73,0x74,0x72,0x69,0x6e,0x67,0x3a,0x6f,0x7d,0x3d,0x73,0x3b,0x21,0x69,0x26,0x26,0x21,0x66,0x6d,0x28,0x65,0x2c,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x6f,0x29,0x26,0x26,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2b,0x6f,0x29,0x2c,0x69,0x26,0x26,0x66,0x6d,0x28,0x65,0x2c,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x6f,0x29,0x26,0x26,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x2b,0x6f,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x72,0x5b,0x69,0x5d,0x2c,0x65,0x5b,0x69,0x5d,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4a,0x5f,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3e,0x65,0x3f,0x31,0x3a,0x65,0x3e,0x72,0x3f,0x2d,0x31,0x3a,0x30,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x69,0x3d,0x3e,0x69,0x5b,0x65,0x5d,0x3d,0x3d,0x3d,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6d,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x65,0x29,0x2b,0x22,0x39,0x22,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x65,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6d,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2d,0x72,0x25,0x4d,0x61,0x74,0x68,0x2e,0x70,0x6f,0x77,0x28,0x31,0x30,0x2c,0x65,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x6d,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x65,0x3d,0x30,0x2c,0x74,0x3d,0x22,0x22,0x5d,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7c,0x7c,0x65,0x3e,0x31,0x3f,0x60,0x7b,0x24,0x7b,0x65,0x2b,0x28,0x74,0x3f,0x22,0x2c,0x22,0x2b,0x74,0x3a,0x22,0x22,0x29,0x7d,0x7d,0x60,0x3a,0x22,0x22,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5a,0x5f,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x5b,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x65,0x2d,0x72,0x3d,0x3d,0x31,0x3f,0x22,0x22,0x3a,0x22,0x2d,0x22,0x7d,0x24,0x7b,0x65,0x7d,0x5d,0x60,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x6d,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x2f,0x5e,0x2d,0x3f,0x28,0x30,0x2b,0x29,0x5c,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x45,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x2e,0x69,0x73,0x50,0x61,0x64,0x64,0x65,0x64,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x65,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x2d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x6e,0x3d,0x74,0x2e,0x72,0x65,0x6c,0x61,0x78,0x5a,0x65,0x72,0x6f,0x73,0x21,0x3d,0x3d,0x21,0x31,0x3b,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x69,0x29,0x7b,0x63,0x61,0x73,0x65,0x20,0x30,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x3b,0x63,0x61,0x73,0x65,0x20,0x31,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x22,0x30,0x3f,0x22,0x3a,0x22,0x30,0x22,0x3b,0x63,0x61,0x73,0x65,0x20,0x32,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x22,0x30,0x7b,0x30,0x2c,0x32,0x7d,0x22,0x3a,0x22,0x30,0x30,0x22,0x3b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x60,0x30,0x7b,0x30,0x2c,0x24,0x7b,0x69,0x7d,0x7d,0x60,0x3a,0x60,0x30,0x7b,0x24,0x7b,0x69,0x7d,0x7d,0x60,0x7d,0x7d,0x57,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x3d,0x7b,0x7d,0x3b,0x57,0x74,0x2e,0x63,0x6c,0x65,0x61,0x72,0x43,0x61,0x63,0x68,0x65,0x3d,0x28,0x29,0x3d,0x3e,0x57,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x3d,0x7b,0x7d,0x3b,0x6d,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x57,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x66,0x6c,0x3d,0x78,0x28,0x28,0x5a,0x34,0x2c,0x41,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x74,0x45,0x3d,0x28,0x42,0x6e,0x28,0x29,0x2c,0x4e,0x6e,0x29,0x2c,0x79,0x6d,0x3d,0x67,0x6d,0x28,0x29,0x2c,0x62,0x6d,0x3d,0x72,0x3d,0x3e,0x72,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x2c,0x72,0x45,0x3d,0x72,0x3d,0x3e,0x65,0x3d,0x3e,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x65,0x29,0x3a,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x29,0x2c,0x6c,0x6c,0x3d,0x72,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x72,0x21,0x3d,0x3d,0x22,0x22,0x2c,0x52,0x69,0x3d,0x72,0x3d,0x3e,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x2b,0x72,0x29,0x2c,0x75,0x6c,0x3d,0x72,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x60,0x24,0x7b,0x72,0x7d,0x60,0x2c,0x74,0x3d,0x2d,0x31,0x3b,0x69,0x66,0x28,0x65,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x26,0x26,0x28,0x65,0x3d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x2c,0x65,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x65,0x5b,0x2b,0x2b,0x74,0x5d,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x3b,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3e,0x30,0x7d,0x2c,0x69,0x45,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x21,0x30,0x3a,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x6e,0x45,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x3f,0x22,0x2d,0x22,0x3a,0x22,0x22,0x3b,0x69,0x26,0x26,0x28,0x72,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x2c,0x72,0x3d,0x69,0x2b,0x72,0x2e,0x70,0x61,0x64,0x53,0x74,0x61,0x72,0x74,0x28,0x69,0x3f,0x65,0x2d,0x31,0x3a,0x65,0x2c,0x22,0x30,0x22,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x21,0x31,0x3f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x29,0x3a,0x72,0x7d,0x2c,0x77,0x6d,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x3f,0x22,0x2d,0x22,0x3a,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x74,0x26,0x26,0x28,0x72,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x65,0x2d,0x2d,0x29,0x3b,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x65,0x3b,0x29,0x72,0x3d,0x22,0x30,0x22,0x2b,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3f,0x22,0x2d,0x22,0x2b,0x72,0x3a,0x72,0x7d,0x2c,0x73,0x45,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x72,0x2e,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x73,0x2c,0x6f,0x29,0x3d,0x3e,0x73,0x3c,0x6f,0x3f,0x2d,0x31,0x3a,0x73,0x3e,0x6f,0x3f,0x31,0x3a,0x30,0x29,0x2c,0x72,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x73,0x2c,0x6f,0x29,0x3d,0x3e,0x73,0x3c,0x6f,0x3f,0x2d,0x31,0x3a,0x73,0x3e,0x6f,0x3f,0x31,0x3a,0x30,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x22,0x22,0x3a,0x22,0x3f,0x3a,0x22,0x2c,0x69,0x3d,0x22,0x22,0x2c,0x6e,0x3d,0x22,0x22,0x2c,0x61,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x29,0x2c,0x72,0x2e,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6e,0x3d,0x60,0x2d,0x28,0x24,0x7b,0x74,0x7d,0x24,0x7b,0x72,0x2e,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x29,0x60,0x29,0x2c,0x69,0x26,0x26,0x6e,0x3f,0x61,0x3d,0x60,0x24,0x7b,0x69,0x7d,0x7c,0x24,0x7b,0x6e,0x7d,0x60,0x3a,0x61,0x3d,0x69,0x7c,0x7c,0x6e,0x2c,0x65,0x2e,0x77,0x72,0x61,0x70,0x3f,0x60,0x28,0x24,0x7b,0x74,0x7d,0x24,0x7b,0x61,0x7d,0x29,0x60,0x3a,0x61,0x7d,0x2c,0x76,0x6d,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x6d,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x77,0x72,0x61,0x70,0x3a,0x21,0x31,0x2c,0x2e,0x2e,0x2e,0x69,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x5b,0x24,0x7b,0x6e,0x7d,0x2d,0x24,0x7b,0x61,0x7d,0x5d,0x60,0x7d,0x2c,0x78,0x6d,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x77,0x72,0x61,0x70,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x22,0x22,0x3a,0x22,0x3f,0x3a,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3f,0x60,0x28,0x24,0x7b,0x6e,0x7d,0x24,0x7b,0x72,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x29,0x60,0x3a,0x72,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x79,0x6d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7d,0x2c,0x6b,0x6d,0x3d,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x52,0x61,0x6e,0x67,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x3a,0x20,0x22,0x2b,0x74,0x45,0x2e,0x69,0x6e,0x73,0x70,0x65,0x63,0x74,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x29,0x2c,0x53,0x6d,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x52,0x61,0x6e,0x67,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6b,0x6d,0x28,0x5b,0x72,0x2c,0x65,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x2c,0x61,0x45,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x52,0x61,0x6e,0x67,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x74,0x65,0x70,0x20,0x22,0x24,0x7b,0x72,0x7d,0x22,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x2c,0x6f,0x45,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x31,0x2c,0x69,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x72,0x29,0x2c,0x61,0x3d,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x21,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x6e,0x29,0x7c,0x7c,0x21,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x61,0x29,0x29,0x7b,0x69,0x66,0x28,0x69,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x52,0x61,0x6e,0x67,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6b,0x6d,0x28,0x5b,0x72,0x2c,0x65,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x7d,0x6e,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x6e,0x3d,0x30,0x29,0x2c,0x61,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x61,0x3d,0x30,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x6e,0x3e,0x61,0x2c,0x6f,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x29,0x2c,0x6c,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x29,0x2c,0x63,0x3d,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x74,0x29,0x3b,0x74,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x74,0x29,0x2c,0x31,0x29,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x75,0x6c,0x28,0x6f,0x29,0x7c,0x7c,0x75,0x6c,0x28,0x6c,0x29,0x7c,0x7c,0x75,0x6c,0x28,0x63,0x29,0x2c,0x64,0x3d,0x66,0x3f,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6c,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x30,0x2c,0x70,0x3d,0x66,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x69,0x45,0x28,0x72,0x2c,0x65,0x2c,0x69,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x2c,0x68,0x3d,0x69,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x7c,0x7c,0x72,0x45,0x28,0x70,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x26,0x26,0x74,0x3d,0x3d,0x3d,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6d,0x28,0x77,0x6d,0x28,0x72,0x2c,0x64,0x29,0x2c,0x77,0x6d,0x28,0x65,0x2c,0x64,0x29,0x2c,0x21,0x30,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x7b,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x73,0x3a,0x5b,0x5d,0x2c,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x2c,0x76,0x3d,0x6b,0x3d,0x3e,0x62,0x5b,0x6b,0x3c,0x30,0x3f,0x22,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x73,0x22,0x3a,0x22,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x73,0x22,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x6b,0x29,0x29,0x2c,0x79,0x3d,0x5b,0x5d,0x2c,0x77,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x73,0x3f,0x6e,0x3e,0x3d,0x61,0x3a,0x6e,0x3c,0x3d,0x61,0x3b,0x29,0x69,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x74,0x3e,0x31,0x3f,0x76,0x28,0x6e,0x29,0x3a,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x45,0x28,0x68,0x28,0x6e,0x2c,0x77,0x29,0x2c,0x64,0x2c,0x70,0x29,0x29,0x2c,0x6e,0x3d,0x73,0x3f,0x6e,0x2d,0x74,0x3a,0x6e,0x2b,0x74,0x2c,0x77,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x74,0x3e,0x31,0x3f,0x73,0x45,0x28,0x62,0x2c,0x69,0x29,0x3a,0x78,0x6d,0x28,0x79,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x7b,0x77,0x72,0x61,0x70,0x3a,0x21,0x31,0x2c,0x2e,0x2e,0x2e,0x69,0x7d,0x29,0x3a,0x79,0x7d,0x2c,0x6c,0x45,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x31,0x2c,0x69,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x52,0x69,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x7c,0x7c,0x21,0x52,0x69,0x28,0x65,0x29,0x26,0x26,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x6d,0x28,0x72,0x2c,0x65,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x7c,0x7c,0x28,0x70,0x3d,0x3e,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x66,0x72,0x6f,0x6d,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x28,0x70,0x29,0x29,0x2c,0x61,0x3d,0x60,0x24,0x7b,0x72,0x7d,0x60,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x73,0x3d,0x60,0x24,0x7b,0x65,0x7d,0x60,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x6f,0x3d,0x61,0x3e,0x73,0x2c,0x6c,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x61,0x2c,0x73,0x29,0x2c,0x63,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x61,0x2c,0x73,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x26,0x26,0x74,0x3d,0x3d,0x3d,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6d,0x28,0x6c,0x2c,0x63,0x2c,0x21,0x31,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x5b,0x5d,0x2c,0x64,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6f,0x3f,0x61,0x3e,0x3d,0x73,0x3a,0x61,0x3c,0x3d,0x73,0x3b,0x29,0x66,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x28,0x61,0x2c,0x64,0x29,0x29,0x2c,0x61,0x3d,0x6f,0x3f,0x61,0x2d,0x74,0x3a,0x61,0x2b,0x74,0x2c,0x64,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x78,0x6d,0x28,0x66,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x7b,0x77,0x72,0x61,0x70,0x3a,0x21,0x31,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x69,0x7d,0x29,0x3a,0x66,0x7d,0x2c,0x68,0x73,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x6c,0x6c,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x72,0x5d,0x3b,0x69,0x66,0x28,0x21,0x6c,0x6c,0x28,0x72,0x29,0x7c,0x7c,0x21,0x6c,0x6c,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x6d,0x28,0x72,0x2c,0x65,0x2c,0x69,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x73,0x28,0x72,0x2c,0x65,0x2c,0x31,0x2c,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3a,0x74,0x7d,0x29,0x3b,0x69,0x66,0x28,0x62,0x6d,0x28,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x73,0x28,0x72,0x2c,0x65,0x2c,0x30,0x2c,0x74,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x7b,0x2e,0x2e,0x2e,0x69,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x6e,0x2e,0x77,0x72,0x61,0x70,0x3d,0x21,0x30,0x29,0x2c,0x74,0x3d,0x74,0x7c,0x7c,0x6e,0x2e,0x73,0x74,0x65,0x70,0x7c,0x7c,0x31,0x2c,0x52,0x69,0x28,0x74,0x29,0x3f,0x52,0x69,0x28,0x72,0x29,0x26,0x26,0x52,0x69,0x28,0x65,0x29,0x3f,0x6f,0x45,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x6e,0x29,0x3a,0x6c,0x45,0x28,0x72,0x2c,0x65,0x2c,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x74,0x29,0x2c,0x31,0x29,0x2c,0x6e,0x29,0x3a,0x74,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x21,0x62,0x6d,0x28,0x74,0x29,0x3f,0x61,0x45,0x28,0x74,0x2c,0x6e,0x29,0x3a,0x68,0x73,0x28,0x72,0x2c,0x65,0x2c,0x31,0x2c,0x74,0x29,0x7d,0x3b,0x41,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x68,0x73,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x45,0x6d,0x3d,0x78,0x28,0x28,0x65,0x36,0x2c,0x5f,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x75,0x45,0x3d,0x66,0x6c,0x28,0x29,0x2c,0x43,0x6d,0x3d,0x70,0x73,0x28,0x29,0x2c,0x66,0x45,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x28,0x69,0x2c,0x6e,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x43,0x6d,0x2e,0x69,0x73,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x42,0x72,0x61,0x63,0x65,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x69,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x6f,0x3d,0x61,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x6c,0x3d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x22,0x5c,0x5c,0x22,0x3a,0x22,0x22,0x2c,0x63,0x3d,0x22,0x22,0x3b,0x69,0x66,0x28,0x69,0x2e,0x69,0x73,0x4f,0x70,0x65,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x69,0x2e,0x69,0x73,0x43,0x6c,0x6f,0x73,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x2b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x6f,0x70,0x65,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x3f,0x6c,0x2b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x28,0x22,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x3f,0x6c,0x2b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x29,0x22,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x70,0x72,0x65,0x76,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x3f,0x22,0x22,0x3a,0x6f,0x3f,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x7c,0x22,0x3b,0x69,0x66,0x28,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x69,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x43,0x6d,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x64,0x3d,0x75,0x45,0x28,0x2e,0x2e,0x2e,0x66,0x2c,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x77,0x72,0x61,0x70,0x3a,0x21,0x31,0x2c,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x69,0x66,0x28,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x3f,0x60,0x28,0x24,0x7b,0x64,0x7d,0x29,0x60,0x3a,0x64,0x7d,0x69,0x66,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x66,0x20,0x6f,0x66,0x20,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x63,0x2b,0x3d,0x74,0x28,0x66,0x2c,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x28,0x72,0x29,0x7d,0x3b,0x5f,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x45,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x52,0x6d,0x3d,0x78,0x28,0x28,0x74,0x36,0x2c,0x54,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x63,0x45,0x3d,0x66,0x6c,0x28,0x29,0x2c,0x4f,0x6d,0x3d,0x64,0x73,0x28,0x29,0x2c,0x6d,0x72,0x3d,0x70,0x73,0x28,0x29,0x2c,0x47,0x74,0x3d,0x28,0x72,0x3d,0x22,0x22,0x2c,0x65,0x3d,0x22,0x22,0x2c,0x74,0x3d,0x21,0x31,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x72,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x2c,0x65,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x2c,0x21,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x69,0x66,0x28,0x21,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3f,0x6d,0x72,0x2e,0x66,0x6c,0x61,0x74,0x74,0x65,0x6e,0x28,0x65,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x60,0x7b,0x24,0x7b,0x6e,0x7d,0x7d,0x60,0x29,0x3a,0x65,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x72,0x29,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x47,0x74,0x28,0x61,0x2c,0x65,0x2c,0x74,0x29,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x65,0x29,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x61,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x61,0x3d,0x60,0x7b,0x24,0x7b,0x61,0x7d,0x7d,0x60,0x29,0x2c,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x29,0x3f,0x47,0x74,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x29,0x3a,0x6e,0x2b,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x72,0x2e,0x66,0x6c,0x61,0x74,0x74,0x65,0x6e,0x28,0x69,0x29,0x7d,0x2c,0x70,0x45,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x72,0x61,0x6e,0x67,0x65,0x4c,0x69,0x6d,0x69,0x74,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x31,0x65,0x33,0x3a,0x65,0x2e,0x72,0x61,0x6e,0x67,0x65,0x4c,0x69,0x6d,0x69,0x74,0x2c,0x69,0x3d,0x28,0x6e,0x2c,0x61,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6e,0x2e,0x71,0x75,0x65,0x75,0x65,0x3d,0x5b,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x61,0x2c,0x6f,0x3d,0x61,0x2e,0x71,0x75,0x65,0x75,0x65,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x73,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x26,0x26,0x73,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x29,0x73,0x3d,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x6f,0x3d,0x73,0x2e,0x71,0x75,0x65,0x75,0x65,0x3b,0x69,0x66,0x28,0x6e,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x7c,0x7c,0x6e,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x29,0x7b,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x47,0x74,0x28,0x6f,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x4f,0x6d,0x28,0x6e,0x2c,0x65,0x29,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x69,0x66,0x28,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x26,0x26,0x6e,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x32,0x29,0x7b,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x47,0x74,0x28,0x6f,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x5b,0x22,0x7b,0x7d,0x22,0x5d,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x69,0x66,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x6e,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3e,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x6d,0x72,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3b,0x69,0x66,0x28,0x6d,0x72,0x2e,0x65,0x78,0x63,0x65,0x65,0x64,0x73,0x4c,0x69,0x6d,0x69,0x74,0x28,0x2e,0x2e,0x2e,0x64,0x2c,0x65,0x2e,0x73,0x74,0x65,0x70,0x2c,0x74,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x52,0x61,0x6e,0x67,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x65,0x78,0x70,0x61,0x6e,0x64,0x65,0x64,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x65,0x78,0x63,0x65,0x65,0x64,0x73,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x6c,0x69,0x6d,0x69,0x74,0x2e,0x20,0x55,0x73,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x4c,0x69,0x6d,0x69,0x74,0x20,0x74,0x6f,0x20,0x69,0x6e,0x63,0x72,0x65,0x61,0x73,0x65,0x20,0x6f,0x72,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x6d,0x69,0x74,0x2e,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x63,0x45,0x28,0x2e,0x2e,0x2e,0x64,0x2c,0x65,0x29,0x3b,0x70,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x28,0x70,0x3d,0x4f,0x6d,0x28,0x6e,0x2c,0x65,0x29,0x29,0x2c,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x47,0x74,0x28,0x6f,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x70,0x29,0x29,0x2c,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x6d,0x72,0x2e,0x65,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x42,0x72,0x61,0x63,0x65,0x28,0x6e,0x29,0x2c,0x63,0x3d,0x6e,0x2e,0x71,0x75,0x65,0x75,0x65,0x2c,0x66,0x3d,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x66,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x26,0x26,0x66,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x29,0x66,0x3d,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x63,0x3d,0x66,0x2e,0x71,0x75,0x65,0x75,0x65,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x64,0x3d,0x30,0x3b,0x64,0x3c,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x64,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x64,0x5d,0x3b,0x69,0x66,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x26,0x26,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x29,0x7b,0x64,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x63,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x22,0x29,0x2c,0x63,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x22,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x29,0x7b,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x47,0x74,0x28,0x6f,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x63,0x2c,0x6c,0x29,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x70,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x6f,0x70,0x65,0x6e,0x22,0x29,0x7b,0x63,0x2e,0x70,0x75,0x73,0x68,0x28,0x47,0x74,0x28,0x63,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x70,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x69,0x28,0x70,0x2c,0x6e,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x72,0x2e,0x66,0x6c,0x61,0x74,0x74,0x65,0x6e,0x28,0x69,0x28,0x72,0x29,0x29,0x7d,0x3b,0x54,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x70,0x45,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x49,0x6d,0x3d,0x78,0x28,0x28,0x72,0x36,0x2c,0x50,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x50,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x4d,0x41,0x58,0x5f,0x4c,0x45,0x4e,0x47,0x54,0x48,0x3a,0x31,0x30,0x32,0x34,0x2a,0x36,0x34,0x2c,0x43,0x48,0x41,0x52,0x5f,0x30,0x3a,0x22,0x30,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x39,0x3a,0x22,0x39,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x55,0x50,0x50,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x41,0x3a,0x22,0x41,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x4f,0x57,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x41,0x3a,0x22,0x61,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x55,0x50,0x50,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x5a,0x3a,0x22,0x5a,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x4f,0x57,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x5a,0x3a,0x22,0x7a,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x22,0x28,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x22,0x29,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x53,0x54,0x45,0x52,0x49,0x53,0x4b,0x3a,0x22,0x2a,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x4d,0x50,0x45,0x52,0x53,0x41,0x4e,0x44,0x3a,0x22,0x26,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x54,0x3a,0x22,0x40,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x42,0x41,0x43,0x4b,0x53,0x4c,0x41,0x53,0x48,0x3a,0x22,0x5c,0x5c,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x42,0x41,0x43,0x4b,0x54,0x49,0x43,0x4b,0x3a,0x22,0x60,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x41,0x52,0x52,0x49,0x41,0x47,0x45,0x5f,0x52,0x45,0x54,0x55,0x52,0x4e,0x3a,0x22,0x5c,0x72,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x49,0x52,0x43,0x55,0x4d,0x46,0x4c,0x45,0x58,0x5f,0x41,0x43,0x43,0x45,0x4e,0x54,0x3a,0x22,0x5e,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x4f,0x4c,0x4f,0x4e,0x3a,0x22,0x3a,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x4f,0x4d,0x4d,0x41,0x3a,0x22,0x2c,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x4c,0x4c,0x41,0x52,0x3a,0x22,0x24,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x54,0x3a,0x22,0x2e,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x27,0x22,0x27,0x2c,0x43,0x48,0x41,0x52,0x5f,0x45,0x51,0x55,0x41,0x4c,0x3a,0x22,0x3d,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x45,0x58,0x43,0x4c,0x41,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x5f,0x4d,0x41,0x52,0x4b,0x3a,0x22,0x21,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x46,0x4f,0x52,0x4d,0x5f,0x46,0x45,0x45,0x44,0x3a,0x22,0x5c,0x66,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x46,0x4f,0x52,0x57,0x41,0x52,0x44,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x22,0x2f,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x48,0x41,0x53,0x48,0x3a,0x22,0x23,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x48,0x59,0x50,0x48,0x45,0x4e,0x5f,0x4d,0x49,0x4e,0x55,0x53,0x3a,0x22,0x2d,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x41,0x4e,0x47,0x4c,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x22,0x3c,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x22,0x7b,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x22,0x5b,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x49,0x4e,0x45,0x5f,0x46,0x45,0x45,0x44,0x3a,0x60,0x0a,0x60,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4e,0x4f,0x5f,0x42,0x52,0x45,0x41,0x4b,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x22,0x5c,0x78,0x41,0x30,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x50,0x45,0x52,0x43,0x45,0x4e,0x54,0x3a,0x22,0x25,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x50,0x4c,0x55,0x53,0x3a,0x22,0x2b,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x51,0x55,0x45,0x53,0x54,0x49,0x4f,0x4e,0x5f,0x4d,0x41,0x52,0x4b,0x3a,0x22,0x3f,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x41,0x4e,0x47,0x4c,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x22,0x3e,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x22,0x7d,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x22,0x5d,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x45,0x4d,0x49,0x43,0x4f,0x4c,0x4f,0x4e,0x3a,0x22,0x3b,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x49,0x4e,0x47,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x22,0x27,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x22,0x20,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x54,0x41,0x42,0x3a,0x22,0x09,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x55,0x4e,0x44,0x45,0x52,0x53,0x43,0x4f,0x52,0x45,0x3a,0x22,0x5f,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x56,0x45,0x52,0x54,0x49,0x43,0x41,0x4c,0x5f,0x4c,0x49,0x4e,0x45,0x3a,0x22,0x7c,0x22,0x2c,0x43,0x48,0x41,0x52,0x5f,0x5a,0x45,0x52,0x4f,0x5f,0x57,0x49,0x44,0x54,0x48,0x5f,0x4e,0x4f,0x42,0x52,0x45,0x41,0x4b,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x22,0x5c,0x75,0x46,0x45,0x46,0x46,0x22,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x6d,0x3d,0x78,0x28,0x28,0x69,0x36,0x2c,0x4c,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x64,0x45,0x3d,0x64,0x73,0x28,0x29,0x2c,0x7b,0x4d,0x41,0x58,0x5f,0x4c,0x45,0x4e,0x47,0x54,0x48,0x3a,0x44,0x6d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x42,0x41,0x43,0x4b,0x53,0x4c,0x41,0x53,0x48,0x3a,0x63,0x6c,0x2c,0x43,0x48,0x41,0x52,0x5f,0x42,0x41,0x43,0x4b,0x54,0x49,0x43,0x4b,0x3a,0x68,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x4f,0x4d,0x4d,0x41,0x3a,0x6d,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x54,0x3a,0x67,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x79,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x62,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x77,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x76,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x71,0x6d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x24,0x6d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x78,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x49,0x4e,0x47,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x6b,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4e,0x4f,0x5f,0x42,0x52,0x45,0x41,0x4b,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x53,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x5a,0x45,0x52,0x4f,0x5f,0x57,0x49,0x44,0x54,0x48,0x5f,0x4e,0x4f,0x42,0x52,0x45,0x41,0x4b,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x41,0x45,0x7d,0x3d,0x49,0x6d,0x28,0x29,0x2c,0x43,0x45,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x7c,0x7c,0x7b,0x7d,0x2c,0x69,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x44,0x6d,0x2c,0x74,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x44,0x6d,0x3b,0x69,0x66,0x28,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x69,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x70,0x75,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x28,0x24,0x7b,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x29,0x2c,0x20,0x65,0x78,0x63,0x65,0x65,0x64,0x73,0x20,0x6d,0x61,0x78,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x28,0x24,0x7b,0x69,0x7d,0x29,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x72,0x6f,0x6f,0x74,0x22,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x72,0x2c,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x2c,0x61,0x3d,0x5b,0x6e,0x5d,0x2c,0x73,0x3d,0x6e,0x2c,0x6f,0x3d,0x6e,0x2c,0x6c,0x3d,0x30,0x2c,0x63,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x66,0x3d,0x30,0x2c,0x64,0x3d,0x30,0x2c,0x70,0x2c,0x68,0x3d,0x7b,0x7d,0x2c,0x62,0x3d,0x28,0x29,0x3d,0x3e,0x72,0x5b,0x66,0x2b,0x2b,0x5d,0x2c,0x76,0x3d,0x79,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x26,0x26,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x22,0x26,0x26,0x28,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x2c,0x6f,0x26,0x26,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x7b,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x79,0x29,0x2c,0x79,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x73,0x2c,0x79,0x2e,0x70,0x72,0x65,0x76,0x3d,0x6f,0x2c,0x6f,0x3d,0x79,0x2c,0x79,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x6f,0x73,0x22,0x7d,0x29,0x3b,0x66,0x3c,0x63,0x3b,0x29,0x69,0x66,0x28,0x73,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x70,0x3d,0x62,0x28,0x29,0x2c,0x21,0x28,0x70,0x3d,0x3d,0x3d,0x41,0x45,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x53,0x45,0x29,0x29,0x7b,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x63,0x6c,0x29,0x7b,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x28,0x65,0x2e,0x6b,0x65,0x65,0x70,0x45,0x73,0x63,0x61,0x70,0x69,0x6e,0x67,0x3f,0x70,0x3a,0x22,0x22,0x29,0x2b,0x62,0x28,0x29,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x24,0x6d,0x29,0x7b,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x5c,0x5c,0x22,0x2b,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x71,0x6d,0x29,0x7b,0x6c,0x2b,0x2b,0x3b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x21,0x30,0x2c,0x77,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x66,0x3c,0x63,0x26,0x26,0x28,0x77,0x3d,0x62,0x28,0x29,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x70,0x2b,0x3d,0x77,0x2c,0x77,0x3d,0x3d,0x3d,0x71,0x6d,0x29,0x7b,0x6c,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x63,0x6c,0x29,0x7b,0x70,0x2b,0x3d,0x62,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x24,0x6d,0x26,0x26,0x28,0x6c,0x2d,0x2d,0x2c,0x6c,0x3d,0x3d,0x3d,0x30,0x29,0x29,0x62,0x72,0x65,0x61,0x6b,0x7d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x79,0x45,0x29,0x7b,0x73,0x3d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x2c,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x62,0x45,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x29,0x7b,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x73,0x3d,0x61,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x2c,0x73,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x78,0x45,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x6b,0x45,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x68,0x45,0x29,0x7b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x70,0x2c,0x77,0x3b,0x66,0x6f,0x72,0x28,0x65,0x2e,0x6b,0x65,0x65,0x70,0x51,0x75,0x6f,0x74,0x65,0x73,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x70,0x3d,0x22,0x22,0x29,0x3b,0x66,0x3c,0x63,0x26,0x26,0x28,0x77,0x3d,0x62,0x28,0x29,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x63,0x6c,0x29,0x7b,0x70,0x2b,0x3d,0x77,0x2b,0x62,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x79,0x29,0x7b,0x65,0x2e,0x6b,0x65,0x65,0x70,0x51,0x75,0x6f,0x74,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x70,0x2b,0x3d,0x77,0x29,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x70,0x2b,0x3d,0x77,0x7d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x77,0x45,0x29,0x7b,0x64,0x2b,0x2b,0x3b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x22,0x24,0x22,0x7c,0x7c,0x73,0x2e,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x3b,0x73,0x3d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x2c,0x6f,0x70,0x65,0x6e,0x3a,0x21,0x30,0x2c,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x21,0x31,0x2c,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x3a,0x79,0x2c,0x64,0x65,0x70,0x74,0x68,0x3a,0x64,0x2c,0x63,0x6f,0x6d,0x6d,0x61,0x73,0x3a,0x30,0x2c,0x72,0x61,0x6e,0x67,0x65,0x73,0x3a,0x30,0x2c,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x6f,0x70,0x65,0x6e,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x76,0x45,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x29,0x7b,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x79,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x3b,0x73,0x3d,0x61,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x73,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x3d,0x21,0x30,0x2c,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x79,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x2c,0x64,0x2d,0x2d,0x2c,0x73,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x6d,0x45,0x26,0x26,0x64,0x3e,0x30,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3e,0x30,0x29,0x7b,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3d,0x30,0x3b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x3b,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x79,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x64,0x45,0x28,0x73,0x29,0x7d,0x5d,0x7d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x2c,0x73,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x73,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x67,0x45,0x26,0x26,0x64,0x3e,0x30,0x26,0x26,0x73,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x73,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x69,0x66,0x28,0x64,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x22,0x29,0x7b,0x69,0x66,0x28,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x3d,0x5b,0x5d,0x2c,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x70,0x2c,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x72,0x61,0x6e,0x67,0x65,0x22,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x33,0x26,0x26,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x35,0x29,0x7b,0x73,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x21,0x30,0x2c,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x3d,0x30,0x2c,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x2b,0x2b,0x2c,0x73,0x2e,0x61,0x72,0x67,0x73,0x3d,0x5b,0x5d,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x61,0x6e,0x67,0x65,0x22,0x29,0x7b,0x79,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x79,0x5b,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x77,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x70,0x2c,0x6f,0x3d,0x77,0x2c,0x73,0x2e,0x72,0x61,0x6e,0x67,0x65,0x73,0x2d,0x2d,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x6f,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x7d,0x64,0x6f,0x20,0x69,0x66,0x28,0x73,0x3d,0x61,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x73,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x29,0x7b,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x6b,0x3d,0x3e,0x7b,0x6b,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x6b,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x6f,0x70,0x65,0x6e,0x22,0x26,0x26,0x28,0x6b,0x2e,0x69,0x73,0x4f,0x70,0x65,0x6e,0x3d,0x21,0x30,0x29,0x2c,0x6b,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x22,0x26,0x26,0x28,0x6b,0x2e,0x69,0x73,0x43,0x6c,0x6f,0x73,0x65,0x3d,0x21,0x30,0x29,0x2c,0x6b,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x28,0x6b,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x2c,0x6b,0x2e,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x3d,0x21,0x30,0x29,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x77,0x3d,0x79,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x73,0x29,0x3b,0x79,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x77,0x2c,0x31,0x2c,0x2e,0x2e,0x2e,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x7d,0x77,0x68,0x69,0x6c,0x65,0x28,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x65,0x6f,0x73,0x22,0x7d,0x29,0x2c,0x6e,0x7d,0x3b,0x4c,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x43,0x45,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x46,0x6d,0x3d,0x78,0x28,0x28,0x6e,0x36,0x2c,0x42,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x4e,0x6d,0x3d,0x64,0x73,0x28,0x29,0x2c,0x5f,0x45,0x3d,0x45,0x6d,0x28,0x29,0x2c,0x45,0x45,0x3d,0x52,0x6d,0x28,0x29,0x2c,0x4f,0x45,0x3d,0x4d,0x6d,0x28,0x29,0x2c,0x4c,0x65,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x4c,0x65,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x69,0x2c,0x65,0x29,0x3b,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x3f,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x6e,0x29,0x3a,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x4c,0x65,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x72,0x2c,0x65,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x65,0x2e,0x65,0x78,0x70,0x61,0x6e,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x65,0x2e,0x6e,0x6f,0x64,0x75,0x70,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x74,0x3d,0x5b,0x2e,0x2e,0x2e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x74,0x29,0x5d,0x29,0x2c,0x74,0x7d,0x3b,0x4c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x4f,0x45,0x28,0x72,0x2c,0x65,0x29,0x3b,0x4c,0x65,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x4e,0x6d,0x28,0x4c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x2c,0x65,0x29,0x2c,0x65,0x29,0x3a,0x4e,0x6d,0x28,0x72,0x2c,0x65,0x29,0x3b,0x4c,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x72,0x3d,0x4c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x2c,0x65,0x29,0x29,0x2c,0x5f,0x45,0x28,0x72,0x2c,0x65,0x29,0x29,0x3b,0x4c,0x65,0x2e,0x65,0x78,0x70,0x61,0x6e,0x64,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x28,0x72,0x3d,0x4c,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x2c,0x65,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x45,0x45,0x28,0x72,0x2c,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6e,0x6f,0x65,0x6d,0x70,0x74,0x79,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x29,0x2c,0x65,0x2e,0x6e,0x6f,0x64,0x75,0x70,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x74,0x3d,0x5b,0x2e,0x2e,0x2e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x74,0x29,0x5d,0x29,0x2c,0x74,0x7d,0x3b,0x4c,0x65,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x72,0x3d,0x3d,0x3d,0x22,0x22,0x7c,0x7c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x33,0x3f,0x5b,0x72,0x5d,0x3a,0x65,0x2e,0x65,0x78,0x70,0x61,0x6e,0x64,0x21,0x3d,0x3d,0x21,0x30,0x3f,0x4c,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x72,0x2c,0x65,0x29,0x3a,0x4c,0x65,0x2e,0x65,0x78,0x70,0x61,0x6e,0x64,0x28,0x72,0x2c,0x65,0x29,0x3b,0x42,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4c,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x69,0x3d,0x78,0x28,0x28,0x73,0x36,0x2c,0x48,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x54,0x45,0x3d,0x28,0x65,0x74,0x28,0x29,0x2c,0x55,0x72,0x29,0x2c,0x61,0x74,0x3d,0x22,0x5c,0x5c,0x5c,0x5c,0x2f,0x22,0x2c,0x6a,0x6d,0x3d,0x60,0x5b,0x5e,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x60,0x2c,0x79,0x74,0x3d,0x22,0x5c,0x5c,0x2e,0x22,0x2c,0x52,0x45,0x3d,0x22,0x5c,0x5c,0x2b,0x22,0x2c,0x50,0x45,0x3d,0x22,0x5c,0x5c,0x3f,0x22,0x2c,0x6d,0x73,0x3d,0x22,0x5c,0x5c,0x2f,0x22,0x2c,0x49,0x45,0x3d,0x22,0x28,0x3f,0x3d,0x2e,0x29,0x22,0x2c,0x7a,0x6d,0x3d,0x22,0x5b,0x5e,0x2f,0x5d,0x22,0x2c,0x70,0x6c,0x3d,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x6d,0x73,0x7d,0x7c,0x24,0x29,0x60,0x2c,0x55,0x6d,0x3d,0x60,0x28,0x3f,0x3a,0x5e,0x7c,0x24,0x7b,0x6d,0x73,0x7d,0x29,0x60,0x2c,0x64,0x6c,0x3d,0x60,0x24,0x7b,0x79,0x74,0x7d,0x7b,0x31,0x2c,0x32,0x7d,0x24,0x7b,0x70,0x6c,0x7d,0x60,0x2c,0x44,0x45,0x3d,0x60,0x28,0x3f,0x21,0x24,0x7b,0x79,0x74,0x7d,0x29,0x60,0x2c,0x71,0x45,0x3d,0x60,0x28,0x3f,0x21,0x24,0x7b,0x55,0x6d,0x7d,0x24,0x7b,0x64,0x6c,0x7d,0x29,0x60,0x2c,0x24,0x45,0x3d,0x60,0x28,0x3f,0x21,0x24,0x7b,0x79,0x74,0x7d,0x7b,0x30,0x2c,0x31,0x7d,0x24,0x7b,0x70,0x6c,0x7d,0x29,0x60,0x2c,0x4c,0x45,0x3d,0x60,0x28,0x3f,0x21,0x24,0x7b,0x64,0x6c,0x7d,0x29,0x60,0x2c,0x4d,0x45,0x3d,0x60,0x5b,0x5e,0x2e,0x24,0x7b,0x6d,0x73,0x7d,0x5d,0x60,0x2c,0x4e,0x45,0x3d,0x60,0x24,0x7b,0x7a,0x6d,0x7d,0x2a,0x3f,0x60,0x2c,0x56,0x6d,0x3d,0x7b,0x44,0x4f,0x54,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x79,0x74,0x2c,0x50,0x4c,0x55,0x53,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x52,0x45,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x50,0x45,0x2c,0x53,0x4c,0x41,0x53,0x48,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x6d,0x73,0x2c,0x4f,0x4e,0x45,0x5f,0x43,0x48,0x41,0x52,0x3a,0x49,0x45,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x3a,0x7a,0x6d,0x2c,0x45,0x4e,0x44,0x5f,0x41,0x4e,0x43,0x48,0x4f,0x52,0x3a,0x70,0x6c,0x2c,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x64,0x6c,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x44,0x45,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x3a,0x71,0x45,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x24,0x45,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x4c,0x45,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x5f,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x4d,0x45,0x2c,0x53,0x54,0x41,0x52,0x3a,0x4e,0x45,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x41,0x4e,0x43,0x48,0x4f,0x52,0x3a,0x55,0x6d,0x7d,0x2c,0x42,0x45,0x3d,0x7b,0x2e,0x2e,0x2e,0x56,0x6d,0x2c,0x53,0x4c,0x41,0x53,0x48,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x60,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x60,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x3a,0x6a,0x6d,0x2c,0x53,0x54,0x41,0x52,0x3a,0x60,0x24,0x7b,0x6a,0x6d,0x7d,0x2a,0x3f,0x60,0x2c,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x60,0x24,0x7b,0x79,0x74,0x7d,0x7b,0x31,0x2c,0x32,0x7d,0x28,0x3f,0x3a,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x7c,0x24,0x29,0x60,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x60,0x28,0x3f,0x21,0x24,0x7b,0x79,0x74,0x7d,0x29,0x60,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x3a,0x60,0x28,0x3f,0x21,0x28,0x3f,0x3a,0x5e,0x7c,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x29,0x24,0x7b,0x79,0x74,0x7d,0x7b,0x31,0x2c,0x32,0x7d,0x28,0x3f,0x3a,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x7c,0x24,0x29,0x29,0x60,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x60,0x28,0x3f,0x21,0x24,0x7b,0x79,0x74,0x7d,0x7b,0x30,0x2c,0x31,0x7d,0x28,0x3f,0x3a,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x7c,0x24,0x29,0x29,0x60,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x60,0x28,0x3f,0x21,0x24,0x7b,0x79,0x74,0x7d,0x7b,0x31,0x2c,0x32,0x7d,0x28,0x3f,0x3a,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x7c,0x24,0x29,0x29,0x60,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x5f,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x60,0x5b,0x5e,0x2e,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x60,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x41,0x4e,0x43,0x48,0x4f,0x52,0x3a,0x60,0x28,0x3f,0x3a,0x5e,0x7c,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x29,0x60,0x2c,0x45,0x4e,0x44,0x5f,0x41,0x4e,0x43,0x48,0x4f,0x52,0x3a,0x60,0x28,0x3f,0x3a,0x5b,0x24,0x7b,0x61,0x74,0x7d,0x5d,0x7c,0x24,0x29,0x60,0x7d,0x2c,0x46,0x45,0x3d,0x7b,0x61,0x6c,0x6e,0x75,0x6d,0x3a,0x22,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x30,0x2d,0x39,0x22,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x22,0x61,0x2d,0x7a,0x41,0x2d,0x5a,0x22,0x2c,0x61,0x73,0x63,0x69,0x69,0x3a,0x22,0x5c,0x5c,0x78,0x30,0x30,0x2d,0x5c,0x5c,0x78,0x37,0x46,0x22,0x2c,0x62,0x6c,0x61,0x6e,0x6b,0x3a,0x22,0x20,0x5c,0x5c,0x74,0x22,0x2c,0x63,0x6e,0x74,0x72,0x6c,0x3a,0x22,0x5c,0x5c,0x78,0x30,0x30,0x2d,0x5c,0x5c,0x78,0x31,0x46,0x5c,0x5c,0x78,0x37,0x46,0x22,0x2c,0x64,0x69,0x67,0x69,0x74,0x3a,0x22,0x30,0x2d,0x39,0x22,0x2c,0x67,0x72,0x61,0x70,0x68,0x3a,0x22,0x5c,0x5c,0x78,0x32,0x31,0x2d,0x5c,0x5c,0x78,0x37,0x45,0x22,0x2c,0x6c,0x6f,0x77,0x65,0x72,0x3a,0x22,0x61,0x2d,0x7a,0x22,0x2c,0x70,0x72,0x69,0x6e,0x74,0x3a,0x22,0x5c,0x5c,0x78,0x32,0x30,0x2d,0x5c,0x5c,0x78,0x37,0x45,0x20,0x22,0x2c,0x70,0x75,0x6e,0x63,0x74,0x3a,0x22,0x5c,0x5c,0x2d,0x21,0x5c,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x5c,0x5c,0x2a,0x2b,0x2c,0x2e,0x2f,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x5b,0x5c,0x5c,0x5d,0x5e,0x5f,0x60,0x7b,0x7c,0x7d,0x7e,0x22,0x2c,0x73,0x70,0x61,0x63,0x65,0x3a,0x22,0x20,0x5c,0x5c,0x74,0x5c,0x5c,0x72,0x5c,0x5c,0x6e,0x5c,0x5c,0x76,0x5c,0x5c,0x66,0x22,0x2c,0x75,0x70,0x70,0x65,0x72,0x3a,0x22,0x41,0x2d,0x5a,0x22,0x2c,0x77,0x6f,0x72,0x64,0x3a,0x22,0x41,0x2d,0x5a,0x61,0x2d,0x7a,0x30,0x2d,0x39,0x5f,0x22,0x2c,0x78,0x64,0x69,0x67,0x69,0x74,0x3a,0x22,0x41,0x2d,0x46,0x61,0x2d,0x66,0x30,0x2d,0x39,0x22,0x7d,0x3b,0x48,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x4d,0x41,0x58,0x5f,0x4c,0x45,0x4e,0x47,0x54,0x48,0x3a,0x31,0x30,0x32,0x34,0x2a,0x36,0x34,0x2c,0x50,0x4f,0x53,0x49,0x58,0x5f,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x4f,0x55,0x52,0x43,0x45,0x3a,0x46,0x45,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x42,0x41,0x43,0x4b,0x53,0x4c,0x41,0x53,0x48,0x3a,0x2f,0x5c,0x5c,0x28,0x3f,0x21,0x5b,0x2a,0x2b,0x3f,0x5e,0x24,0x7b,0x7d,0x28,0x7c,0x29,0x5b,0x5c,0x5d,0x5d,0x29,0x2f,0x67,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x4e,0x4f,0x4e,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x3a,0x2f,0x5e,0x5b,0x5e,0x40,0x21,0x5b,0x5c,0x5d,0x2e,0x2c,0x24,0x2a,0x2b,0x3f,0x5e,0x7b,0x7d,0x28,0x29,0x7c,0x5c,0x5c,0x2f,0x5d,0x2b,0x2f,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x3a,0x2f,0x5b,0x2d,0x2a,0x2b,0x3f,0x2e,0x5e,0x24,0x7b,0x7d,0x28,0x7c,0x29,0x5b,0x5c,0x5d,0x5d,0x2f,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x5f,0x42,0x41,0x43,0x4b,0x52,0x45,0x46,0x3a,0x2f,0x28,0x5c,0x5c,0x3f,0x29,0x28,0x28,0x5c,0x57,0x29,0x28,0x5c,0x33,0x2a,0x29,0x29,0x2f,0x67,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x5f,0x47,0x4c,0x4f,0x42,0x41,0x4c,0x3a,0x2f,0x28,0x5b,0x2d,0x2a,0x2b,0x3f,0x2e,0x5e,0x24,0x7b,0x7d,0x28,0x7c,0x29,0x5b,0x5c,0x5d,0x5d,0x29,0x2f,0x67,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x52,0x45,0x4d,0x4f,0x56,0x45,0x5f,0x42,0x41,0x43,0x4b,0x53,0x4c,0x41,0x53,0x48,0x3a,0x2f,0x28,0x3f,0x3a,0x5c,0x5b,0x2e,0x2a,0x3f,0x5b,0x5e,0x5c,0x5c,0x5d,0x5c,0x5d,0x7c,0x5c,0x5c,0x28,0x3f,0x3d,0x2e,0x29,0x29,0x2f,0x67,0x2c,0x52,0x45,0x50,0x4c,0x41,0x43,0x45,0x4d,0x45,0x4e,0x54,0x53,0x3a,0x7b,0x22,0x2a,0x2a,0x2a,0x22,0x3a,0x22,0x2a,0x22,0x2c,0x22,0x2a,0x2a,0x2f,0x2a,0x2a,0x22,0x3a,0x22,0x2a,0x2a,0x22,0x2c,0x22,0x2a,0x2a,0x2f,0x2a,0x2a,0x2f,0x2a,0x2a,0x22,0x3a,0x22,0x2a,0x2a,0x22,0x7d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x30,0x3a,0x34,0x38,0x2c,0x43,0x48,0x41,0x52,0x5f,0x39,0x3a,0x35,0x37,0x2c,0x43,0x48,0x41,0x52,0x5f,0x55,0x50,0x50,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x41,0x3a,0x36,0x35,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x4f,0x57,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x41,0x3a,0x39,0x37,0x2c,0x43,0x48,0x41,0x52,0x5f,0x55,0x50,0x50,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x5a,0x3a,0x39,0x30,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x4f,0x57,0x45,0x52,0x43,0x41,0x53,0x45,0x5f,0x5a,0x3a,0x31,0x32,0x32,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x34,0x30,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x34,0x31,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x53,0x54,0x45,0x52,0x49,0x53,0x4b,0x3a,0x34,0x32,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x4d,0x50,0x45,0x52,0x53,0x41,0x4e,0x44,0x3a,0x33,0x38,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x54,0x3a,0x36,0x34,0x2c,0x43,0x48,0x41,0x52,0x5f,0x42,0x41,0x43,0x4b,0x57,0x41,0x52,0x44,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x39,0x32,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x41,0x52,0x52,0x49,0x41,0x47,0x45,0x5f,0x52,0x45,0x54,0x55,0x52,0x4e,0x3a,0x31,0x33,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x49,0x52,0x43,0x55,0x4d,0x46,0x4c,0x45,0x58,0x5f,0x41,0x43,0x43,0x45,0x4e,0x54,0x3a,0x39,0x34,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x4f,0x4c,0x4f,0x4e,0x3a,0x35,0x38,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x4f,0x4d,0x4d,0x41,0x3a,0x34,0x34,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x54,0x3a,0x34,0x36,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x55,0x42,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x33,0x34,0x2c,0x43,0x48,0x41,0x52,0x5f,0x45,0x51,0x55,0x41,0x4c,0x3a,0x36,0x31,0x2c,0x43,0x48,0x41,0x52,0x5f,0x45,0x58,0x43,0x4c,0x41,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x5f,0x4d,0x41,0x52,0x4b,0x3a,0x33,0x33,0x2c,0x43,0x48,0x41,0x52,0x5f,0x46,0x4f,0x52,0x4d,0x5f,0x46,0x45,0x45,0x44,0x3a,0x31,0x32,0x2c,0x43,0x48,0x41,0x52,0x5f,0x46,0x4f,0x52,0x57,0x41,0x52,0x44,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x34,0x37,0x2c,0x43,0x48,0x41,0x52,0x5f,0x47,0x52,0x41,0x56,0x45,0x5f,0x41,0x43,0x43,0x45,0x4e,0x54,0x3a,0x39,0x36,0x2c,0x43,0x48,0x41,0x52,0x5f,0x48,0x41,0x53,0x48,0x3a,0x33,0x35,0x2c,0x43,0x48,0x41,0x52,0x5f,0x48,0x59,0x50,0x48,0x45,0x4e,0x5f,0x4d,0x49,0x4e,0x55,0x53,0x3a,0x34,0x35,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x41,0x4e,0x47,0x4c,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x36,0x30,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x31,0x32,0x33,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x39,0x31,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x49,0x4e,0x45,0x5f,0x46,0x45,0x45,0x44,0x3a,0x31,0x30,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4e,0x4f,0x5f,0x42,0x52,0x45,0x41,0x4b,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x31,0x36,0x30,0x2c,0x43,0x48,0x41,0x52,0x5f,0x50,0x45,0x52,0x43,0x45,0x4e,0x54,0x3a,0x33,0x37,0x2c,0x43,0x48,0x41,0x52,0x5f,0x50,0x4c,0x55,0x53,0x3a,0x34,0x33,0x2c,0x43,0x48,0x41,0x52,0x5f,0x51,0x55,0x45,0x53,0x54,0x49,0x4f,0x4e,0x5f,0x4d,0x41,0x52,0x4b,0x3a,0x36,0x33,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x41,0x4e,0x47,0x4c,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x36,0x32,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x31,0x32,0x35,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x39,0x33,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x45,0x4d,0x49,0x43,0x4f,0x4c,0x4f,0x4e,0x3a,0x35,0x39,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x49,0x4e,0x47,0x4c,0x45,0x5f,0x51,0x55,0x4f,0x54,0x45,0x3a,0x33,0x39,0x2c,0x43,0x48,0x41,0x52,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x33,0x32,0x2c,0x43,0x48,0x41,0x52,0x5f,0x54,0x41,0x42,0x3a,0x39,0x2c,0x43,0x48,0x41,0x52,0x5f,0x55,0x4e,0x44,0x45,0x52,0x53,0x43,0x4f,0x52,0x45,0x3a,0x39,0x35,0x2c,0x43,0x48,0x41,0x52,0x5f,0x56,0x45,0x52,0x54,0x49,0x43,0x41,0x4c,0x5f,0x4c,0x49,0x4e,0x45,0x3a,0x31,0x32,0x34,0x2c,0x43,0x48,0x41,0x52,0x5f,0x5a,0x45,0x52,0x4f,0x5f,0x57,0x49,0x44,0x54,0x48,0x5f,0x4e,0x4f,0x42,0x52,0x45,0x41,0x4b,0x5f,0x53,0x50,0x41,0x43,0x45,0x3a,0x36,0x35,0x32,0x37,0x39,0x2c,0x53,0x45,0x50,0x3a,0x54,0x45,0x2e,0x73,0x65,0x70,0x2c,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x43,0x68,0x61,0x72,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x22,0x21,0x22,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x6e,0x65,0x67,0x61,0x74,0x65,0x22,0x2c,0x6f,0x70,0x65,0x6e,0x3a,0x22,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x28,0x3f,0x3a,0x22,0x2c,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x60,0x29,0x29,0x24,0x7b,0x72,0x2e,0x53,0x54,0x41,0x52,0x7d,0x29,0x60,0x7d,0x2c,0x22,0x3f,0x22,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x71,0x6d,0x61,0x72,0x6b,0x22,0x2c,0x6f,0x70,0x65,0x6e,0x3a,0x22,0x28,0x3f,0x3a,0x22,0x2c,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x22,0x29,0x3f,0x22,0x7d,0x2c,0x22,0x2b,0x22,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x6c,0x75,0x73,0x22,0x2c,0x6f,0x70,0x65,0x6e,0x3a,0x22,0x28,0x3f,0x3a,0x22,0x2c,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x22,0x29,0x2b,0x22,0x7d,0x2c,0x22,0x2a,0x22,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x6f,0x70,0x65,0x6e,0x3a,0x22,0x28,0x3f,0x3a,0x22,0x2c,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x22,0x29,0x2a,0x22,0x7d,0x2c,0x22,0x40,0x22,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x61,0x74,0x22,0x2c,0x6f,0x70,0x65,0x6e,0x3a,0x22,0x28,0x3f,0x3a,0x22,0x2c,0x63,0x6c,0x6f,0x73,0x65,0x3a,0x22,0x29,0x22,0x7d,0x7d,0x7d,0x2c,0x67,0x6c,0x6f,0x62,0x43,0x68,0x61,0x72,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x42,0x45,0x3a,0x56,0x6d,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x49,0x69,0x3d,0x78,0x28,0x52,0x65,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6a,0x45,0x3d,0x28,0x65,0x74,0x28,0x29,0x2c,0x55,0x72,0x29,0x2c,0x7a,0x45,0x3d,0x6d,0x2e,0x70,0x6c,0x61,0x74,0x66,0x6f,0x72,0x6d,0x3d,0x3d,0x3d,0x22,0x77,0x69,0x6e,0x33,0x32,0x22,0x2c,0x7b,0x52,0x45,0x47,0x45,0x58,0x5f,0x42,0x41,0x43,0x4b,0x53,0x4c,0x41,0x53,0x48,0x3a,0x55,0x45,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x52,0x45,0x4d,0x4f,0x56,0x45,0x5f,0x42,0x41,0x43,0x4b,0x53,0x4c,0x41,0x53,0x48,0x3a,0x56,0x45,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x3a,0x48,0x45,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x5f,0x47,0x4c,0x4f,0x42,0x41,0x4c,0x3a,0x57,0x45,0x7d,0x3d,0x50,0x69,0x28,0x29,0x3b,0x52,0x65,0x2e,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3d,0x72,0x3d,0x3e,0x72,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3b,0x52,0x65,0x2e,0x68,0x61,0x73,0x52,0x65,0x67,0x65,0x78,0x43,0x68,0x61,0x72,0x73,0x3d,0x72,0x3d,0x3e,0x48,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x3b,0x52,0x65,0x2e,0x69,0x73,0x52,0x65,0x67,0x65,0x78,0x43,0x68,0x61,0x72,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x52,0x65,0x2e,0x68,0x61,0x73,0x52,0x65,0x67,0x65,0x78,0x43,0x68,0x61,0x72,0x73,0x28,0x72,0x29,0x3b,0x52,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x57,0x45,0x2c,0x22,0x5c,0x5c,0x24,0x31,0x22,0x29,0x3b,0x52,0x65,0x2e,0x74,0x6f,0x50,0x6f,0x73,0x69,0x78,0x53,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x55,0x45,0x2c,0x22,0x2f,0x22,0x29,0x3b,0x52,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x72,0x3d,0x3e,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x56,0x45,0x2c,0x65,0x3d,0x3e,0x65,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x3f,0x22,0x22,0x3a,0x65,0x29,0x3b,0x52,0x65,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4c,0x6f,0x6f,0x6b,0x62,0x65,0x68,0x69,0x6e,0x64,0x73,0x3d,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x72,0x3d,0x6d,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2e,0x22,0x29,0x2e,0x6d,0x61,0x70,0x28,0x4e,0x75,0x6d,0x62,0x65,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x33,0x26,0x26,0x72,0x5b,0x30,0x5d,0x3e,0x3d,0x39,0x7c,0x7c,0x72,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x38,0x26,0x26,0x72,0x5b,0x31,0x5d,0x3e,0x3d,0x31,0x30,0x7d,0x3b,0x52,0x65,0x2e,0x69,0x73,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x3d,0x72,0x3d,0x3e,0x72,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x2e,0x77,0x69,0x6e,0x64,0x6f,0x77,0x73,0x3d,0x3d,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x3f,0x72,0x2e,0x77,0x69,0x6e,0x64,0x6f,0x77,0x73,0x3a,0x7a,0x45,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x6a,0x45,0x2e,0x73,0x65,0x70,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x3b,0x52,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x4c,0x61,0x73,0x74,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x2d,0x31,0x3f,0x72,0x3a,0x72,0x5b,0x69,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x3f,0x52,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x4c,0x61,0x73,0x74,0x28,0x72,0x2c,0x65,0x2c,0x69,0x2d,0x31,0x29,0x3a,0x60,0x24,0x7b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x69,0x29,0x7d,0x5c,0x5c,0x24,0x7b,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x69,0x29,0x7d,0x60,0x7d,0x3b,0x52,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x50,0x72,0x65,0x66,0x69,0x78,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2e,0x2f,0x22,0x29,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x2c,0x65,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3d,0x22,0x2e,0x2f,0x22,0x29,0x2c,0x74,0x7d,0x3b,0x52,0x65,0x2e,0x77,0x72,0x61,0x70,0x4f,0x75,0x74,0x70,0x75,0x74,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3f,0x22,0x22,0x3a,0x22,0x5e,0x22,0x2c,0x6e,0x3d,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3f,0x22,0x22,0x3a,0x22,0x24,0x22,0x2c,0x61,0x3d,0x60,0x24,0x7b,0x69,0x7d,0x28,0x3f,0x3a,0x24,0x7b,0x72,0x7d,0x29,0x24,0x7b,0x6e,0x7d,0x60,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x61,0x3d,0x60,0x28,0x3f,0x3a,0x5e,0x28,0x3f,0x21,0x24,0x7b,0x61,0x7d,0x29,0x2e,0x2a,0x24,0x29,0x60,0x29,0x2c,0x61,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5a,0x6d,0x3d,0x78,0x28,0x28,0x6f,0x36,0x2c,0x4a,0x6d,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x57,0x6d,0x3d,0x49,0x69,0x28,0x29,0x2c,0x7b,0x43,0x48,0x41,0x52,0x5f,0x41,0x53,0x54,0x45,0x52,0x49,0x53,0x4b,0x3a,0x68,0x6c,0x2c,0x43,0x48,0x41,0x52,0x5f,0x41,0x54,0x3a,0x47,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x42,0x41,0x43,0x4b,0x57,0x41,0x52,0x44,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x44,0x69,0x2c,0x43,0x48,0x41,0x52,0x5f,0x43,0x4f,0x4d,0x4d,0x41,0x3a,0x51,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x44,0x4f,0x54,0x3a,0x6d,0x6c,0x2c,0x43,0x48,0x41,0x52,0x5f,0x45,0x58,0x43,0x4c,0x41,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x5f,0x4d,0x41,0x52,0x4b,0x3a,0x67,0x6c,0x2c,0x43,0x48,0x41,0x52,0x5f,0x46,0x4f,0x52,0x57,0x41,0x52,0x44,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x47,0x6d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x79,0x6c,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x62,0x6c,0x2c,0x43,0x48,0x41,0x52,0x5f,0x4c,0x45,0x46,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x59,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x50,0x4c,0x55,0x53,0x3a,0x4b,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x51,0x55,0x45,0x53,0x54,0x49,0x4f,0x4e,0x5f,0x4d,0x41,0x52,0x4b,0x3a,0x51,0x6d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x43,0x55,0x52,0x4c,0x59,0x5f,0x42,0x52,0x41,0x43,0x45,0x3a,0x58,0x45,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x50,0x41,0x52,0x45,0x4e,0x54,0x48,0x45,0x53,0x45,0x53,0x3a,0x59,0x6d,0x2c,0x43,0x48,0x41,0x52,0x5f,0x52,0x49,0x47,0x48,0x54,0x5f,0x53,0x51,0x55,0x41,0x52,0x45,0x5f,0x42,0x52,0x41,0x43,0x4b,0x45,0x54,0x3a,0x4a,0x45,0x7d,0x3d,0x50,0x69,0x28,0x29,0x2c,0x4b,0x6d,0x3d,0x72,0x3d,0x3e,0x72,0x3d,0x3d,0x3d,0x47,0x6d,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x44,0x69,0x2c,0x58,0x6d,0x3d,0x72,0x3d,0x3e,0x7b,0x72,0x2e,0x69,0x73,0x50,0x72,0x65,0x66,0x69,0x78,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x72,0x2e,0x64,0x65,0x70,0x74,0x68,0x3d,0x72,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3f,0x31,0x2f,0x30,0x3a,0x31,0x29,0x7d,0x2c,0x5a,0x45,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x7c,0x7c,0x7b,0x7d,0x2c,0x69,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x6e,0x3d,0x74,0x2e,0x70,0x61,0x72,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x74,0x2e,0x73,0x63,0x61,0x6e,0x54,0x6f,0x45,0x6e,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x61,0x3d,0x5b,0x5d,0x2c,0x73,0x3d,0x5b,0x5d,0x2c,0x6f,0x3d,0x5b,0x5d,0x2c,0x6c,0x3d,0x72,0x2c,0x63,0x3d,0x2d,0x31,0x2c,0x66,0x3d,0x30,0x2c,0x64,0x3d,0x30,0x2c,0x70,0x3d,0x21,0x31,0x2c,0x68,0x3d,0x21,0x31,0x2c,0x62,0x3d,0x21,0x31,0x2c,0x76,0x3d,0x21,0x31,0x2c,0x79,0x3d,0x21,0x31,0x2c,0x77,0x3d,0x21,0x31,0x2c,0x6b,0x3d,0x21,0x31,0x2c,0x53,0x3d,0x21,0x31,0x2c,0x45,0x3d,0x21,0x31,0x2c,0x4f,0x3d,0x21,0x31,0x2c,0x42,0x3d,0x30,0x2c,0x4e,0x2c,0x54,0x2c,0x46,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x22,0x2c,0x64,0x65,0x70,0x74,0x68,0x3a,0x30,0x2c,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3a,0x21,0x31,0x7d,0x2c,0x59,0x3d,0x28,0x29,0x3d,0x3e,0x63,0x3e,0x3d,0x69,0x2c,0x5f,0x3d,0x28,0x29,0x3d,0x3e,0x6c,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x63,0x2b,0x31,0x29,0x2c,0x51,0x3d,0x28,0x29,0x3d,0x3e,0x28,0x4e,0x3d,0x54,0x2c,0x6c,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x2b,0x2b,0x63,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x63,0x3c,0x69,0x3b,0x29,0x7b,0x54,0x3d,0x51,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x68,0x65,0x3b,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x44,0x69,0x29,0x7b,0x6b,0x3d,0x46,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x21,0x30,0x2c,0x54,0x3d,0x51,0x28,0x29,0x2c,0x54,0x3d,0x3d,0x3d,0x79,0x6c,0x26,0x26,0x28,0x77,0x3d,0x21,0x30,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x77,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x54,0x3d,0x3d,0x3d,0x79,0x6c,0x29,0x7b,0x66,0x6f,0x72,0x28,0x42,0x2b,0x2b,0x3b,0x59,0x28,0x29,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x54,0x3d,0x51,0x28,0x29,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x44,0x69,0x29,0x7b,0x6b,0x3d,0x46,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x21,0x30,0x2c,0x51,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x79,0x6c,0x29,0x7b,0x42,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x77,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x54,0x3d,0x3d,0x3d,0x6d,0x6c,0x26,0x26,0x28,0x54,0x3d,0x51,0x28,0x29,0x29,0x3d,0x3d,0x3d,0x6d,0x6c,0x29,0x7b,0x69,0x66,0x28,0x70,0x3d,0x46,0x2e,0x69,0x73,0x42,0x72,0x61,0x63,0x65,0x3d,0x21,0x30,0x2c,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x77,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x54,0x3d,0x3d,0x3d,0x51,0x45,0x29,0x7b,0x69,0x66,0x28,0x70,0x3d,0x46,0x2e,0x69,0x73,0x42,0x72,0x61,0x63,0x65,0x3d,0x21,0x30,0x2c,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x58,0x45,0x26,0x26,0x28,0x42,0x2d,0x2d,0x2c,0x42,0x3d,0x3d,0x3d,0x30,0x29,0x29,0x7b,0x77,0x3d,0x21,0x31,0x2c,0x70,0x3d,0x46,0x2e,0x69,0x73,0x42,0x72,0x61,0x63,0x65,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x47,0x6d,0x29,0x7b,0x69,0x66,0x28,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x29,0x2c,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x46,0x29,0x2c,0x46,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x22,0x2c,0x64,0x65,0x70,0x74,0x68,0x3a,0x30,0x2c,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3a,0x21,0x31,0x7d,0x2c,0x4f,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x4e,0x3d,0x3d,0x3d,0x6d,0x6c,0x26,0x26,0x63,0x3d,0x3d,0x3d,0x66,0x2b,0x31,0x29,0x7b,0x66,0x2b,0x3d,0x32,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x64,0x3d,0x63,0x2b,0x31,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x54,0x3d,0x3d,0x3d,0x4b,0x45,0x7c,0x7c,0x54,0x3d,0x3d,0x3d,0x47,0x45,0x7c,0x7c,0x54,0x3d,0x3d,0x3d,0x68,0x6c,0x7c,0x7c,0x54,0x3d,0x3d,0x3d,0x51,0x6d,0x7c,0x7c,0x54,0x3d,0x3d,0x3d,0x67,0x6c,0x29,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x5f,0x28,0x29,0x3d,0x3d,0x3d,0x62,0x6c,0x29,0x7b,0x69,0x66,0x28,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x76,0x3d,0x46,0x2e,0x69,0x73,0x45,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x2c,0x54,0x3d,0x3d,0x3d,0x67,0x6c,0x26,0x26,0x63,0x3d,0x3d,0x3d,0x66,0x26,0x26,0x28,0x45,0x3d,0x21,0x30,0x29,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x66,0x6f,0x72,0x28,0x3b,0x59,0x28,0x29,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x54,0x3d,0x51,0x28,0x29,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x44,0x69,0x29,0x7b,0x6b,0x3d,0x46,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x21,0x30,0x2c,0x54,0x3d,0x51,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x59,0x6d,0x29,0x7b,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x68,0x6c,0x29,0x7b,0x69,0x66,0x28,0x4e,0x3d,0x3d,0x3d,0x68,0x6c,0x26,0x26,0x28,0x79,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x29,0x2c,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x51,0x6d,0x29,0x7b,0x69,0x66,0x28,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x59,0x45,0x29,0x7b,0x66,0x6f,0x72,0x28,0x3b,0x59,0x28,0x29,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x68,0x65,0x3d,0x51,0x28,0x29,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x68,0x65,0x3d,0x3d,0x3d,0x44,0x69,0x29,0x7b,0x6b,0x3d,0x46,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x21,0x30,0x2c,0x51,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x68,0x65,0x3d,0x3d,0x3d,0x4a,0x45,0x29,0x7b,0x68,0x3d,0x46,0x2e,0x69,0x73,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3d,0x21,0x30,0x2c,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x4f,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x6e,0x65,0x67,0x61,0x74,0x65,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x54,0x3d,0x3d,0x3d,0x67,0x6c,0x26,0x26,0x63,0x3d,0x3d,0x3d,0x66,0x29,0x7b,0x53,0x3d,0x46,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3d,0x21,0x30,0x2c,0x66,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x70,0x61,0x72,0x65,0x6e,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x54,0x3d,0x3d,0x3d,0x62,0x6c,0x29,0x7b,0x69,0x66,0x28,0x62,0x3d,0x46,0x2e,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x66,0x6f,0x72,0x28,0x3b,0x59,0x28,0x29,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x54,0x3d,0x51,0x28,0x29,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x62,0x6c,0x29,0x7b,0x6b,0x3d,0x46,0x2e,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x21,0x30,0x2c,0x54,0x3d,0x51,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x54,0x3d,0x3d,0x3d,0x59,0x6d,0x29,0x7b,0x4f,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x62,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x69,0x66,0x28,0x4f,0x3d,0x21,0x30,0x2c,0x6e,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x76,0x3d,0x21,0x31,0x2c,0x62,0x3d,0x21,0x31,0x29,0x3b,0x6c,0x65,0x74,0x20,0x55,0x3d,0x6c,0x2c,0x6f,0x65,0x3d,0x22,0x22,0x2c,0x41,0x3d,0x22,0x22,0x3b,0x66,0x3e,0x30,0x26,0x26,0x28,0x6f,0x65,0x3d,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x66,0x29,0x2c,0x6c,0x3d,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x66,0x29,0x2c,0x64,0x2d,0x3d,0x66,0x29,0x2c,0x55,0x26,0x26,0x62,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x64,0x3e,0x30,0x3f,0x28,0x55,0x3d,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x64,0x29,0x2c,0x41,0x3d,0x6c,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x29,0x29,0x3a,0x62,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x28,0x55,0x3d,0x22,0x22,0x2c,0x41,0x3d,0x6c,0x29,0x3a,0x55,0x3d,0x6c,0x2c,0x55,0x26,0x26,0x55,0x21,0x3d,0x3d,0x22,0x22,0x26,0x26,0x55,0x21,0x3d,0x3d,0x22,0x2f,0x22,0x26,0x26,0x55,0x21,0x3d,0x3d,0x6c,0x26,0x26,0x4b,0x6d,0x28,0x55,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x55,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x29,0x26,0x26,0x28,0x55,0x3d,0x55,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x31,0x29,0x29,0x2c,0x74,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x41,0x26,0x26,0x28,0x41,0x3d,0x57,0x6d,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x28,0x41,0x29,0x29,0x2c,0x55,0x26,0x26,0x6b,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x55,0x3d,0x57,0x6d,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x42,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x28,0x55,0x29,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x43,0x3d,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x6f,0x65,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x72,0x2c,0x73,0x74,0x61,0x72,0x74,0x3a,0x66,0x2c,0x62,0x61,0x73,0x65,0x3a,0x55,0x2c,0x67,0x6c,0x6f,0x62,0x3a,0x41,0x2c,0x69,0x73,0x42,0x72,0x61,0x63,0x65,0x3a,0x70,0x2c,0x69,0x73,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x3a,0x68,0x2c,0x69,0x73,0x47,0x6c,0x6f,0x62,0x3a,0x62,0x2c,0x69,0x73,0x45,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3a,0x76,0x2c,0x69,0x73,0x47,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3a,0x79,0x2c,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3a,0x53,0x2c,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x45,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3a,0x45,0x7d,0x3b,0x69,0x66,0x28,0x74,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x43,0x2e,0x6d,0x61,0x78,0x44,0x65,0x70,0x74,0x68,0x3d,0x30,0x2c,0x4b,0x6d,0x28,0x54,0x29,0x7c,0x7c,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x46,0x29,0x2c,0x43,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3d,0x73,0x29,0x2c,0x74,0x2e,0x70,0x61,0x72,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x74,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x65,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x56,0x3d,0x30,0x3b,0x56,0x3c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x56,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x45,0x65,0x3d,0x68,0x65,0x3f,0x68,0x65,0x2b,0x31,0x3a,0x66,0x2c,0x49,0x65,0x3d,0x61,0x5b,0x56,0x5d,0x2c,0x44,0x65,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x45,0x65,0x2c,0x49,0x65,0x29,0x3b,0x74,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x26,0x26,0x28,0x56,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x66,0x21,0x3d,0x3d,0x30,0x3f,0x28,0x73,0x5b,0x56,0x5d,0x2e,0x69,0x73,0x50,0x72,0x65,0x66,0x69,0x78,0x3d,0x21,0x30,0x2c,0x73,0x5b,0x56,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6f,0x65,0x29,0x3a,0x73,0x5b,0x56,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x44,0x65,0x2c,0x58,0x6d,0x28,0x73,0x5b,0x56,0x5d,0x29,0x2c,0x43,0x2e,0x6d,0x61,0x78,0x44,0x65,0x70,0x74,0x68,0x2b,0x3d,0x73,0x5b,0x56,0x5d,0x2e,0x64,0x65,0x70,0x74,0x68,0x29,0x2c,0x28,0x56,0x21,0x3d,0x3d,0x30,0x7c,0x7c,0x44,0x65,0x21,0x3d,0x3d,0x22,0x22,0x29,0x26,0x26,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x44,0x65,0x29,0x2c,0x68,0x65,0x3d,0x49,0x65,0x7d,0x69,0x66,0x28,0x68,0x65,0x26,0x26,0x68,0x65,0x2b,0x31,0x3c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x7b,0x6c,0x65,0x74,0x20,0x56,0x3d,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x68,0x65,0x2b,0x31,0x29,0x3b,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x56,0x29,0x2c,0x74,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x26,0x26,0x28,0x73,0x5b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x56,0x2c,0x58,0x6d,0x28,0x73,0x5b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x29,0x2c,0x43,0x2e,0x6d,0x61,0x78,0x44,0x65,0x70,0x74,0x68,0x2b,0x3d,0x73,0x5b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x64,0x65,0x70,0x74,0x68,0x29,0x7d,0x43,0x2e,0x73,0x6c,0x61,0x73,0x68,0x65,0x73,0x3d,0x61,0x2c,0x43,0x2e,0x70,0x61,0x72,0x74,0x73,0x3d,0x6f,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x43,0x7d,0x3b,0x4a,0x6d,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5a,0x45,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x72,0x67,0x3d,0x78,0x28,0x28,0x6c,0x36,0x2c,0x74,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x67,0x73,0x3d,0x50,0x69,0x28,0x29,0x2c,0x4d,0x65,0x3d,0x49,0x69,0x28,0x29,0x2c,0x7b,0x4d,0x41,0x58,0x5f,0x4c,0x45,0x4e,0x47,0x54,0x48,0x3a,0x79,0x73,0x2c,0x50,0x4f,0x53,0x49,0x58,0x5f,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x4f,0x55,0x52,0x43,0x45,0x3a,0x65,0x32,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x4e,0x4f,0x4e,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x3a,0x74,0x32,0x2c,0x52,0x45,0x47,0x45,0x58,0x5f,0x53,0x50,0x45,0x43,0x49,0x41,0x4c,0x5f,0x43,0x48,0x41,0x52,0x53,0x5f,0x42,0x41,0x43,0x4b,0x52,0x45,0x46,0x3a,0x72,0x32,0x2c,0x52,0x45,0x50,0x4c,0x41,0x43,0x45,0x4d,0x45,0x4e,0x54,0x53,0x3a,0x65,0x67,0x7d,0x3d,0x67,0x73,0x2c,0x69,0x32,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x65,0x78,0x70,0x61,0x6e,0x64,0x52,0x61,0x6e,0x67,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x65,0x78,0x70,0x61,0x6e,0x64,0x52,0x61,0x6e,0x67,0x65,0x28,0x2e,0x2e,0x2e,0x72,0x2c,0x65,0x29,0x3b,0x72,0x2e,0x73,0x6f,0x72,0x74,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x60,0x5b,0x24,0x7b,0x72,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2d,0x22,0x29,0x7d,0x5d,0x60,0x3b,0x74,0x72,0x79,0x7b,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x74,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x4d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x28,0x6e,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2e,0x2e,0x22,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x2c,0x67,0x72,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x60,0x4d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x24,0x7b,0x72,0x7d,0x3a,0x20,0x22,0x24,0x7b,0x65,0x7d,0x22,0x20,0x2d,0x20,0x75,0x73,0x65,0x20,0x22,0x5c,0x5c,0x5c,0x5c,0x24,0x7b,0x65,0x7d,0x22,0x20,0x74,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x6c,0x69,0x74,0x65,0x72,0x61,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x60,0x2c,0x77,0x6c,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x72,0x3d,0x65,0x67,0x5b,0x72,0x5d,0x7c,0x7c,0x72,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x2e,0x2e,0x2e,0x65,0x7d,0x2c,0x69,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x79,0x73,0x2c,0x74,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x79,0x73,0x2c,0x6e,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x66,0x28,0x6e,0x3e,0x69,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x70,0x75,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x24,0x7b,0x6e,0x7d,0x2c,0x20,0x65,0x78,0x63,0x65,0x65,0x64,0x73,0x20,0x6d,0x61,0x78,0x69,0x6d,0x75,0x6d,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x24,0x7b,0x69,0x7d,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x6f,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x22,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x74,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x7c,0x7c,0x22,0x22,0x7d,0x2c,0x73,0x3d,0x5b,0x61,0x5d,0x2c,0x6f,0x3d,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x22,0x22,0x3a,0x22,0x3f,0x3a,0x22,0x2c,0x6c,0x3d,0x4d,0x65,0x2e,0x69,0x73,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x28,0x65,0x29,0x2c,0x63,0x3d,0x67,0x73,0x2e,0x67,0x6c,0x6f,0x62,0x43,0x68,0x61,0x72,0x73,0x28,0x6c,0x29,0x2c,0x66,0x3d,0x67,0x73,0x2e,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x43,0x68,0x61,0x72,0x73,0x28,0x63,0x29,0x2c,0x7b,0x44,0x4f,0x54,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x64,0x2c,0x50,0x4c,0x55,0x53,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x70,0x2c,0x53,0x4c,0x41,0x53,0x48,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x68,0x2c,0x4f,0x4e,0x45,0x5f,0x43,0x48,0x41,0x52,0x3a,0x62,0x2c,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x76,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x79,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x77,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x6b,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x3a,0x53,0x2c,0x51,0x4d,0x41,0x52,0x4b,0x5f,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x45,0x2c,0x53,0x54,0x41,0x52,0x3a,0x4f,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x41,0x4e,0x43,0x48,0x4f,0x52,0x3a,0x42,0x7d,0x3d,0x63,0x2c,0x4e,0x3d,0x71,0x3d,0x3e,0x60,0x28,0x24,0x7b,0x6f,0x7d,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x24,0x7b,0x42,0x7d,0x24,0x7b,0x71,0x2e,0x64,0x6f,0x74,0x3f,0x76,0x3a,0x64,0x7d,0x29,0x2e,0x29,0x2a,0x3f,0x29,0x60,0x2c,0x54,0x3d,0x74,0x2e,0x64,0x6f,0x74,0x3f,0x22,0x22,0x3a,0x79,0x2c,0x46,0x3d,0x74,0x2e,0x64,0x6f,0x74,0x3f,0x53,0x3a,0x45,0x2c,0x59,0x3d,0x74,0x2e,0x62,0x61,0x73,0x68,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x4e,0x28,0x74,0x29,0x3a,0x4f,0x3b,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x26,0x26,0x28,0x59,0x3d,0x60,0x28,0x24,0x7b,0x59,0x7d,0x29,0x60,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x3d,0x3d,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x26,0x26,0x28,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3d,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x29,0x3b,0x6c,0x65,0x74,0x20,0x5f,0x3d,0x7b,0x69,0x6e,0x70,0x75,0x74,0x3a,0x72,0x2c,0x69,0x6e,0x64,0x65,0x78,0x3a,0x2d,0x31,0x2c,0x73,0x74,0x61,0x72,0x74,0x3a,0x30,0x2c,0x64,0x6f,0x74,0x3a,0x74,0x2e,0x64,0x6f,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x2c,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x64,0x3a,0x22,0x22,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x22,0x2c,0x62,0x61,0x63,0x6b,0x74,0x72,0x61,0x63,0x6b,0x3a,0x21,0x31,0x2c,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3a,0x21,0x31,0x2c,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3a,0x30,0x2c,0x62,0x72,0x61,0x63,0x65,0x73,0x3a,0x30,0x2c,0x70,0x61,0x72,0x65,0x6e,0x73,0x3a,0x30,0x2c,0x71,0x75,0x6f,0x74,0x65,0x73,0x3a,0x30,0x2c,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3a,0x21,0x31,0x2c,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3a,0x73,0x7d,0x3b,0x72,0x3d,0x4d,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x72,0x2c,0x5f,0x29,0x2c,0x6e,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6c,0x65,0x74,0x20,0x51,0x3d,0x5b,0x5d,0x2c,0x55,0x3d,0x5b,0x5d,0x2c,0x6f,0x65,0x3d,0x5b,0x5d,0x2c,0x41,0x3d,0x61,0x2c,0x43,0x2c,0x68,0x65,0x3d,0x28,0x29,0x3d,0x3e,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x6e,0x2d,0x31,0x2c,0x56,0x3d,0x5f,0x2e,0x70,0x65,0x65,0x6b,0x3d,0x28,0x71,0x3d,0x31,0x29,0x3d,0x3e,0x72,0x5b,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x71,0x5d,0x2c,0x45,0x65,0x3d,0x5f,0x2e,0x61,0x64,0x76,0x61,0x6e,0x63,0x65,0x3d,0x28,0x29,0x3d,0x3e,0x72,0x5b,0x2b,0x2b,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x5d,0x7c,0x7c,0x22,0x22,0x2c,0x49,0x65,0x3d,0x28,0x29,0x3d,0x3e,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x31,0x29,0x2c,0x44,0x65,0x3d,0x28,0x71,0x3d,0x22,0x22,0x2c,0x61,0x65,0x3d,0x30,0x29,0x3d,0x3e,0x7b,0x5f,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x64,0x2b,0x3d,0x71,0x2c,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x61,0x65,0x7d,0x2c,0x42,0x69,0x3d,0x71,0x3d,0x3e,0x7b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x71,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x71,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x44,0x65,0x28,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x2c,0x52,0x76,0x3d,0x28,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x71,0x3d,0x31,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x56,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x21,0x22,0x26,0x26,0x28,0x56,0x28,0x32,0x29,0x21,0x3d,0x3d,0x22,0x28,0x22,0x7c,0x7c,0x56,0x28,0x33,0x29,0x3d,0x3d,0x3d,0x22,0x3f,0x22,0x29,0x3b,0x29,0x45,0x65,0x28,0x29,0x2c,0x5f,0x2e,0x73,0x74,0x61,0x72,0x74,0x2b,0x2b,0x2c,0x71,0x2b,0x2b,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x25,0x32,0x3d,0x3d,0x30,0x3f,0x21,0x31,0x3a,0x28,0x5f,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3d,0x21,0x30,0x2c,0x5f,0x2e,0x73,0x74,0x61,0x72,0x74,0x2b,0x2b,0x2c,0x21,0x30,0x29,0x7d,0x2c,0x46,0x69,0x3d,0x71,0x3d,0x3e,0x7b,0x5f,0x5b,0x71,0x5d,0x2b,0x2b,0x2c,0x6f,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x71,0x29,0x7d,0x2c,0x46,0x74,0x3d,0x71,0x3d,0x3e,0x7b,0x5f,0x5b,0x71,0x5d,0x2d,0x2d,0x2c,0x6f,0x65,0x2e,0x70,0x6f,0x70,0x28,0x29,0x7d,0x2c,0x57,0x3d,0x71,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x65,0x3d,0x5f,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x3e,0x30,0x26,0x26,0x28,0x71,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x7c,0x7c,0x71,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x29,0x2c,0x49,0x3d,0x71,0x2e,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x71,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x69,0x70,0x65,0x22,0x7c,0x7c,0x71,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x29,0x3b,0x71,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x26,0x26,0x71,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x26,0x26,0x21,0x61,0x65,0x26,0x26,0x21,0x49,0x26,0x26,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x2a,0x22,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x59,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x7d,0x69,0x66,0x28,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x71,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x26,0x26,0x28,0x51,0x5b,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x2b,0x3d,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x28,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7c,0x7c,0x71,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x26,0x26,0x42,0x69,0x28,0x71,0x29,0x2c,0x41,0x26,0x26,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x26,0x26,0x71,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x29,0x7b,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x28,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x71,0x2e,0x70,0x72,0x65,0x76,0x3d,0x41,0x2c,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x71,0x29,0x2c,0x41,0x3d,0x71,0x7d,0x2c,0x6a,0x69,0x3d,0x28,0x71,0x2c,0x61,0x65,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x7b,0x2e,0x2e,0x2e,0x66,0x5b,0x61,0x65,0x5d,0x2c,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x31,0x2c,0x69,0x6e,0x6e,0x65,0x72,0x3a,0x22,0x22,0x7d,0x3b,0x49,0x2e,0x70,0x72,0x65,0x76,0x3d,0x41,0x2c,0x49,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3d,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x2c,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x6c,0x65,0x74,0x20,0x48,0x3d,0x28,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x22,0x28,0x22,0x3a,0x22,0x22,0x29,0x2b,0x49,0x2e,0x6f,0x70,0x65,0x6e,0x3b,0x46,0x69,0x28,0x22,0x70,0x61,0x72,0x65,0x6e,0x73,0x22,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x71,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x61,0x65,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3f,0x22,0x22,0x3a,0x62,0x7d,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x2c,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3a,0x21,0x30,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x45,0x65,0x28,0x29,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x48,0x7d,0x29,0x2c,0x51,0x2e,0x70,0x75,0x73,0x68,0x28,0x49,0x29,0x7d,0x2c,0x50,0x76,0x3d,0x71,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x65,0x3d,0x71,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x2b,0x28,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x22,0x29,0x22,0x3a,0x22,0x22,0x29,0x2c,0x49,0x3b,0x69,0x66,0x28,0x71,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x6e,0x65,0x67,0x61,0x74,0x65,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x48,0x3d,0x59,0x3b,0x69,0x66,0x28,0x71,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x26,0x26,0x71,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x71,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2f,0x22,0x29,0x26,0x26,0x28,0x48,0x3d,0x4e,0x28,0x74,0x29,0x29,0x2c,0x28,0x48,0x21,0x3d,0x3d,0x59,0x7c,0x7c,0x68,0x65,0x28,0x29,0x7c,0x7c,0x2f,0x5e,0x5c,0x29,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x49,0x65,0x28,0x29,0x29,0x29,0x26,0x26,0x28,0x61,0x65,0x3d,0x71,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x3d,0x60,0x29,0x24,0x29,0x29,0x24,0x7b,0x48,0x7d,0x60,0x29,0x2c,0x71,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2a,0x22,0x29,0x26,0x26,0x28,0x49,0x3d,0x49,0x65,0x28,0x29,0x29,0x26,0x26,0x2f,0x5e,0x5c,0x2e,0x5b,0x5e,0x5c,0x5c,0x2f,0x2e,0x5d,0x2b,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x49,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x65,0x3d,0x77,0x6c,0x28,0x49,0x2c,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x3a,0x21,0x31,0x7d,0x29,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x61,0x65,0x3d,0x71,0x2e,0x63,0x6c,0x6f,0x73,0x65,0x3d,0x60,0x29,0x24,0x7b,0x63,0x65,0x7d,0x29,0x24,0x7b,0x48,0x7d,0x29,0x60,0x7d,0x71,0x2e,0x70,0x72,0x65,0x76,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x26,0x26,0x28,0x5f,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x45,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3d,0x21,0x30,0x29,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x2c,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3a,0x21,0x30,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x61,0x65,0x7d,0x29,0x2c,0x46,0x74,0x28,0x22,0x70,0x61,0x72,0x65,0x6e,0x73,0x22,0x29,0x7d,0x3b,0x69,0x66,0x28,0x74,0x2e,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x21,0x2f,0x28,0x5e,0x5b,0x2a,0x21,0x5d,0x7c,0x5b,0x2f,0x28,0x29,0x5b,0x5c,0x5d,0x7b,0x7d,0x22,0x5d,0x29,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x71,0x3d,0x21,0x31,0x2c,0x61,0x65,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x72,0x32,0x2c,0x28,0x49,0x2c,0x48,0x2c,0x63,0x65,0x2c,0x43,0x65,0x2c,0x79,0x65,0x2c,0x4d,0x73,0x29,0x3d,0x3e,0x43,0x65,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x3f,0x28,0x71,0x3d,0x21,0x30,0x2c,0x49,0x29,0x3a,0x43,0x65,0x3d,0x3d,0x3d,0x22,0x3f,0x22,0x3f,0x48,0x3f,0x48,0x2b,0x43,0x65,0x2b,0x28,0x79,0x65,0x3f,0x53,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x79,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x22,0x22,0x29,0x3a,0x4d,0x73,0x3d,0x3d,0x3d,0x30,0x3f,0x46,0x2b,0x28,0x79,0x65,0x3f,0x53,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x79,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x22,0x22,0x29,0x3a,0x53,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x43,0x65,0x3d,0x3d,0x3d,0x22,0x2e,0x22,0x3f,0x64,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x43,0x65,0x3d,0x3d,0x3d,0x22,0x2a,0x22,0x3f,0x48,0x3f,0x48,0x2b,0x43,0x65,0x2b,0x28,0x79,0x65,0x3f,0x59,0x3a,0x22,0x22,0x29,0x3a,0x59,0x3a,0x48,0x3f,0x49,0x3a,0x60,0x5c,0x5c,0x24,0x7b,0x49,0x7d,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x74,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x61,0x65,0x3d,0x61,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x5c,0x2f,0x67,0x2c,0x22,0x22,0x29,0x3a,0x61,0x65,0x3d,0x61,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x5c,0x2b,0x2f,0x67,0x2c,0x49,0x3d,0x3e,0x49,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x25,0x32,0x3d,0x3d,0x30,0x3f,0x22,0x5c,0x5c,0x5c,0x5c,0x22,0x3a,0x49,0x3f,0x22,0x5c,0x5c,0x22,0x3a,0x22,0x22,0x29,0x29,0x2c,0x61,0x65,0x3d,0x3d,0x3d,0x72,0x26,0x26,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x72,0x2c,0x5f,0x29,0x3a,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4d,0x65,0x2e,0x77,0x72,0x61,0x70,0x4f,0x75,0x74,0x70,0x75,0x74,0x28,0x61,0x65,0x2c,0x5f,0x2c,0x65,0x29,0x2c,0x5f,0x29,0x7d,0x66,0x6f,0x72,0x28,0x3b,0x21,0x68,0x65,0x28,0x29,0x3b,0x29,0x7b,0x69,0x66,0x28,0x43,0x3d,0x45,0x65,0x28,0x29,0x2c,0x43,0x3d,0x3d,0x3d,0x22,0x5c,0x30,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x5c,0x5c,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x56,0x28,0x29,0x3b,0x69,0x66,0x28,0x49,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x26,0x26,0x74,0x2e,0x62,0x61,0x73,0x68,0x21,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x49,0x3d,0x3d,0x3d,0x22,0x2e,0x22,0x7c,0x7c,0x49,0x3d,0x3d,0x3d,0x22,0x3b,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x21,0x49,0x29,0x7b,0x43,0x2b,0x3d,0x22,0x5c,0x5c,0x22,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x48,0x3d,0x2f,0x5e,0x5c,0x5c,0x2b,0x2f,0x2e,0x65,0x78,0x65,0x63,0x28,0x49,0x65,0x28,0x29,0x29,0x2c,0x63,0x65,0x3d,0x30,0x3b,0x69,0x66,0x28,0x48,0x26,0x26,0x48,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x32,0x26,0x26,0x28,0x63,0x65,0x3d,0x48,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x63,0x65,0x2c,0x63,0x65,0x25,0x32,0x21,0x3d,0x30,0x26,0x26,0x28,0x43,0x2b,0x3d,0x22,0x5c,0x5c,0x22,0x29,0x29,0x2c,0x74,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x43,0x3d,0x45,0x65,0x28,0x29,0x3a,0x43,0x2b,0x3d,0x45,0x65,0x28,0x29,0x2c,0x5f,0x2e,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x7d,0x69,0x66,0x28,0x5f,0x2e,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3e,0x30,0x26,0x26,0x28,0x43,0x21,0x3d,0x3d,0x22,0x5d,0x22,0x7c,0x7c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x7c,0x7c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x5b,0x5e,0x22,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x70,0x6f,0x73,0x69,0x78,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x43,0x3d,0x3d,0x3d,0x22,0x3a,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3b,0x69,0x66,0x28,0x49,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x5b,0x22,0x29,0x26,0x26,0x28,0x41,0x2e,0x70,0x6f,0x73,0x69,0x78,0x3d,0x21,0x30,0x2c,0x49,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x22,0x29,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x48,0x3d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5b,0x22,0x29,0x2c,0x63,0x65,0x3d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x48,0x29,0x2c,0x43,0x65,0x3d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x48,0x2b,0x32,0x29,0x2c,0x79,0x65,0x3d,0x65,0x32,0x5b,0x43,0x65,0x5d,0x3b,0x69,0x66,0x28,0x79,0x65,0x29,0x7b,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x65,0x2b,0x79,0x65,0x2c,0x5f,0x2e,0x62,0x61,0x63,0x6b,0x74,0x72,0x61,0x63,0x6b,0x3d,0x21,0x30,0x2c,0x45,0x65,0x28,0x29,0x2c,0x21,0x61,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x26,0x26,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x41,0x29,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x28,0x61,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x62,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x7d,0x7d,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x26,0x26,0x56,0x28,0x29,0x21,0x3d,0x3d,0x22,0x3a,0x22,0x7c,0x7c,0x43,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x26,0x26,0x56,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x5d,0x22,0x29,0x26,0x26,0x28,0x43,0x3d,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x29,0x2c,0x43,0x3d,0x3d,0x3d,0x22,0x5d,0x22,0x26,0x26,0x28,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x7c,0x7c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x5b,0x5e,0x22,0x29,0x26,0x26,0x28,0x43,0x3d,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x29,0x2c,0x74,0x2e,0x70,0x6f,0x73,0x69,0x78,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x43,0x3d,0x3d,0x3d,0x22,0x21,0x22,0x26,0x26,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x26,0x26,0x28,0x43,0x3d,0x22,0x5e,0x22,0x29,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x42,0x69,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x5f,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x43,0x21,0x3d,0x3d,0x27,0x22,0x27,0x29,0x7b,0x43,0x3d,0x4d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x28,0x43,0x29,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x42,0x69,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x27,0x22,0x27,0x29,0x7b,0x5f,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x3d,0x5f,0x2e,0x71,0x75,0x6f,0x74,0x65,0x73,0x3d,0x3d,0x3d,0x31,0x3f,0x30,0x3a,0x31,0x2c,0x74,0x2e,0x6b,0x65,0x65,0x70,0x51,0x75,0x6f,0x74,0x65,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x29,0x7b,0x46,0x69,0x28,0x22,0x70,0x61,0x72,0x65,0x6e,0x73,0x22,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x29,0x22,0x29,0x7b,0x69,0x66,0x28,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x67,0x72,0x28,0x22,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x22,0x2c,0x22,0x28,0x22,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x51,0x5b,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x69,0x66,0x28,0x49,0x26,0x26,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3d,0x3d,0x3d,0x49,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x2b,0x31,0x29,0x7b,0x50,0x76,0x28,0x51,0x2e,0x70,0x6f,0x70,0x28,0x29,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3f,0x22,0x29,0x22,0x3a,0x22,0x5c,0x5c,0x29,0x22,0x7d,0x29,0x2c,0x46,0x74,0x28,0x22,0x70,0x61,0x72,0x65,0x6e,0x73,0x22,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x21,0x49,0x65,0x28,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x5d,0x22,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x67,0x72,0x28,0x22,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x22,0x2c,0x22,0x5d,0x22,0x29,0x29,0x3b,0x43,0x3d,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x7d,0x65,0x6c,0x73,0x65,0x20,0x46,0x69,0x28,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x22,0x29,0x3b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x5d,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x41,0x26,0x26,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x26,0x26,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x5f,0x2e,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x67,0x72,0x28,0x22,0x6f,0x70,0x65,0x6e,0x69,0x6e,0x67,0x22,0x2c,0x22,0x5b,0x22,0x29,0x29,0x3b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x46,0x74,0x28,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3b,0x69,0x66,0x28,0x41,0x2e,0x70,0x6f,0x73,0x69,0x78,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x49,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x5e,0x22,0x26,0x26,0x21,0x49,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2f,0x22,0x29,0x26,0x26,0x28,0x43,0x3d,0x60,0x2f,0x24,0x7b,0x43,0x7d,0x60,0x29,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x42,0x69,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x2c,0x74,0x2e,0x6c,0x69,0x74,0x65,0x72,0x61,0x6c,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x31,0x7c,0x7c,0x4d,0x65,0x2e,0x68,0x61,0x73,0x52,0x65,0x67,0x65,0x78,0x43,0x68,0x61,0x72,0x73,0x28,0x49,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x48,0x3d,0x4d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x28,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x69,0x66,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x74,0x2e,0x6c,0x69,0x74,0x65,0x72,0x61,0x6c,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x48,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x48,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x60,0x28,0x24,0x7b,0x6f,0x7d,0x24,0x7b,0x48,0x7d,0x7c,0x24,0x7b,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x29,0x60,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x7b,0x22,0x26,0x26,0x74,0x2e,0x6e,0x6f,0x62,0x72,0x61,0x63,0x65,0x21,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x46,0x69,0x28,0x22,0x62,0x72,0x61,0x63,0x65,0x73,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x28,0x22,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x49,0x6e,0x64,0x65,0x78,0x3a,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x49,0x6e,0x64,0x65,0x78,0x3a,0x5f,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x3b,0x55,0x2e,0x70,0x75,0x73,0x68,0x28,0x49,0x29,0x2c,0x57,0x28,0x49,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x7d,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x55,0x5b,0x55,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x62,0x72,0x61,0x63,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x21,0x49,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x48,0x3d,0x22,0x29,0x22,0x3b,0x69,0x66,0x28,0x49,0x2e,0x64,0x6f,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x65,0x3d,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x2c,0x43,0x65,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x65,0x3d,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x79,0x65,0x3e,0x3d,0x30,0x26,0x26,0x28,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x63,0x65,0x5b,0x79,0x65,0x5d,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x29,0x3b,0x79,0x65,0x2d,0x2d,0x29,0x63,0x65,0x5b,0x79,0x65,0x5d,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x73,0x22,0x26,0x26,0x43,0x65,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x63,0x65,0x5b,0x79,0x65,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x48,0x3d,0x69,0x32,0x28,0x43,0x65,0x2c,0x74,0x29,0x2c,0x5f,0x2e,0x62,0x61,0x63,0x6b,0x74,0x72,0x61,0x63,0x6b,0x3d,0x21,0x30,0x7d,0x69,0x66,0x28,0x49,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x49,0x2e,0x64,0x6f,0x74,0x73,0x21,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x65,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x49,0x6e,0x64,0x65,0x78,0x29,0x2c,0x43,0x65,0x3d,0x5f,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x49,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x49,0x6e,0x64,0x65,0x78,0x29,0x3b,0x49,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x22,0x5c,0x5c,0x7b,0x22,0x2c,0x43,0x3d,0x48,0x3d,0x22,0x5c,0x5c,0x7d,0x22,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x63,0x65,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x65,0x20,0x6f,0x66,0x20,0x43,0x65,0x29,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x79,0x65,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x7c,0x7c,0x79,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x48,0x7d,0x29,0x2c,0x46,0x74,0x28,0x22,0x62,0x72,0x61,0x63,0x65,0x73,0x22,0x29,0x2c,0x55,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x7c,0x22,0x29,0x7b,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x51,0x5b,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x73,0x2b,0x2b,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x43,0x2c,0x48,0x3d,0x55,0x5b,0x55,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x48,0x26,0x26,0x6f,0x65,0x5b,0x6f,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x73,0x22,0x26,0x26,0x28,0x48,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x3d,0x21,0x30,0x2c,0x49,0x3d,0x22,0x7c,0x22,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x49,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x29,0x7b,0x69,0x66,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x22,0x26,0x26,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x5f,0x2e,0x73,0x74,0x61,0x72,0x74,0x2b,0x31,0x29,0x7b,0x5f,0x2e,0x73,0x74,0x61,0x72,0x74,0x3d,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x31,0x2c,0x5f,0x2e,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x64,0x3d,0x22,0x22,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x41,0x3d,0x61,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x68,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x2e,0x22,0x29,0x7b,0x69,0x66,0x28,0x5f,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x3e,0x30,0x26,0x26,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x22,0x29,0x7b,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2e,0x22,0x26,0x26,0x28,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x64,0x29,0x3b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x55,0x5b,0x55,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x64,0x6f,0x74,0x73,0x22,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x43,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x49,0x2e,0x64,0x6f,0x74,0x73,0x3d,0x21,0x30,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x5f,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x2b,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x41,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x26,0x26,0x41,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x64,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x6f,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x64,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x3f,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x28,0x41,0x26,0x26,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x29,0x26,0x26,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x56,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x26,0x26,0x56,0x28,0x32,0x29,0x21,0x3d,0x3d,0x22,0x3f,0x22,0x29,0x7b,0x6a,0x69,0x28,0x22,0x71,0x6d,0x61,0x72,0x6b,0x22,0x2c,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x41,0x26,0x26,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x48,0x3d,0x56,0x28,0x29,0x2c,0x63,0x65,0x3d,0x43,0x3b,0x69,0x66,0x28,0x48,0x3d,0x3d,0x3d,0x22,0x3c,0x22,0x26,0x26,0x21,0x4d,0x65,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x4c,0x6f,0x6f,0x6b,0x62,0x65,0x68,0x69,0x6e,0x64,0x73,0x28,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x4e,0x6f,0x64,0x65,0x2e,0x6a,0x73,0x20,0x76,0x31,0x30,0x20,0x6f,0x72,0x20,0x68,0x69,0x67,0x68,0x65,0x72,0x20,0x69,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x67,0x65,0x78,0x20,0x6c,0x6f,0x6f,0x6b,0x62,0x65,0x68,0x69,0x6e,0x64,0x73,0x22,0x29,0x3b,0x28,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x26,0x26,0x21,0x2f,0x5b,0x21,0x3d,0x3c,0x3a,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x48,0x29,0x7c,0x7c,0x48,0x3d,0x3d,0x3d,0x22,0x3c,0x22,0x26,0x26,0x21,0x2f,0x3c,0x28,0x5b,0x21,0x3d,0x5d,0x7c,0x5c,0x77,0x2b,0x3e,0x29,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x49,0x65,0x28,0x29,0x29,0x29,0x26,0x26,0x28,0x63,0x65,0x3d,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x63,0x65,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x74,0x2e,0x64,0x6f,0x74,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x29,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x71,0x6d,0x61,0x72,0x6b,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x45,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x71,0x6d,0x61,0x72,0x6b,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x53,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x21,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x56,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x26,0x26,0x28,0x56,0x28,0x32,0x29,0x21,0x3d,0x3d,0x22,0x3f,0x22,0x7c,0x7c,0x21,0x2f,0x5b,0x21,0x3d,0x3c,0x3a,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x56,0x28,0x33,0x29,0x29,0x29,0x29,0x7b,0x6a,0x69,0x28,0x22,0x6e,0x65,0x67,0x61,0x74,0x65,0x22,0x2c,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x6e,0x65,0x67,0x61,0x74,0x65,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x52,0x76,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x2b,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x56,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x26,0x26,0x56,0x28,0x32,0x29,0x21,0x3d,0x3d,0x22,0x3f,0x22,0x29,0x7b,0x6a,0x69,0x28,0x22,0x70,0x6c,0x75,0x73,0x22,0x2c,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x41,0x26,0x26,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x7c,0x7c,0x74,0x2e,0x72,0x65,0x67,0x65,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x6c,0x75,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x41,0x26,0x26,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x29,0x7c,0x7c,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3e,0x30,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x6c,0x75,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x70,0x6c,0x75,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x70,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x40,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x56,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x26,0x26,0x56,0x28,0x32,0x29,0x21,0x3d,0x3d,0x22,0x3f,0x22,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x61,0x74,0x22,0x2c,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3a,0x21,0x30,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x43,0x21,0x3d,0x3d,0x22,0x2a,0x22,0x29,0x7b,0x28,0x43,0x3d,0x3d,0x3d,0x22,0x24,0x22,0x7c,0x7c,0x43,0x3d,0x3d,0x3d,0x22,0x5e,0x22,0x29,0x26,0x26,0x28,0x43,0x3d,0x60,0x5c,0x5c,0x24,0x7b,0x43,0x7d,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x49,0x3d,0x74,0x32,0x2e,0x65,0x78,0x65,0x63,0x28,0x49,0x65,0x28,0x29,0x29,0x3b,0x49,0x26,0x26,0x28,0x43,0x2b,0x3d,0x49,0x5b,0x30,0x5d,0x2c,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x49,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x41,0x26,0x26,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x7c,0x7c,0x41,0x2e,0x73,0x74,0x61,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x29,0x7b,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x59,0x2c,0x5f,0x2e,0x62,0x61,0x63,0x6b,0x74,0x72,0x61,0x63,0x6b,0x3d,0x21,0x30,0x2c,0x5f,0x2e,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x44,0x65,0x28,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x71,0x3d,0x49,0x65,0x28,0x29,0x3b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x65,0x78,0x74,0x67,0x6c,0x6f,0x62,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x2f,0x5e,0x5c,0x28,0x5b,0x5e,0x3f,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x71,0x29,0x29,0x7b,0x6a,0x69,0x28,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x61,0x72,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x44,0x65,0x28,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x49,0x3d,0x41,0x2e,0x70,0x72,0x65,0x76,0x2c,0x48,0x3d,0x49,0x2e,0x70,0x72,0x65,0x76,0x2c,0x63,0x65,0x3d,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x7c,0x7c,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x2c,0x43,0x65,0x3d,0x48,0x26,0x26,0x28,0x48,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x61,0x72,0x22,0x7c,0x7c,0x48,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x29,0x3b,0x69,0x66,0x28,0x74,0x2e,0x62,0x61,0x73,0x68,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x21,0x63,0x65,0x7c,0x7c,0x71,0x5b,0x30,0x5d,0x26,0x26,0x71,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x2f,0x22,0x29,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x79,0x65,0x3d,0x5f,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x3e,0x30,0x26,0x26,0x28,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x22,0x7c,0x7c,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x65,0x22,0x29,0x2c,0x4d,0x73,0x3d,0x51,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x69,0x70,0x65,0x22,0x7c,0x7c,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x29,0x3b,0x69,0x66,0x28,0x21,0x63,0x65,0x26,0x26,0x49,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x26,0x26,0x21,0x79,0x65,0x26,0x26,0x21,0x4d,0x73,0x29,0x7b,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x66,0x6f,0x72,0x28,0x3b,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x33,0x29,0x3d,0x3d,0x3d,0x22,0x2f,0x2a,0x2a,0x22,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x7a,0x69,0x3d,0x72,0x5b,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x34,0x5d,0x3b,0x69,0x66,0x28,0x7a,0x69,0x26,0x26,0x7a,0x69,0x21,0x3d,0x3d,0x22,0x2f,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x71,0x3d,0x71,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x33,0x29,0x2c,0x44,0x65,0x28,0x22,0x2f,0x2a,0x2a,0x22,0x2c,0x33,0x29,0x7d,0x69,0x66,0x28,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x26,0x26,0x68,0x65,0x28,0x29,0x29,0x7b,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4e,0x28,0x74,0x29,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x5f,0x2e,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x44,0x65,0x28,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x26,0x26,0x49,0x2e,0x70,0x72,0x65,0x76,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x26,0x26,0x21,0x43,0x65,0x26,0x26,0x68,0x65,0x28,0x29,0x29,0x7b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x28,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x7d,0x60,0x2c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4e,0x28,0x74,0x29,0x2b,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x53,0x6c,0x61,0x73,0x68,0x65,0x73,0x3f,0x22,0x29,0x22,0x3a,0x22,0x7c,0x24,0x29,0x22,0x29,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x5f,0x2e,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x44,0x65,0x28,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x26,0x26,0x49,0x2e,0x70,0x72,0x65,0x76,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x26,0x26,0x71,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x7a,0x69,0x3d,0x71,0x5b,0x31,0x5d,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x22,0x7c,0x24,0x22,0x3a,0x22,0x22,0x3b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x28,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x7d,0x60,0x2c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x60,0x24,0x7b,0x4e,0x28,0x74,0x29,0x7d,0x24,0x7b,0x68,0x7d,0x7c,0x24,0x7b,0x68,0x7d,0x24,0x7b,0x7a,0x69,0x7d,0x29,0x60,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x49,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x5f,0x2e,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x44,0x65,0x28,0x43,0x2b,0x45,0x65,0x28,0x29,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2f,0x22,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x49,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x26,0x26,0x71,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2f,0x22,0x29,0x7b,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x60,0x28,0x3f,0x3a,0x5e,0x7c,0x24,0x7b,0x68,0x7d,0x7c,0x24,0x7b,0x4e,0x28,0x74,0x29,0x7d,0x24,0x7b,0x68,0x7d,0x29,0x60,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x5f,0x2e,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x44,0x65,0x28,0x43,0x2b,0x45,0x65,0x28,0x29,0x29,0x2c,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2f,0x22,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x7d,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x22,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4e,0x28,0x74,0x29,0x2c,0x41,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x43,0x2c,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x5f,0x2e,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x21,0x30,0x2c,0x44,0x65,0x28,0x43,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x61,0x65,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x74,0x61,0x72,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x43,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x59,0x7d,0x3b,0x69,0x66,0x28,0x74,0x2e,0x62,0x61,0x73,0x68,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x61,0x65,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x22,0x2e,0x2a,0x3f,0x22,0x2c,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x73,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x29,0x26,0x26,0x28,0x61,0x65,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x54,0x2b,0x61,0x65,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x2c,0x57,0x28,0x61,0x65,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x41,0x26,0x26,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x22,0x29,0x26,0x26,0x74,0x2e,0x72,0x65,0x67,0x65,0x78,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x61,0x65,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x43,0x2c,0x57,0x28,0x61,0x65,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x28,0x5f,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3d,0x3d,0x3d,0x5f,0x2e,0x73,0x74,0x61,0x72,0x74,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x6c,0x61,0x73,0x68,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x22,0x29,0x26,0x26,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x74,0x22,0x3f,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x77,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x77,0x29,0x3a,0x74,0x2e,0x64,0x6f,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x6b,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x6b,0x29,0x3a,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x54,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x54,0x29,0x2c,0x56,0x28,0x29,0x21,0x3d,0x3d,0x22,0x2a,0x22,0x26,0x26,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x62,0x2c,0x41,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x62,0x29,0x29,0x2c,0x57,0x28,0x61,0x65,0x29,0x7d,0x66,0x6f,0x72,0x28,0x3b,0x5f,0x2e,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3e,0x30,0x3b,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x67,0x72,0x28,0x22,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x22,0x2c,0x22,0x5d,0x22,0x29,0x29,0x3b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x4c,0x61,0x73,0x74,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x22,0x5b,0x22,0x29,0x2c,0x46,0x74,0x28,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x22,0x29,0x7d,0x66,0x6f,0x72,0x28,0x3b,0x5f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x73,0x3e,0x30,0x3b,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x67,0x72,0x28,0x22,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x22,0x2c,0x22,0x29,0x22,0x29,0x29,0x3b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x4c,0x61,0x73,0x74,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x22,0x28,0x22,0x29,0x2c,0x46,0x74,0x28,0x22,0x70,0x61,0x72,0x65,0x6e,0x73,0x22,0x29,0x7d,0x66,0x6f,0x72,0x28,0x3b,0x5f,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x3e,0x30,0x3b,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x67,0x72,0x28,0x22,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x22,0x2c,0x22,0x7d,0x22,0x29,0x29,0x3b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x4d,0x65,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x4c,0x61,0x73,0x74,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x22,0x7b,0x22,0x29,0x2c,0x46,0x74,0x28,0x22,0x62,0x72,0x61,0x63,0x65,0x73,0x22,0x29,0x7d,0x69,0x66,0x28,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x53,0x6c,0x61,0x73,0x68,0x65,0x73,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x61,0x72,0x22,0x7c,0x7c,0x41,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x22,0x29,0x26,0x26,0x57,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x6d,0x61,0x79,0x62,0x65,0x5f,0x73,0x6c,0x61,0x73,0x68,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x22,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x60,0x24,0x7b,0x68,0x7d,0x3f,0x60,0x7d,0x29,0x2c,0x5f,0x2e,0x62,0x61,0x63,0x6b,0x74,0x72,0x61,0x63,0x6b,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x7b,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x71,0x20,0x6f,0x66,0x20,0x5f,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x29,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x71,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x21,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x71,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x71,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x71,0x2e,0x73,0x75,0x66,0x66,0x69,0x78,0x26,0x26,0x28,0x5f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x2b,0x3d,0x71,0x2e,0x73,0x75,0x66,0x66,0x69,0x78,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x7d,0x3b,0x77,0x6c,0x2e,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x2e,0x2e,0x2e,0x65,0x7d,0x2c,0x69,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3f,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x79,0x73,0x2c,0x74,0x2e,0x6d,0x61,0x78,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x79,0x73,0x2c,0x6e,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x66,0x28,0x6e,0x3e,0x69,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x70,0x75,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x24,0x7b,0x6e,0x7d,0x2c,0x20,0x65,0x78,0x63,0x65,0x65,0x64,0x73,0x20,0x6d,0x61,0x78,0x69,0x6d,0x75,0x6d,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x24,0x7b,0x69,0x7d,0x60,0x29,0x3b,0x72,0x3d,0x65,0x67,0x5b,0x72,0x5d,0x7c,0x7c,0x72,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x4d,0x65,0x2e,0x69,0x73,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x28,0x65,0x29,0x2c,0x7b,0x44,0x4f,0x54,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x73,0x2c,0x53,0x4c,0x41,0x53,0x48,0x5f,0x4c,0x49,0x54,0x45,0x52,0x41,0x4c,0x3a,0x6f,0x2c,0x4f,0x4e,0x45,0x5f,0x43,0x48,0x41,0x52,0x3a,0x6c,0x2c,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x63,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x3a,0x66,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x3a,0x64,0x2c,0x4e,0x4f,0x5f,0x44,0x4f,0x54,0x53,0x5f,0x53,0x4c,0x41,0x53,0x48,0x3a,0x70,0x2c,0x53,0x54,0x41,0x52,0x3a,0x68,0x2c,0x53,0x54,0x41,0x52,0x54,0x5f,0x41,0x4e,0x43,0x48,0x4f,0x52,0x3a,0x62,0x7d,0x3d,0x67,0x73,0x2e,0x67,0x6c,0x6f,0x62,0x43,0x68,0x61,0x72,0x73,0x28,0x61,0x29,0x2c,0x76,0x3d,0x74,0x2e,0x64,0x6f,0x74,0x3f,0x64,0x3a,0x66,0x2c,0x79,0x3d,0x74,0x2e,0x64,0x6f,0x74,0x3f,0x70,0x3a,0x66,0x2c,0x77,0x3d,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3f,0x22,0x22,0x3a,0x22,0x3f,0x3a,0x22,0x2c,0x6b,0x3d,0x7b,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3a,0x21,0x31,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x22,0x7d,0x2c,0x53,0x3d,0x74,0x2e,0x62,0x61,0x73,0x68,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x22,0x2e,0x2a,0x3f,0x22,0x3a,0x68,0x3b,0x74,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x26,0x26,0x28,0x53,0x3d,0x60,0x28,0x24,0x7b,0x53,0x7d,0x29,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x45,0x3d,0x54,0x3d,0x3e,0x54,0x2e,0x6e,0x6f,0x67,0x6c,0x6f,0x62,0x73,0x74,0x61,0x72,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x53,0x3a,0x60,0x28,0x24,0x7b,0x77,0x7d,0x28,0x3f,0x3a,0x28,0x3f,0x21,0x24,0x7b,0x62,0x7d,0x24,0x7b,0x54,0x2e,0x64,0x6f,0x74,0x3f,0x63,0x3a,0x73,0x7d,0x29,0x2e,0x29,0x2a,0x3f,0x29,0x60,0x2c,0x4f,0x3d,0x54,0x3d,0x3e,0x7b,0x73,0x77,0x69,0x74,0x63,0x68,0x28,0x54,0x29,0x7b,0x63,0x61,0x73,0x65,0x22,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x24,0x7b,0x76,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x63,0x61,0x73,0x65,0x22,0x2e,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x24,0x7b,0x73,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x63,0x61,0x73,0x65,0x22,0x2a,0x2e,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x24,0x7b,0x76,0x7d,0x24,0x7b,0x53,0x7d,0x24,0x7b,0x73,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x63,0x61,0x73,0x65,0x22,0x2a,0x2f,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x24,0x7b,0x76,0x7d,0x24,0x7b,0x53,0x7d,0x24,0x7b,0x6f,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x79,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x63,0x61,0x73,0x65,0x22,0x2a,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x2b,0x45,0x28,0x74,0x29,0x3b,0x63,0x61,0x73,0x65,0x22,0x2a,0x2a,0x2f,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x76,0x7d,0x24,0x7b,0x45,0x28,0x74,0x29,0x7d,0x24,0x7b,0x6f,0x7d,0x29,0x3f,0x24,0x7b,0x79,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x63,0x61,0x73,0x65,0x22,0x2a,0x2a,0x2f,0x2a,0x2e,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x76,0x7d,0x24,0x7b,0x45,0x28,0x74,0x29,0x7d,0x24,0x7b,0x6f,0x7d,0x29,0x3f,0x24,0x7b,0x79,0x7d,0x24,0x7b,0x53,0x7d,0x24,0x7b,0x73,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x63,0x61,0x73,0x65,0x22,0x2a,0x2a,0x2f,0x2e,0x2a,0x22,0x3a,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x76,0x7d,0x24,0x7b,0x45,0x28,0x74,0x29,0x7d,0x24,0x7b,0x6f,0x7d,0x29,0x3f,0x24,0x7b,0x73,0x7d,0x24,0x7b,0x6c,0x7d,0x24,0x7b,0x53,0x7d,0x60,0x3b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x7b,0x6c,0x65,0x74,0x20,0x46,0x3d,0x2f,0x5e,0x28,0x2e,0x2a,0x3f,0x29,0x5c,0x2e,0x28,0x5c,0x77,0x2b,0x29,0x24,0x2f,0x2e,0x65,0x78,0x65,0x63,0x28,0x54,0x29,0x3b,0x69,0x66,0x28,0x21,0x46,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x59,0x3d,0x4f,0x28,0x46,0x5b,0x31,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x59,0x3f,0x59,0x2b,0x73,0x2b,0x46,0x5b,0x32,0x5d,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x7d,0x7d,0x2c,0x42,0x3d,0x4d,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x72,0x2c,0x6b,0x29,0x2c,0x4e,0x3d,0x4f,0x28,0x42,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x26,0x26,0x74,0x2e,0x73,0x74,0x72,0x69,0x63,0x74,0x53,0x6c,0x61,0x73,0x68,0x65,0x73,0x21,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x4e,0x2b,0x3d,0x60,0x24,0x7b,0x6f,0x7d,0x3f,0x60,0x29,0x2c,0x4e,0x7d,0x3b,0x74,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x77,0x6c,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x67,0x3d,0x78,0x28,0x28,0x75,0x36,0x2c,0x69,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6e,0x32,0x3d,0x28,0x65,0x74,0x28,0x29,0x2c,0x55,0x72,0x29,0x2c,0x73,0x32,0x3d,0x5a,0x6d,0x28,0x29,0x2c,0x76,0x6c,0x3d,0x72,0x67,0x28,0x29,0x2c,0x78,0x6c,0x3d,0x49,0x69,0x28,0x29,0x2c,0x61,0x32,0x3d,0x50,0x69,0x28,0x29,0x2c,0x6f,0x32,0x3d,0x72,0x3d,0x3e,0x72,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x21,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x2c,0x64,0x65,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x21,0x31,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x72,0x2e,0x6d,0x61,0x70,0x28,0x70,0x3d,0x3e,0x64,0x65,0x28,0x70,0x2c,0x65,0x2c,0x74,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x66,0x29,0x7b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x68,0x28,0x70,0x29,0x3b,0x69,0x66,0x28,0x62,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x7d,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6f,0x32,0x28,0x72,0x29,0x26,0x26,0x72,0x2e,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x26,0x26,0x72,0x2e,0x69,0x6e,0x70,0x75,0x74,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x22,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x21,0x69,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6d,0x70,0x74,0x79,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x7c,0x7c,0x7b,0x7d,0x2c,0x61,0x3d,0x78,0x6c,0x2e,0x69,0x73,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x28,0x65,0x29,0x2c,0x73,0x3d,0x69,0x3f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x52,0x65,0x28,0x72,0x2c,0x65,0x29,0x3a,0x64,0x65,0x2e,0x6d,0x61,0x6b,0x65,0x52,0x65,0x28,0x72,0x2c,0x65,0x2c,0x21,0x31,0x2c,0x21,0x30,0x29,0x2c,0x6f,0x3d,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x3b,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x28,0x29,0x3d,0x3e,0x21,0x31,0x3b,0x69,0x66,0x28,0x6e,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x69,0x67,0x6e,0x6f,0x72,0x65,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x6f,0x6e,0x4d,0x61,0x74,0x63,0x68,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x3a,0x6e,0x75,0x6c,0x6c,0x7d,0x3b,0x6c,0x3d,0x64,0x65,0x28,0x6e,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x2c,0x66,0x2c,0x74,0x29,0x7d,0x6c,0x65,0x74,0x20,0x63,0x3d,0x28,0x66,0x2c,0x64,0x3d,0x21,0x31,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3a,0x70,0x2c,0x6d,0x61,0x74,0x63,0x68,0x3a,0x68,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x62,0x7d,0x3d,0x64,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x66,0x2c,0x73,0x2c,0x65,0x2c,0x7b,0x67,0x6c,0x6f,0x62,0x3a,0x72,0x2c,0x70,0x6f,0x73,0x69,0x78,0x3a,0x61,0x7d,0x29,0x2c,0x76,0x3d,0x7b,0x67,0x6c,0x6f,0x62,0x3a,0x72,0x2c,0x73,0x74,0x61,0x74,0x65,0x3a,0x6f,0x2c,0x72,0x65,0x67,0x65,0x78,0x3a,0x73,0x2c,0x70,0x6f,0x73,0x69,0x78,0x3a,0x61,0x2c,0x69,0x6e,0x70,0x75,0x74,0x3a,0x66,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x62,0x2c,0x6d,0x61,0x74,0x63,0x68,0x3a,0x68,0x2c,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3a,0x70,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x2e,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x6e,0x2e,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x76,0x29,0x2c,0x70,0x3d,0x3d,0x3d,0x21,0x31,0x3f,0x28,0x76,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3d,0x21,0x31,0x2c,0x64,0x3f,0x76,0x3a,0x21,0x31,0x29,0x3a,0x6c,0x28,0x66,0x29,0x3f,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x2e,0x6f,0x6e,0x49,0x67,0x6e,0x6f,0x72,0x65,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x6e,0x2e,0x6f,0x6e,0x49,0x67,0x6e,0x6f,0x72,0x65,0x28,0x76,0x29,0x2c,0x76,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3d,0x21,0x31,0x2c,0x64,0x3f,0x76,0x3a,0x21,0x31,0x29,0x3a,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x2e,0x6f,0x6e,0x4d,0x61,0x74,0x63,0x68,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x6e,0x2e,0x6f,0x6e,0x4d,0x61,0x74,0x63,0x68,0x28,0x76,0x29,0x2c,0x64,0x3f,0x76,0x3a,0x21,0x30,0x29,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x26,0x26,0x28,0x63,0x2e,0x73,0x74,0x61,0x74,0x65,0x3d,0x6f,0x29,0x2c,0x63,0x7d,0x3b,0x64,0x65,0x2e,0x74,0x65,0x73,0x74,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x7b,0x67,0x6c,0x6f,0x62,0x3a,0x69,0x2c,0x70,0x6f,0x73,0x69,0x78,0x3a,0x6e,0x7d,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x69,0x66,0x28,0x72,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3a,0x21,0x31,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x22,0x22,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x7c,0x7c,0x7b,0x7d,0x2c,0x73,0x3d,0x61,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x7c,0x7c,0x28,0x6e,0x3f,0x78,0x6c,0x2e,0x74,0x6f,0x50,0x6f,0x73,0x69,0x78,0x53,0x6c,0x61,0x73,0x68,0x65,0x73,0x3a,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x6f,0x3d,0x72,0x3d,0x3d,0x3d,0x69,0x2c,0x6c,0x3d,0x6f,0x26,0x26,0x73,0x3f,0x73,0x28,0x72,0x29,0x3a,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x6c,0x3d,0x73,0x3f,0x73,0x28,0x72,0x29,0x3a,0x72,0x2c,0x6f,0x3d,0x6c,0x3d,0x3d,0x3d,0x69,0x29,0x2c,0x28,0x6f,0x3d,0x3d,0x3d,0x21,0x31,0x7c,0x7c,0x61,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x26,0x26,0x28,0x61,0x2e,0x6d,0x61,0x74,0x63,0x68,0x42,0x61,0x73,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x61,0x2e,0x62,0x61,0x73,0x65,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x6f,0x3d,0x64,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x42,0x61,0x73,0x65,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x6e,0x29,0x3a,0x6f,0x3d,0x65,0x2e,0x65,0x78,0x65,0x63,0x28,0x6c,0x29,0x29,0x2c,0x7b,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3a,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x6f,0x29,0x2c,0x6d,0x61,0x74,0x63,0x68,0x3a,0x6f,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x3a,0x6c,0x7d,0x7d,0x3b,0x64,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x42,0x61,0x73,0x65,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x3d,0x78,0x6c,0x2e,0x69,0x73,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x28,0x74,0x29,0x29,0x3d,0x3e,0x28,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x3f,0x65,0x3a,0x64,0x65,0x2e,0x6d,0x61,0x6b,0x65,0x52,0x65,0x28,0x65,0x2c,0x74,0x29,0x29,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x32,0x2e,0x62,0x61,0x73,0x65,0x6e,0x61,0x6d,0x65,0x28,0x72,0x29,0x29,0x3b,0x64,0x65,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x64,0x65,0x28,0x65,0x2c,0x74,0x29,0x28,0x72,0x29,0x3b,0x64,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x64,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x74,0x2c,0x65,0x29,0x29,0x3a,0x76,0x6c,0x28,0x72,0x2c,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x3a,0x21,0x31,0x7d,0x29,0x3b,0x64,0x65,0x2e,0x73,0x63,0x61,0x6e,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x73,0x32,0x28,0x72,0x2c,0x65,0x29,0x3b,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x52,0x65,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x21,0x31,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x7c,0x7c,0x7b,0x7d,0x2c,0x61,0x3d,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3f,0x22,0x22,0x3a,0x22,0x5e,0x22,0x2c,0x73,0x3d,0x6e,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3f,0x22,0x22,0x3a,0x22,0x24,0x22,0x2c,0x6f,0x3d,0x60,0x24,0x7b,0x61,0x7d,0x28,0x3f,0x3a,0x24,0x7b,0x72,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x7d,0x29,0x24,0x7b,0x73,0x7d,0x60,0x3b,0x72,0x26,0x26,0x72,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x6f,0x3d,0x60,0x5e,0x28,0x3f,0x21,0x24,0x7b,0x6f,0x7d,0x29,0x2e,0x2a,0x24,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x64,0x65,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x28,0x6f,0x2c,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x28,0x6c,0x2e,0x73,0x74,0x61,0x74,0x65,0x3d,0x72,0x29,0x2c,0x6c,0x7d,0x3b,0x64,0x65,0x2e,0x6d,0x61,0x6b,0x65,0x52,0x65,0x3d,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x2c,0x74,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x21,0x31,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x72,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6d,0x70,0x74,0x79,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x7b,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x3a,0x21,0x31,0x2c,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x3a,0x21,0x30,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x72,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2e,0x22,0x7c,0x7c,0x72,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2a,0x22,0x29,0x26,0x26,0x28,0x6e,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x3d,0x76,0x6c,0x2e,0x66,0x61,0x73,0x74,0x70,0x61,0x74,0x68,0x73,0x28,0x72,0x2c,0x65,0x29,0x29,0x2c,0x6e,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x7c,0x7c,0x28,0x6e,0x3d,0x76,0x6c,0x28,0x72,0x2c,0x65,0x29,0x29,0x2c,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x52,0x65,0x28,0x6e,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x3b,0x64,0x65,0x2e,0x74,0x6f,0x52,0x65,0x67,0x65,0x78,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x74,0x72,0x79,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x7c,0x7c,0x7b,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x72,0x2c,0x74,0x2e,0x66,0x6c,0x61,0x67,0x73,0x7c,0x7c,0x28,0x74,0x2e,0x6e,0x6f,0x63,0x61,0x73,0x65,0x3f,0x22,0x69,0x22,0x3a,0x22,0x22,0x29,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x28,0x74,0x29,0x7b,0x69,0x66,0x28,0x65,0x26,0x26,0x65,0x2e,0x64,0x65,0x62,0x75,0x67,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x2f,0x24,0x5e,0x2f,0x7d,0x7d,0x3b,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x73,0x3d,0x61,0x32,0x3b,0x69,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x64,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x67,0x3d,0x78,0x28,0x28,0x66,0x36,0x2c,0x73,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x73,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6e,0x67,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x67,0x3d,0x78,0x28,0x28,0x63,0x36,0x2c,0x66,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x6f,0x67,0x3d,0x28,0x42,0x6e,0x28,0x29,0x2c,0x4e,0x6e,0x29,0x2c,0x6c,0x67,0x3d,0x46,0x6d,0x28,0x29,0x2c,0x6f,0x74,0x3d,0x61,0x67,0x28,0x29,0x2c,0x6b,0x6c,0x3d,0x49,0x69,0x28,0x29,0x2c,0x75,0x67,0x3d,0x72,0x3d,0x3e,0x72,0x3d,0x3d,0x3d,0x22,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x2e,0x2f,0x22,0x2c,0x66,0x65,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x65,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x2c,0x72,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x61,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x73,0x3d,0x30,0x2c,0x6f,0x3d,0x66,0x3d,0x3e,0x7b,0x61,0x2e,0x61,0x64,0x64,0x28,0x66,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x2c,0x74,0x26,0x26,0x74,0x2e,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x26,0x26,0x74,0x2e,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x66,0x29,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x66,0x3d,0x30,0x3b,0x66,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x66,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x6f,0x74,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x5b,0x66,0x5d,0x29,0x2c,0x7b,0x2e,0x2e,0x2e,0x74,0x2c,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x3a,0x6f,0x7d,0x2c,0x21,0x30,0x29,0x2c,0x70,0x3d,0x64,0x2e,0x73,0x74,0x61,0x74,0x65,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x7c,0x7c,0x64,0x2e,0x73,0x74,0x61,0x74,0x65,0x2e,0x6e,0x65,0x67,0x61,0x74,0x65,0x64,0x45,0x78,0x74,0x67,0x6c,0x6f,0x62,0x3b,0x70,0x26,0x26,0x73,0x2b,0x2b,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x64,0x28,0x68,0x2c,0x21,0x30,0x29,0x3b,0x21,0x28,0x70,0x3f,0x21,0x62,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3a,0x62,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x29,0x7c,0x7c,0x28,0x70,0x3f,0x69,0x2e,0x61,0x64,0x64,0x28,0x62,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x3a,0x28,0x69,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x62,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x2c,0x6e,0x2e,0x61,0x64,0x64,0x28,0x62,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x29,0x29,0x7d,0x7d,0x6c,0x65,0x74,0x20,0x63,0x3d,0x28,0x73,0x3d,0x3d,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x5b,0x2e,0x2e,0x2e,0x61,0x5d,0x3a,0x5b,0x2e,0x2e,0x2e,0x6e,0x5d,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x3d,0x3e,0x21,0x69,0x2e,0x68,0x61,0x73,0x28,0x66,0x29,0x29,0x3b,0x69,0x66,0x28,0x74,0x26,0x26,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x66,0x61,0x69,0x6c,0x67,0x6c,0x6f,0x62,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x4e,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x66,0x6f,0x72,0x20,0x22,0x24,0x7b,0x65,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x22,0x60,0x29,0x3b,0x69,0x66,0x28,0x74,0x2e,0x6e,0x6f,0x6e,0x75,0x6c,0x6c,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x74,0x2e,0x6e,0x75,0x6c,0x6c,0x67,0x6c,0x6f,0x62,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x75,0x6e,0x65,0x73,0x63,0x61,0x70,0x65,0x3f,0x65,0x2e,0x6d,0x61,0x70,0x28,0x66,0x3d,0x3e,0x66,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x5c,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x3a,0x65,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x7d,0x3b,0x66,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x3d,0x66,0x65,0x3b,0x66,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x65,0x72,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x6f,0x74,0x28,0x72,0x2c,0x65,0x29,0x3b,0x66,0x65,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x6f,0x74,0x28,0x65,0x2c,0x74,0x29,0x28,0x72,0x29,0x3b,0x66,0x65,0x2e,0x61,0x6e,0x79,0x3d,0x66,0x65,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x3b,0x66,0x65,0x2e,0x6e,0x6f,0x74,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x3d,0x7b,0x7d,0x29,0x3d,0x3e,0x7b,0x65,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x2e,0x6d,0x61,0x70,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x6e,0x3d,0x5b,0x5d,0x2c,0x61,0x3d,0x6f,0x3d,0x3e,0x7b,0x74,0x2e,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x26,0x26,0x74,0x2e,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x6f,0x29,0x2c,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x2e,0x6f,0x75,0x74,0x70,0x75,0x74,0x29,0x7d,0x2c,0x73,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x66,0x65,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x2e,0x2e,0x2e,0x74,0x2c,0x6f,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x3a,0x61,0x7d,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x6e,0x29,0x73,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x7c,0x7c,0x69,0x2e,0x61,0x64,0x64,0x28,0x6f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x2e,0x2e,0x2e,0x69,0x5d,0x7d,0x3b,0x66,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x24,0x7b,0x6f,0x67,0x2e,0x69,0x6e,0x73,0x70,0x65,0x63,0x74,0x28,0x72,0x29,0x7d,0x22,0x60,0x29,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x69,0x3d,0x3e,0x66,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x28,0x72,0x2c,0x69,0x2c,0x74,0x29,0x29,0x3b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x7b,0x69,0x66,0x28,0x75,0x67,0x28,0x72,0x29,0x7c,0x7c,0x75,0x67,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x7c,0x7c,0x72,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2e,0x2f,0x22,0x29,0x26,0x26,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x65,0x2e,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x28,0x72,0x2c,0x65,0x2c,0x7b,0x2e,0x2e,0x2e,0x74,0x2c,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x3b,0x66,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x73,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x6b,0x6c,0x2e,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x72,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x66,0x65,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x2c,0x65,0x2c,0x74,0x29,0x2c,0x6e,0x3d,0x7b,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x69,0x29,0x6e,0x5b,0x61,0x5d,0x3d,0x72,0x5b,0x61,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x3b,0x66,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6f,0x74,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x29,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x73,0x3d,0x3e,0x61,0x28,0x73,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x3b,0x66,0x65,0x2e,0x65,0x76,0x65,0x72,0x79,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6f,0x74,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x29,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x21,0x69,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x73,0x3d,0x3e,0x61,0x28,0x73,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x3b,0x66,0x65,0x2e,0x61,0x6c,0x6c,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3a,0x20,0x22,0x24,0x7b,0x6f,0x67,0x2e,0x69,0x6e,0x73,0x70,0x65,0x63,0x74,0x28,0x72,0x29,0x7d,0x22,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x69,0x3d,0x3e,0x6f,0x74,0x28,0x69,0x2c,0x74,0x29,0x28,0x72,0x29,0x29,0x7d,0x3b,0x66,0x65,0x2e,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3d,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6b,0x6c,0x2e,0x69,0x73,0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x28,0x74,0x29,0x2c,0x61,0x3d,0x6f,0x74,0x2e,0x6d,0x61,0x6b,0x65,0x52,0x65,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x29,0x2c,0x7b,0x2e,0x2e,0x2e,0x74,0x2c,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x3a,0x21,0x30,0x7d,0x29,0x2e,0x65,0x78,0x65,0x63,0x28,0x69,0x3f,0x6b,0x6c,0x2e,0x74,0x6f,0x50,0x6f,0x73,0x69,0x78,0x53,0x6c,0x61,0x73,0x68,0x65,0x73,0x28,0x65,0x29,0x3a,0x65,0x29,0x3b,0x69,0x66,0x28,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x22,0x22,0x3a,0x73,0x29,0x7d,0x3b,0x66,0x65,0x2e,0x6d,0x61,0x6b,0x65,0x52,0x65,0x3d,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x3d,0x3e,0x6f,0x74,0x2e,0x6d,0x61,0x6b,0x65,0x52,0x65,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x3b,0x66,0x65,0x2e,0x73,0x63,0x61,0x6e,0x3d,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x3d,0x3e,0x6f,0x74,0x2e,0x73,0x63,0x61,0x6e,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x3b,0x66,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x72,0x7c,0x7c,0x5b,0x5d,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x6c,0x67,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x29,0x2c,0x65,0x29,0x29,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x74,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6e,0x2c,0x65,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x3b,0x66,0x65,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x65,0x2e,0x6e,0x6f,0x62,0x72,0x61,0x63,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x21,0x2f,0x5c,0x7b,0x2e,0x2a,0x5c,0x7d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x3f,0x5b,0x72,0x5d,0x3a,0x6c,0x67,0x28,0x72,0x2c,0x65,0x29,0x7d,0x3b,0x66,0x65,0x2e,0x62,0x72,0x61,0x63,0x65,0x45,0x78,0x70,0x61,0x6e,0x64,0x3d,0x28,0x72,0x2c,0x65,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x21,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x54,0x79,0x70,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x65,0x2e,0x62,0x72,0x61,0x63,0x65,0x73,0x28,0x72,0x2c,0x7b,0x2e,0x2e,0x2e,0x65,0x2c,0x65,0x78,0x70,0x61,0x6e,0x64,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x3b,0x66,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x65,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x3b,0x74,0x3d,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6f,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6f,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x2c,0x74,0x3d,0x74,0x2e,0x6d,0x61,0x70,0x28,0x61,0x6c,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x63,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x54,0x61,0x73,0x6b,0x73,0x28,0x74,0x29,0x2c,0x6e,0x3d,0x5b,0x5d,0x2c,0x61,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x69,0x29,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x6f,0x2e,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x68,0x67,0x28,0x6c,0x2c,0x21,0x31,0x29,0x29,0x29,0x2c,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x6f,0x2e,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x68,0x67,0x28,0x6c,0x2c,0x21,0x30,0x29,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x5b,0x2e,0x2e,0x2e,0x6e,0x2c,0x2e,0x2e,0x2e,0x61,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x3d,0x75,0x32,0x28,0x72,0x2c,0x73,0x29,0x2c,0x73,0x3d,0x73,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x66,0x32,0x29,0x2c,0x73,0x3d,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x32,0x29,0x2c,0x73,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x3a,0x72,0x2c,0x62,0x61,0x73,0x65,0x3a,0x72,0x2c,0x69,0x67,0x6e,0x6f,0x72,0x65,0x3a,0x65,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3a,0x72,0x2c,0x67,0x6c,0x6f,0x62,0x3a,0x6e,0x75,0x6c,0x6c,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x68,0x28,0x72,0x29,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x74,0x2c,0x72,0x6d,0x28,0x72,0x29,0x29,0x2c,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x32,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x61,0x6c,0x28,0x72,0x2e,0x62,0x61,0x73,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x63,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x50,0x61,0x74,0x68,0x28,0x65,0x29,0x2c,0x72,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3d,0x72,0x2e,0x67,0x6c,0x6f,0x62,0x3f,0x60,0x24,0x7b,0x65,0x7d,0x2f,0x24,0x7b,0x72,0x2e,0x67,0x6c,0x6f,0x62,0x7d,0x60,0x3a,0x65,0x2c,0x72,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x3d,0x72,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x3f,0x60,0x21,0x24,0x7b,0x72,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x7d,0x60,0x3a,0x72,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2c,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x75,0x73,0x65,0x72,0x43,0x6f,0x6e,0x66,0x69,0x67,0x50,0x61,0x74,0x68,0x26,0x26,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x26,0x26,0x28,0x74,0x3d,0x5b,0x6d,0x65,0x2e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x72,0x2e,0x75,0x73,0x65,0x72,0x43,0x6f,0x6e,0x66,0x69,0x67,0x50,0x61,0x74,0x68,0x29,0x5d,0x29,0x2c,0x65,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x28,0x69,0x2e,0x62,0x61,0x73,0x65,0x3d,0x6d,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x2e,0x2e,0x2e,0x74,0x2c,0x69,0x2e,0x62,0x61,0x73,0x65,0x29,0x2c,0x69,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x32,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x72,0x5d,0x3b,0x74,0x72,0x79,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x62,0x65,0x2e,0x72,0x65,0x61,0x6c,0x70,0x61,0x74,0x68,0x53,0x79,0x6e,0x63,0x28,0x72,0x2e,0x62,0x61,0x73,0x65,0x29,0x3b,0x74,0x21,0x3d,0x3d,0x72,0x2e,0x62,0x61,0x73,0x65,0x26,0x26,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x2e,0x2e,0x2e,0x72,0x2c,0x62,0x61,0x73,0x65,0x3a,0x74,0x7d,0x29,0x7d,0x63,0x61,0x74,0x63,0x68,0x7b,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x67,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x6c,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x73,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x2e,0x72,0x61,0x77,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x7b,0x72,0x61,0x77,0x3a,0x73,0x2c,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x6f,0x3d,0x22,0x68,0x74,0x6d,0x6c,0x22,0x7d,0x29,0x3d,0x3e,0x28,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x73,0x2c,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x6f,0x7d,0x29,0x29,0x2c,0x5b,0x6e,0x2c,0x61,0x5d,0x3d,0x70,0x32,0x28,0x65,0x2c,0x74,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x6d,0x65,0x2e,0x65,0x78,0x74,0x6e,0x61,0x6d,0x65,0x28,0x73,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3b,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x66,0x69,0x6c,0x65,0x3a,0x73,0x2c,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x3a,0x6f,0x7d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x61,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x32,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x21,0x72,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2a,0x2a,0x22,0x29,0x26,0x26,0x21,0x79,0x67,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x29,0x3d,0x3e,0x7b,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x2c,0x69,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x70,0x67,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x65,0x72,0x28,0x61,0x29,0x3b,0x79,0x67,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x29,0x26,0x26,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x7d,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x21,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x6e,0x7c,0x7c,0x69,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x66,0x3d,0x3e,0x66,0x28,0x61,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x2e,0x66,0x69,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x28,0x66,0x3d,0x3e,0x66,0x28,0x61,0x29,0x29,0x3b,0x69,0x66,0x28,0x73,0x3d,0x3d,0x3d,0x2d,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x72,0x5b,0x73,0x5d,0x2c,0x6c,0x3d,0x6d,0x65,0x2e,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x28,0x6d,0x2e,0x63,0x77,0x64,0x28,0x29,0x2c,0x6f,0x29,0x3b,0x6c,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x22,0x2e,0x22,0x26,0x26,0x28,0x6c,0x3d,0x60,0x2e,0x2f,0x24,0x7b,0x6c,0x7d,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x67,0x67,0x2e,0x66,0x69,0x6e,0x64,0x28,0x66,0x3d,0x3e,0x61,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x66,0x29,0x29,0x3b,0x63,0x26,0x26,0x28,0x6e,0x3d,0x21,0x30,0x2c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x62,0x72,0x6f,0x61,0x64,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x67,0x6c,0x6f,0x62,0x2d,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x22,0x2c,0x5b,0x60,0x59,0x6f,0x75,0x72,0x20,0x5c,0x60,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x5c,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x20,0x61,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x6c,0x6f,0x6f,0x6b,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x63,0x63,0x69,0x64,0x65,0x6e,0x74,0x61,0x6c,0x6c,0x79,0x20,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x61,0x6c,0x6c,0x20,0x6f,0x66,0x20,0x5c,0x60,0x24,0x7b,0x63,0x7d,0x5c,0x60,0x20,0x61,0x6e,0x64,0x20,0x63,0x61,0x6e,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x73,0x65,0x72,0x69,0x6f,0x75,0x73,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x69,0x73,0x73,0x75,0x65,0x73,0x2e,0x60,0x2c,0x60,0x50,0x61,0x74,0x74,0x65,0x72,0x6e,0x3a,0x20,0x5c,0x60,0x24,0x7b,0x6c,0x7d,0x5c,0x60,0x60,0x2c,0x22,0x53,0x65,0x65,0x20,0x6f,0x75,0x72,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x72,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x61,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x23,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2d,0x72,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x61,0x74,0x69,0x6f,0x6e,0x73,0x22,0x5d,0x29,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x6d,0x61,0x70,0x28,0x6f,0x3d,0x3e,0x6f,0x2e,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x6e,0x3d,0x63,0x32,0x28,0x74,0x29,0x2c,0x61,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x4a,0x65,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x28,0x22,0x46,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x66,0x69,0x6c,0x65,0x73,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x63,0x73,0x2e,0x73,0x79,0x6e,0x63,0x28,0x74,0x2c,0x7b,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x29,0x7b,0x6e,0x28,0x6f,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x65,0x2e,0x67,0x65,0x74,0x28,0x6f,0x29,0x7c,0x7c,0x2d,0x31,0x2f,0x30,0x2c,0x63,0x3d,0x62,0x65,0x2e,0x73,0x74,0x61,0x74,0x53,0x79,0x6e,0x63,0x28,0x6f,0x29,0x2e,0x6d,0x74,0x69,0x6d,0x65,0x4d,0x73,0x3b,0x63,0x3e,0x6c,0x26,0x26,0x28,0x61,0x2e,0x61,0x64,0x64,0x28,0x6f,0x29,0x2c,0x69,0x2e,0x73,0x65,0x74,0x28,0x6f,0x2c,0x63,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4a,0x65,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x45,0x6e,0x64,0x28,0x22,0x46,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x66,0x69,0x6c,0x65,0x73,0x22,0x29,0x2c,0x5b,0x61,0x2c,0x69,0x5d,0x7d,0x76,0x61,0x72,0x20,0x70,0x67,0x2c,0x67,0x67,0x2c,0x79,0x67,0x2c,0x62,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x65,0x74,0x28,0x29,0x3b,0x58,0x68,0x28,0x29,0x3b,0x4a,0x68,0x28,0x29,0x3b,0x5a,0x68,0x28,0x29,0x3b,0x69,0x6d,0x28,0x29,0x3b,0x49,0x74,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x70,0x67,0x3d,0x70,0x65,0x28,0x63,0x67,0x28,0x29,0x29,0x3b,0x67,0x67,0x3d,0x5b,0x22,0x6e,0x6f,0x64,0x65,0x5f,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x22,0x5d,0x2c,0x79,0x67,0x3d,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x28,0x24,0x7b,0x67,0x67,0x2e,0x6d,0x61,0x70,0x28,0x72,0x3d,0x3e,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x72,0x61,0x77,0x60,0x5c,0x62,0x24,0x7b,0x72,0x7d,0x5c,0x62,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x29,0x60,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x67,0x28,0x29,0x7b,0x7d,0x76,0x61,0x72,0x20,0x76,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x60,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x74,0x7d,0x60,0x3b,0x69,0x66,0x28,0x62,0x65,0x2e,0x65,0x78,0x69,0x73,0x74,0x73,0x53,0x79,0x6e,0x63,0x28,0x69,0x29,0x26,0x26,0x62,0x65,0x2e,0x73,0x74,0x61,0x74,0x53,0x79,0x6e,0x63,0x28,0x69,0x29,0x2e,0x69,0x73,0x46,0x69,0x6c,0x65,0x28,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x60,0x24,0x7b,0x72,0x7d,0x2f,0x69,0x6e,0x64,0x65,0x78,0x24,0x7b,0x74,0x7d,0x60,0x3b,0x69,0x66,0x28,0x62,0x65,0x2e,0x65,0x78,0x69,0x73,0x74,0x73,0x53,0x79,0x6e,0x63,0x28,0x69,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x78,0x67,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x3d,0x6d,0x65,0x2e,0x65,0x78,0x74,0x6e,0x61,0x6d,0x65,0x28,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x67,0x32,0x28,0x6d,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x65,0x2c,0x72,0x29,0x2c,0x64,0x32,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x69,0x29,0x3f,0x68,0x32,0x3a,0x6d,0x32,0x29,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x74,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x74,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x2c,0x79,0x69,0x65,0x6c,0x64,0x20,0x6e,0x2c,0x65,0x3d,0x6d,0x65,0x2e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x6e,0x29,0x2c,0x69,0x3d,0x6d,0x65,0x2e,0x65,0x78,0x74,0x6e,0x61,0x6d,0x65,0x28,0x6e,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x62,0x65,0x2e,0x72,0x65,0x61,0x64,0x46,0x69,0x6c,0x65,0x53,0x79,0x6e,0x63,0x28,0x6e,0x2c,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x5b,0x2e,0x2e,0x2e,0x61,0x2e,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x28,0x2f,0x69,0x6d,0x70,0x6f,0x72,0x74,0x5b,0x5c,0x73,0x5c,0x53,0x5d,0x2a,0x3f,0x5b,0x27,0x22,0x5d,0x28,0x2e,0x7b,0x33,0x2c,0x7d,0x3f,0x29,0x5b,0x27,0x22,0x5d,0x2f,0x67,0x69,0x29,0x2c,0x2e,0x2e,0x2e,0x61,0x2e,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x28,0x2f,0x69,0x6d,0x70,0x6f,0x72,0x74,0x5b,0x5c,0x73,0x5c,0x53,0x5d,0x2a,0x66,0x72,0x6f,0x6d,0x5b,0x5c,0x73,0x5c,0x53,0x5d,0x2a,0x3f,0x5b,0x27,0x22,0x5d,0x28,0x2e,0x7b,0x33,0x2c,0x7d,0x3f,0x29,0x5b,0x27,0x22,0x5d,0x2f,0x67,0x69,0x29,0x2c,0x2e,0x2e,0x2e,0x61,0x2e,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x28,0x2f,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x5c,0x28,0x5b,0x27,0x22,0x60,0x5d,0x28,0x2e,0x2b,0x29,0x5b,0x27,0x22,0x60,0x5d,0x5c,0x29,0x2f,0x67,0x69,0x29,0x5d,0x29,0x21,0x73,0x5b,0x31,0x5d,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2e,0x22,0x29,0x7c,0x7c,0x28,0x79,0x69,0x65,0x6c,0x64,0x2a,0x78,0x67,0x28,0x73,0x5b,0x31,0x5d,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x78,0x67,0x28,0x72,0x2c,0x6d,0x65,0x2e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x72,0x29,0x2c,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x29,0x29,0x7d,0x76,0x61,0x72,0x20,0x64,0x32,0x2c,0x68,0x32,0x2c,0x6d,0x32,0x2c,0x6b,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x65,0x74,0x28,0x29,0x3b,0x64,0x32,0x3d,0x5b,0x22,0x2e,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x63,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x6d,0x6a,0x73,0x22,0x5d,0x2c,0x68,0x32,0x3d,0x5b,0x22,0x22,0x2c,0x22,0x2e,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x63,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x6d,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x74,0x73,0x22,0x2c,0x22,0x2e,0x63,0x74,0x73,0x22,0x2c,0x22,0x2e,0x6d,0x74,0x73,0x22,0x2c,0x22,0x2e,0x6a,0x73,0x78,0x22,0x2c,0x22,0x2e,0x74,0x73,0x78,0x22,0x5d,0x2c,0x6d,0x32,0x3d,0x5b,0x22,0x22,0x2c,0x22,0x2e,0x74,0x73,0x22,0x2c,0x22,0x2e,0x63,0x74,0x73,0x22,0x2c,0x22,0x2e,0x6d,0x74,0x73,0x22,0x2c,0x22,0x2e,0x74,0x73,0x78,0x22,0x2c,0x22,0x2e,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x63,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x6d,0x6a,0x73,0x22,0x2c,0x22,0x2e,0x6a,0x73,0x78,0x22,0x5d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x79,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x69,0x66,0x28,0x41,0x6c,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x6c,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x64,0x67,0x28,0x72,0x2c,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x6c,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x74,0x29,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x32,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x61,0x28,0x72,0x29,0x3b,0x69,0x66,0x28,0x65,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x5d,0x3d,0x41,0x67,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x7c,0x7c,0x5b,0x5d,0x2c,0x6f,0x3d,0x53,0x6c,0x28,0x65,0x29,0x2c,0x6c,0x3d,0x21,0x31,0x2c,0x63,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x20,0x6f,0x66,0x20,0x6f,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x62,0x65,0x2e,0x73,0x74,0x61,0x74,0x53,0x79,0x6e,0x63,0x28,0x70,0x29,0x2e,0x6d,0x74,0x69,0x6d,0x65,0x4d,0x73,0x3b,0x63,0x2e,0x73,0x65,0x74,0x28,0x70,0x2c,0x68,0x29,0x2c,0x28,0x21,0x73,0x7c,0x7c,0x21,0x73,0x2e,0x68,0x61,0x73,0x28,0x70,0x29,0x7c,0x7c,0x68,0x3e,0x73,0x2e,0x67,0x65,0x74,0x28,0x70,0x29,0x29,0x26,0x26,0x28,0x6c,0x3d,0x21,0x30,0x29,0x7d,0x69,0x66,0x28,0x21,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x65,0x2c,0x6e,0x2c,0x61,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x20,0x6f,0x66,0x20,0x6f,0x29,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x70,0x66,0x2e,0x63,0x61,0x63,0x68,0x65,0x5b,0x70,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x73,0x6c,0x28,0x7a,0x72,0x28,0x77,0x67,0x28,0x65,0x29,0x29,0x29,0x2c,0x64,0x3d,0x56,0x69,0x28,0x66,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x67,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x5b,0x66,0x2c,0x64,0x2c,0x6f,0x2c,0x63,0x5d,0x29,0x2c,0x5b,0x66,0x2c,0x65,0x2c,0x64,0x2c,0x6f,0x5d,0x7d,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7a,0x72,0x28,0x72,0x3f,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3f,0x3f,0x72,0x3f,0x3f,0x7b,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x73,0x6c,0x28,0x74,0x29,0x2c,0x5b,0x74,0x2c,0x6e,0x75,0x6c,0x6c,0x2c,0x56,0x69,0x28,0x74,0x29,0x2c,0x5b,0x5d,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x65,0x2c,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x44,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x3a,0x74,0x7d,0x29,0x3d,0x3e,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x5d,0x3d,0x62,0x32,0x28,0x72,0x29,0x2c,0x63,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x6c,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x73,0x69,0x7a,0x65,0x3e,0x30,0x29,0x7b,0x63,0x2e,0x61,0x64,0x64,0x28,0x6e,0x2e,0x6f,0x70,0x74,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x62,0x20,0x6f,0x66,0x20,0x6e,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x29,0x62,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x22,0x26,0x26,0x63,0x2e,0x61,0x64,0x64,0x28,0x62,0x2e,0x66,0x69,0x6c,0x65,0x29,0x7d,0x6c,0x65,0x74,0x5b,0x66,0x2c,0x2c,0x64,0x5d,0x3d,0x7a,0x68,0x28,0x69,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x63,0x29,0x2c,0x70,0x3d,0x66,0x73,0x28,0x66,0x29,0x2c,0x68,0x3d,0x79,0x32,0x28,0x66,0x2c,0x61,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x73,0x69,0x7a,0x65,0x3e,0x30,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x6f,0x66,0x20,0x68,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x77,0x20,0x6f,0x66,0x20,0x72,0x6c,0x28,0x79,0x29,0x29,0x74,0x28,0x77,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x62,0x2c,0x76,0x5d,0x3d,0x6d,0x67,0x28,0x66,0x2c,0x68,0x2c,0x70,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x6f,0x66,0x20,0x62,0x29,0x66,0x2e,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x79,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x79,0x2c,0x77,0x5d,0x6f,0x66,0x20,0x76,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x64,0x2e,0x73,0x65,0x74,0x28,0x79,0x2c,0x77,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x62,0x20,0x6f,0x66,0x20,0x6c,0x29,0x74,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x22,0x2c,0x66,0x69,0x6c,0x65,0x3a,0x62,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x62,0x2c,0x76,0x5d,0x6f,0x66,0x20,0x64,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x70,0x2e,0x73,0x65,0x74,0x28,0x62,0x2c,0x76,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x7d,0x7d,0x76,0x61,0x72,0x20,0x53,0x67,0x2c,0x41,0x67,0x2c,0x41,0x6c,0x2c,0x43,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x53,0x67,0x3d,0x70,0x65,0x28,0x4e,0x73,0x28,0x29,0x29,0x3b,0x79,0x66,0x28,0x29,0x3b,0x69,0x61,0x28,0x29,0x3b,0x73,0x63,0x28,0x29,0x3b,0x5f,0x69,0x28,0x29,0x3b,0x55,0x68,0x28,0x29,0x3b,0x59,0x68,0x28,0x29,0x3b,0x62,0x67,0x28,0x29,0x3b,0x76,0x67,0x28,0x29,0x3b,0x6b,0x67,0x28,0x29,0x3b,0x41,0x67,0x3d,0x6e,0x65,0x77,0x20,0x53,0x67,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x3a,0x31,0x30,0x30,0x7d,0x29,0x2c,0x41,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x6c,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x69,0x66,0x28,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x6e,0x3d,0x3e,0x7b,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x70,0x70,0x6c,0x79,0x22,0x26,0x26,0x69,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x2c,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x69,0x6d,0x70,0x6f,0x72,0x74,0x22,0x26,0x26,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x27,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x62,0x61,0x73,0x65,0x22,0x27,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x27,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x62,0x61,0x73,0x65,0x27,0x22,0x3f,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x62,0x61,0x73,0x65,0x22,0x29,0x3a,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x27,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x27,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x27,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x27,0x22,0x3f,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x29,0x3a,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x27,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x27,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x27,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x27,0x22,0x3f,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x3a,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x27,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x27,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x27,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x27,0x22,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x27,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x27,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x27,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x27,0x22,0x29,0x26,0x26,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x29,0x29,0x2c,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x26,0x26,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x22,0x26,0x26,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x29,0x2c,0x65,0x2e,0x61,0x64,0x64,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x29,0x2c,0x5b,0x22,0x6c,0x61,0x79,0x65,0x72,0x22,0x2c,0x22,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x22,0x2c,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x26,0x26,0x28,0x5b,0x22,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x22,0x2c,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x26,0x26,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x24,0x7b,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x61,0x74,0x2d,0x72,0x75,0x6c,0x65,0x2d,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x60,0x2c,0x5b,0x60,0x54,0x68,0x65,0x20,0x5c,0x60,0x40,0x24,0x7b,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x5c,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x76,0x33,0x2e,0x30,0x2e,0x60,0x2c,0x22,0x55,0x73,0x65,0x20,0x60,0x40,0x6c,0x61,0x79,0x65,0x72,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x60,0x20,0x6f,0x72,0x20,0x60,0x40,0x6c,0x61,0x79,0x65,0x72,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x75,0x70,0x67,0x72,0x61,0x64,0x65,0x2d,0x67,0x75,0x69,0x64,0x65,0x23,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2d,0x77,0x69,0x74,0x68,0x2d,0x6c,0x61,0x79,0x65,0x72,0x22,0x5d,0x29,0x2c,0x74,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x29,0x7d,0x29,0x2c,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x22,0x62,0x61,0x73,0x65,0x22,0x29,0x7c,0x7c,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x29,0x7c,0x7c,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x74,0x29,0x69,0x66,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6c,0x61,0x79,0x65,0x72,0x22,0x26,0x26,0x5b,0x22,0x62,0x61,0x73,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x2c,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x5c,0x60,0x40,0x6c,0x61,0x79,0x65,0x72,0x20,0x24,0x7b,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x7d,0x5c,0x60,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x75,0x74,0x20,0x6e,0x6f,0x20,0x6d,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x5c,0x60,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x24,0x7b,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x7d,0x5c,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x69,0x73,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x2e,0x60,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x60,0x40,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x69,0x76,0x65,0x60,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x75,0x74,0x20,0x60,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x60,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2e,0x22,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x26,0x26,0x21,0x65,0x2e,0x68,0x61,0x73,0x28,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x60,0x40,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x60,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x75,0x74,0x20,0x60,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x60,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2e,0x22,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x65,0x2c,0x61,0x70,0x70,0x6c,0x79,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x69,0x7d,0x7d,0x76,0x61,0x72,0x20,0x5f,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x74,0x28,0x72,0x2c,0x65,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x74,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3d,0x7b,0x2e,0x2e,0x2e,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x2c,0x2e,0x2e,0x2e,0x74,0x7d,0x29,0x2c,0x65,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x45,0x67,0x28,0x6e,0x2c,0x61,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x61,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3f,0x2e,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x53,0x6f,0x75,0x72,0x63,0x65,0x3d,0x3d,0x3d,0x21,0x30,0x26,0x26,0x61,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x61,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x65,0x7d,0x29,0x2c,0x6e,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x65,0x28,0x72,0x29,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x72,0x2e,0x65,0x61,0x63,0x68,0x3f,0x2e,0x28,0x74,0x3d,0x3e,0x45,0x67,0x28,0x74,0x2c,0x65,0x29,0x29,0x7d,0x76,0x61,0x72,0x20,0x4f,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x3f,0x72,0x3a,0x5b,0x72,0x5d,0x2c,0x72,0x3d,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x3f,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x65,0x29,0x2c,0x72,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x65,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x45,0x6c,0x28,0x72,0x29,0x2c,0x22,0x67,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x72,0x2e,0x6d,0x61,0x70,0x28,0x45,0x6c,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x29,0x60,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4f,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x28,0x3f,0x3a,0x24,0x7b,0x45,0x6c,0x28,0x72,0x29,0x7d,0x29,0x3f,0x60,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x67,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x77,0x32,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x29,0x3f,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x54,0x67,0x2c,0x22,0x5c,0x5c,0x24,0x26,0x22,0x29,0x3a,0x72,0x7c,0x7c,0x22,0x22,0x7d,0x76,0x61,0x72,0x20,0x54,0x67,0x2c,0x77,0x32,0x2c,0x50,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x54,0x67,0x3d,0x2f,0x5b,0x5c,0x5c,0x5e,0x24,0x2e,0x2a,0x2b,0x3f,0x28,0x29,0x5b,0x5c,0x5d,0x7b,0x7d,0x7c,0x5d,0x2f,0x67,0x2c,0x77,0x32,0x3d,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x54,0x67,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x49,0x67,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x76,0x32,0x28,0x72,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x65,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x6e,0x29,0x3f,0x3f,0x5b,0x5d,0x29,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x53,0x32,0x28,0x61,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x76,0x65,0x28,0x6e,0x2c,0x22,0x2e,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x3d,0x30,0x3b,0x73,0x3c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x73,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x61,0x5b,0x73,0x5d,0x3b,0x69,0x66,0x28,0x73,0x3e,0x3d,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x29,0x7b,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x61,0x5b,0x73,0x2b,0x31,0x5d,0x29,0x3b,0x69,0x73,0x4e,0x61,0x4e,0x28,0x6c,0x29,0x3f,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3a,0x73,0x2b,0x2b,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x76,0x32,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2c,0x74,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x21,0x3d,0x3d,0x22,0x22,0x3f,0x4f,0x6c,0x28,0x4e,0x65,0x28,0x5b,0x2f,0x2d,0x3f,0x2f,0x2c,0x52,0x67,0x28,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x5d,0x29,0x29,0x3a,0x22,0x22,0x2c,0x69,0x3d,0x71,0x74,0x28,0x5b,0x2f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x3a,0x27,0x22,0x60,0x5d,0x2b,0x3a,0x5b,0x5e,0x5c,0x73,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5d,0x2f,0x2c,0x2f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x3a,0x27,0x22,0x60,0x5c,0x5d,0x5d,0x2b,0x3a,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x3f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x5c,0x5d,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x3f,0x5c,0x5d,0x2f,0x2c,0x4e,0x65,0x28,0x5b,0x71,0x74,0x28,0x5b,0x2f,0x2d,0x3f,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x29,0x2f,0x2c,0x2f,0x40,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x29,0x2f,0x5d,0x29,0x2c,0x4f,0x6c,0x28,0x71,0x74,0x28,0x5b,0x4e,0x65,0x28,0x5b,0x71,0x74,0x28,0x5b,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x27,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x27,0x5c,0x5d,0x2f,0x2c,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x22,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x22,0x5c,0x5d,0x2f,0x2c,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x60,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x60,0x5c,0x5d,0x2f,0x2c,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x28,0x3f,0x3a,0x5b,0x5e,0x5c,0x73,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5d,0x29,0x2a,0x5b,0x5e,0x5c,0x73,0x3a,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5d,0x2f,0x5d,0x29,0x2c,0x2f,0x28,0x3f,0x21,0x5b,0x7b,0x28,0x5b,0x5d,0x5d,0x29,0x2f,0x2c,0x2f,0x28,0x3f,0x3a,0x5c,0x2f,0x5b,0x5e,0x5c,0x73,0x27,0x22,0x60,0x5c,0x5c,0x3e,0x3c,0x24,0x5d,0x2a,0x29,0x3f,0x2f,0x5d,0x29,0x2c,0x4e,0x65,0x28,0x5b,0x71,0x74,0x28,0x5b,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x27,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x27,0x5c,0x5d,0x2f,0x2c,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x22,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x22,0x5c,0x5d,0x2f,0x2c,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x60,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x60,0x5c,0x5d,0x2f,0x2c,0x2f,0x2d,0x28,0x3f,0x3a,0x5c,0x77,0x2b,0x2d,0x29,0x2a,0x5c,0x5b,0x28,0x3f,0x3a,0x5b,0x5e,0x5c,0x73,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5d,0x29,0x2a,0x5b,0x5e,0x5c,0x73,0x5c,0x5b,0x5c,0x5d,0x5d,0x2b,0x5c,0x5d,0x2f,0x5d,0x29,0x2c,0x2f,0x28,0x3f,0x21,0x5b,0x7b,0x28,0x5b,0x5d,0x5d,0x29,0x2f,0x2c,0x2f,0x28,0x3f,0x3a,0x5c,0x2f,0x5b,0x5e,0x5c,0x73,0x27,0x22,0x60,0x5c,0x5c,0x24,0x5d,0x2a,0x29,0x3f,0x2f,0x5d,0x29,0x2c,0x2f,0x5b,0x2d,0x5c,0x2f,0x5d,0x5b,0x5e,0x5c,0x73,0x27,0x22,0x60,0x5c,0x5c,0x24,0x3d,0x7b,0x3e,0x3c,0x5d,0x2a,0x2f,0x5d,0x29,0x29,0x5d,0x29,0x5d,0x29,0x2c,0x6e,0x3d,0x5b,0x71,0x74,0x28,0x5b,0x4e,0x65,0x28,0x5b,0x2f,0x40,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5d,0x2b,0x5c,0x5d,0x28,0x5c,0x2f,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5d,0x2b,0x29,0x3f,0x2f,0x2c,0x65,0x5d,0x29,0x2c,0x4e,0x65,0x28,0x5b,0x2f,0x28,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5c,0x5b,0x5c,0x5c,0x5d,0x2b,0x2d,0x29,0x3f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5d,0x2b,0x5c,0x5d,0x5c,0x2f,0x5b,0x5c,0x77,0x5f,0x2d,0x5d,0x2b,0x2f,0x2c,0x65,0x5d,0x29,0x2c,0x4e,0x65,0x28,0x5b,0x2f,0x28,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5c,0x5b,0x5c,0x5c,0x5d,0x2b,0x2d,0x29,0x3f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5d,0x2b,0x5c,0x5d,0x2f,0x2c,0x65,0x5d,0x29,0x2c,0x4e,0x65,0x28,0x5b,0x2f,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5c,0x5b,0x5c,0x5c,0x5d,0x2b,0x2f,0x2c,0x65,0x5d,0x29,0x5d,0x29,0x2c,0x71,0x74,0x28,0x5b,0x4e,0x65,0x28,0x5b,0x2f,0x28,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5c,0x5b,0x5c,0x5c,0x5d,0x2b,0x2d,0x29,0x3f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x60,0x5d,0x2b,0x5c,0x5d,0x5c,0x2f,0x5b,0x5c,0x77,0x5f,0x2d,0x5d,0x2b,0x2f,0x2c,0x65,0x5d,0x29,0x2c,0x4e,0x65,0x28,0x5b,0x2f,0x28,0x5b,0x5e,0x5c,0x73,0x22,0x27,0x60,0x5c,0x5b,0x5c,0x5c,0x5d,0x2b,0x2d,0x29,0x3f,0x5c,0x5b,0x5b,0x5e,0x5c,0x73,0x60,0x5d,0x2b,0x5c,0x5d,0x2f,0x2c,0x65,0x5d,0x29,0x2c,0x4e,0x65,0x28,0x5b,0x2f,0x5b,0x5e,0x5c,0x73,0x60,0x5c,0x5b,0x5c,0x5c,0x5d,0x2b,0x2f,0x2c,0x65,0x5d,0x29,0x5d,0x29,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x79,0x69,0x65,0x6c,0x64,0x20,0x4e,0x65,0x28,0x5b,0x22,0x28,0x28,0x3f,0x3d,0x28,0x28,0x22,0x2c,0x61,0x2c,0x22,0x29,0x2b,0x29,0x29,0x5c,0x5c,0x32,0x29,0x3f,0x22,0x2c,0x2f,0x21,0x3f,0x2f,0x2c,0x74,0x2c,0x69,0x5d,0x29,0x3b,0x79,0x69,0x65,0x6c,0x64,0x2f,0x5b,0x5e,0x3c,0x3e,0x22,0x27,0x60,0x5c,0x73,0x2e,0x28,0x29,0x7b,0x7d,0x5b,0x5c,0x5d,0x23,0x3d,0x25,0x24,0x5d,0x5b,0x5e,0x3c,0x3e,0x22,0x27,0x60,0x5c,0x73,0x28,0x29,0x7b,0x7d,0x5b,0x5c,0x5d,0x23,0x3d,0x25,0x24,0x5d,0x2a,0x5b,0x5e,0x3c,0x3e,0x22,0x27,0x60,0x5c,0x73,0x2e,0x28,0x29,0x7b,0x7d,0x5b,0x5c,0x5d,0x23,0x3d,0x25,0x3a,0x24,0x5d,0x2f,0x67,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x53,0x32,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x21,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x5b,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x30,0x2c,0x74,0x3d,0x5b,0x5d,0x2c,0x69,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x28,0x78,0x32,0x29,0x3b,0x69,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x69,0x29,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x2c,0x2e,0x2e,0x2e,0x61,0x5d,0x3d,0x6e,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x6d,0x61,0x70,0x28,0x28,0x73,0x2c,0x6f,0x29,0x3d,0x3e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x5b,0x5d,0x2c,0x6e,0x2c,0x7b,0x69,0x6e,0x64,0x65,0x78,0x3a,0x6e,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x6f,0x2c,0x30,0x3a,0x73,0x7d,0x29,0x29,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x5b,0x30,0x5d,0x2c,0x73,0x3d,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x73,0x3f,0x74,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3a,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x27,0x22,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x27,0x22,0x27,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x22,0x60,0x22,0x29,0x26,0x26,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x2c,0x21,0x73,0x29,0x7b,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x5b,0x22,0x29,0x7b,0x65,0x2b,0x2b,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x61,0x3d,0x3d,0x3d,0x22,0x5d,0x22,0x29,0x7b,0x65,0x2d,0x2d,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x65,0x3c,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x6e,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2d,0x31,0x29,0x3b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x21,0x6b,0x32,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x73,0x75,0x62,0x73,0x74,0x72,0x69,0x6e,0x67,0x28,0x30,0x2c,0x6e,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x76,0x61,0x72,0x20,0x78,0x32,0x2c,0x6b,0x32,0x2c,0x44,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x50,0x67,0x28,0x29,0x3b,0x7a,0x74,0x28,0x29,0x3b,0x78,0x32,0x3d,0x2f,0x28,0x5b,0x5c,0x5b,0x5c,0x5d,0x27,0x22,0x60,0x5d,0x29,0x28,0x5b,0x5e,0x5c,0x5b,0x5c,0x5d,0x27,0x22,0x60,0x5d,0x29,0x3f,0x2f,0x67,0x2c,0x6b,0x32,0x3d,0x2f,0x5b,0x5e,0x22,0x27,0x60,0x5c,0x73,0x3c,0x3e,0x5c,0x5d,0x5d,0x2b,0x2f,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x5b,0x65,0x5d,0x7c,0x7c,0x74,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x7c,0x7c,0x24,0x67,0x5b,0x65,0x5d,0x7c,0x7c,0x24,0x67,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x43,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x5b,0x65,0x5d,0x7c,0x7c,0x74,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x7c,0x7c,0x4c,0x67,0x5b,0x65,0x5d,0x7c,0x7c,0x4c,0x67,0x2e,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x32,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x71,0x69,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x7c,0x7c,0x71,0x69,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x6e,0x65,0x77,0x20,0x71,0x67,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x7b,0x6d,0x61,0x78,0x53,0x69,0x7a,0x65,0x3a,0x32,0x35,0x65,0x33,0x7d,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x29,0x69,0x66,0x28,0x6e,0x3d,0x6e,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x21,0x69,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x29,0x69,0x66,0x28,0x69,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x2c,0x71,0x69,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x71,0x69,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x2e,0x67,0x65,0x74,0x28,0x6e,0x29,0x29,0x74,0x2e,0x61,0x64,0x64,0x28,0x61,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x28,0x6e,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6f,0x3d,0x3e,0x6f,0x21,0x3d,0x3d,0x22,0x21,0x2a,0x22,0x29,0x2c,0x73,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x61,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x29,0x74,0x2e,0x61,0x64,0x64,0x28,0x6f,0x29,0x3b,0x71,0x69,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x2e,0x73,0x65,0x74,0x28,0x6e,0x2c,0x73,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x72,0x29,0x2c,0x69,0x3d,0x7b,0x62,0x61,0x73,0x65,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x6e,0x2c,0x61,0x5d,0x6f,0x66,0x20,0x74,0x29,0x69,0x5b,0x6e,0x2e,0x6c,0x61,0x79,0x65,0x72,0x5d,0x2e,0x61,0x64,0x64,0x28,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x62,0x61,0x73,0x65,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x6e,0x75,0x6c,0x6c,0x7d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x79,0x3d,0x3e,0x7b,0x79,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x26,0x26,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x79,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x26,0x26,0x28,0x74,0x5b,0x79,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x5d,0x3d,0x79,0x29,0x7d,0x29,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x74,0x29,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x79,0x3d,0x3e,0x79,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x72,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x73,0x3f,0x3f,0x5b,0x5d,0x2c,0x67,0x74,0x5d,0x29,0x2c,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x28,0x22,0x52,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x66,0x69,0x6c,0x65,0x73,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x6f,0x66,0x20,0x72,0x2e,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x43,0x32,0x28,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x79,0x2e,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x29,0x2c,0x6b,0x3d,0x41,0x32,0x28,0x72,0x2c,0x79,0x2e,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x29,0x3b,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x79,0x2c,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x3a,0x77,0x2c,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x3a,0x6b,0x7d,0x5d,0x29,0x7d,0x6c,0x65,0x74,0x20,0x73,0x3d,0x35,0x30,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x3d,0x30,0x3b,0x79,0x3c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x79,0x2b,0x3d,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x79,0x2c,0x79,0x2b,0x73,0x29,0x3b,0x61,0x77,0x61,0x69,0x74,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x61,0x6c,0x6c,0x28,0x77,0x2e,0x6d,0x61,0x70,0x28,0x61,0x73,0x79,0x6e,0x63,0x28,0x5b,0x7b,0x66,0x69,0x6c,0x65,0x3a,0x6b,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x53,0x7d,0x2c,0x7b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x3a,0x45,0x2c,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x6f,0x72,0x3a,0x4f,0x7d,0x5d,0x29,0x3d,0x3e,0x7b,0x53,0x3d,0x6b,0x3f,0x61,0x77,0x61,0x69,0x74,0x20,0x62,0x65,0x2e,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x73,0x2e,0x72,0x65,0x61,0x64,0x46,0x69,0x6c,0x65,0x28,0x6b,0x2c,0x22,0x75,0x74,0x66,0x38,0x22,0x29,0x3a,0x53,0x2c,0x5f,0x32,0x28,0x45,0x28,0x53,0x29,0x2c,0x4f,0x2c,0x69,0x2c,0x6e,0x29,0x7d,0x29,0x29,0x7d,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x45,0x6e,0x64,0x28,0x22,0x52,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x66,0x69,0x6c,0x65,0x73,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x72,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x69,0x7a,0x65,0x3b,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x28,0x22,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x22,0x29,0x2c,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x28,0x22,0x53,0x6f,0x72,0x74,0x69,0x6e,0x67,0x20,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x73,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x69,0x5d,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x79,0x2c,0x77,0x29,0x3d,0x3e,0x79,0x3d,0x3d,0x3d,0x77,0x3f,0x30,0x3a,0x79,0x3c,0x77,0x3f,0x2d,0x31,0x3a,0x31,0x29,0x29,0x3b,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x45,0x6e,0x64,0x28,0x22,0x53,0x6f,0x72,0x74,0x69,0x6e,0x67,0x20,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x73,0x22,0x29,0x2c,0x73,0x73,0x28,0x6c,0x2c,0x72,0x29,0x2c,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x45,0x6e,0x64,0x28,0x22,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x72,0x75,0x6c,0x65,0x73,0x22,0x29,0x2c,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x28,0x22,0x42,0x75,0x69,0x6c,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x29,0x2c,0x28,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x72,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x69,0x7a,0x65,0x21,0x3d,0x3d,0x6f,0x29,0x26,0x26,0x28,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x3d,0x45,0x32,0x28,0x5b,0x2e,0x2e,0x2e,0x72,0x2e,0x72,0x75,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x5d,0x2c,0x72,0x29,0x29,0x2c,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x45,0x6e,0x64,0x28,0x22,0x42,0x75,0x69,0x6c,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x29,0x3b,0x6c,0x65,0x74,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x63,0x2c,0x62,0x61,0x73,0x65,0x3a,0x66,0x2c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x64,0x2c,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3a,0x70,0x2c,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3a,0x68,0x7d,0x3d,0x72,0x2e,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x3b,0x74,0x2e,0x62,0x61,0x73,0x65,0x26,0x26,0x28,0x74,0x2e,0x62,0x61,0x73,0x65,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x51,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x63,0x2c,0x2e,0x2e,0x2e,0x66,0x5d,0x2c,0x74,0x2e,0x62,0x61,0x73,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x62,0x61,0x73,0x65,0x22,0x7d,0x29,0x29,0x2c,0x74,0x2e,0x62,0x61,0x73,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x2c,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x26,0x26,0x28,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x51,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x64,0x5d,0x2c,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x7d,0x29,0x29,0x2c,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x2c,0x74,0x2e,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x26,0x26,0x28,0x74,0x2e,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x51,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x70,0x5d,0x2c,0x74,0x2e,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x7d,0x29,0x29,0x2c,0x74,0x2e,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x68,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x79,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x77,0x3d,0x79,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x3f,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3a,0x77,0x3d,0x3d,0x3d,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x3f,0x74,0x2e,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x3f,0x28,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x51,0x74,0x28,0x62,0x2c,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x7d,0x29,0x29,0x2c,0x74,0x2e,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x3a,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x65,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x51,0x74,0x28,0x62,0x2c,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0x22,0x7d,0x29,0x29,0x2c,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3d,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x65,0x6e,0x64,0x3f,0x3f,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x3b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x62,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x79,0x3d,0x3e,0x79,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4c,0x61,0x79,0x65,0x72,0x3d,0x3d,0x3d,0x22,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x22,0x29,0x3b,0x74,0x2e,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x26,0x26,0x70,0x2e,0x73,0x69,0x7a,0x65,0x3d,0x3d,0x3d,0x30,0x26,0x26,0x21,0x76,0x26,0x26,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x70,0x72,0x6f,0x62,0x6c,0x65,0x6d,0x73,0x22,0x2c,0x5b,0x22,0x4e,0x6f,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x20,0x77,0x65,0x72,0x65,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x66,0x69,0x6c,0x65,0x73,0x2e,0x20,0x49,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x2c,0x20,0x64,0x6f,0x75,0x62,0x6c,0x65,0x2d,0x63,0x68,0x65,0x63,0x6b,0x20,0x74,0x68,0x65,0x20,0x60,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x29,0x2c,0x62,0x74,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x28,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x50,0x6f,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x65,0x73,0x3a,0x20,0x22,0x2c,0x69,0x2e,0x73,0x69,0x7a,0x65,0x29,0x2c,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x22,0x41,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x73,0x3a,0x20,0x22,0x2c,0x5a,0x6e,0x2e,0x73,0x69,0x7a,0x65,0x29,0x29,0x2c,0x72,0x2e,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x5b,0x5d,0x2c,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x6c,0x61,0x79,0x65,0x72,0x22,0x2c,0x79,0x3d,0x3e,0x7b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x79,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x26,0x26,0x79,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x71,0x67,0x2c,0x62,0x74,0x2c,0x24,0x67,0x2c,0x4c,0x67,0x2c,0x71,0x69,0x2c,0x4d,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x71,0x67,0x3d,0x70,0x65,0x28,0x4e,0x73,0x28,0x29,0x29,0x3b,0x49,0x74,0x28,0x29,0x3b,0x61,0x73,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x4f,0x67,0x28,0x29,0x3b,0x44,0x67,0x28,0x29,0x3b,0x62,0x74,0x3d,0x4a,0x65,0x2c,0x24,0x67,0x3d,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x49,0x67,0x7d,0x2c,0x4c,0x67,0x3d,0x7b,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x3a,0x72,0x3d,0x3e,0x72,0x2c,0x73,0x76,0x65,0x6c,0x74,0x65,0x3a,0x72,0x3d,0x3e,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x3f,0x3a,0x5e,0x7c,0x5c,0x73,0x29,0x63,0x6c,0x61,0x73,0x73,0x3a,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x7d,0x3b,0x71,0x69,0x3d,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x73,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x72,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x61,0x3d,0x3e,0x7b,0x28,0x30,0x2c,0x62,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x73,0x3d,0x3e,0x7b,0x73,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x6f,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x6f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x63,0x3d,0x65,0x2e,0x67,0x65,0x74,0x28,0x6c,0x29,0x3b,0x63,0x7c,0x7c,0x65,0x2e,0x73,0x65,0x74,0x28,0x6c,0x2c,0x63,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x29,0x2c,0x63,0x2e,0x61,0x64,0x64,0x28,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x29,0x7d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x79,0x6e,0x63,0x28,0x61,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x2c,0x61,0x3d,0x3e,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x61,0x29,0x29,0x2c,0x6e,0x3d,0x69,0x2e,0x66,0x6c,0x61,0x74,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x6e,0x2c,0x7b,0x67,0x72,0x6f,0x75,0x70,0x73,0x3a,0x69,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x32,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x72,0x29,0x74,0x2e,0x61,0x64,0x64,0x28,0x69,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x65,0x29,0x2e,0x70,0x6f,0x70,0x28,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x42,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x74,0x28,0x65,0x29,0x3a,0x74,0x2b,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x46,0x67,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x79,0x69,0x65,0x6c,0x64,0x20,0x72,0x3b,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x29,0x79,0x69,0x65,0x6c,0x64,0x20,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x72,0x3d,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x32,0x28,0x72,0x2c,0x65,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x72,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x74,0x2c,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x52,0x32,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x46,0x67,0x28,0x72,0x29,0x29,0x69,0x66,0x28,0x72,0x21,0x3d,0x3d,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x72,0x3d,0x54,0x32,0x28,0x65,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x72,0x5d,0x7d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x50,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x69,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x46,0x67,0x28,0x69,0x29,0x29,0x69,0x66,0x28,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3f,0x2e,0x6c,0x61,0x79,0x65,0x72,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x52,0x32,0x28,0x69,0x29,0x2c,0x61,0x3d,0x65,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x22,0x75,0x73,0x65,0x72,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x77,0x73,0x28,0x69,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x2e,0x67,0x65,0x74,0x28,0x73,0x29,0x7c,0x7c,0x5b,0x5d,0x3b,0x74,0x2e,0x73,0x65,0x74,0x28,0x73,0x2c,0x6f,0x29,0x2c,0x6f,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x7b,0x6c,0x61,0x79,0x65,0x72,0x3a,0x22,0x75,0x73,0x65,0x72,0x22,0x2c,0x73,0x6f,0x72,0x74,0x3a,0x61,0x2c,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x21,0x31,0x7d,0x2c,0x6e,0x5d,0x29,0x7d,0x7d,0x29,0x2c,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x49,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x6e,0x6f,0x74,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x7c,0x7c,0x65,0x2e,0x61,0x70,0x70,0x6c,0x79,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x29,0x7b,0x65,0x2e,0x61,0x70,0x70,0x6c,0x79,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x74,0x2c,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x74,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x6e,0x2c,0x61,0x5d,0x29,0x3d,0x3e,0x5b,0x6e,0x2c,0x61,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x29,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x69,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x47,0x6f,0x28,0x74,0x2c,0x65,0x29,0x29,0x3b,0x69,0x66,0x28,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x65,0x2e,0x6e,0x6f,0x74,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x61,0x64,0x64,0x28,0x74,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x65,0x2e,0x61,0x70,0x70,0x6c,0x79,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x74,0x2c,0x69,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x61,0x70,0x70,0x6c,0x79,0x43,0x6c,0x61,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x32,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x67,0x65,0x74,0x3a,0x74,0x3d,0x3e,0x28,0x65,0x3d,0x65,0x7c,0x7c,0x72,0x28,0x29,0x2c,0x65,0x2e,0x67,0x65,0x74,0x28,0x74,0x29,0x29,0x2c,0x68,0x61,0x73,0x3a,0x74,0x3d,0x3e,0x28,0x65,0x3d,0x65,0x7c,0x7c,0x72,0x28,0x29,0x2c,0x65,0x2e,0x68,0x61,0x73,0x28,0x74,0x29,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x32,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x67,0x65,0x74,0x3a,0x65,0x3d,0x3e,0x72,0x2e,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x7c,0x7c,0x5b,0x5d,0x29,0x2c,0x68,0x61,0x73,0x3a,0x65,0x3d,0x3e,0x72,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x67,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5b,0x5c,0x73,0x5c,0x74,0x5c,0x6e,0x5d,0x2b,0x2f,0x67,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x3d,0x3d,0x22,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x3f,0x5b,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x31,0x29,0x2c,0x21,0x30,0x5d,0x3a,0x5b,0x65,0x2c,0x21,0x31,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x67,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x6e,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x61,0x70,0x70,0x6c,0x79,0x22,0x2c,0x6c,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x5b,0x63,0x5d,0x3d,0x6a,0x67,0x28,0x6c,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x66,0x20,0x6f,0x66,0x20,0x63,0x29,0x69,0x2e,0x61,0x64,0x64,0x28,0x66,0x29,0x3b,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6c,0x29,0x7d,0x29,0x2c,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x71,0x32,0x28,0x5b,0x74,0x2c,0x49,0x32,0x28,0x69,0x2c,0x65,0x29,0x5d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x28,0x6c,0x2c,0x63,0x2c,0x66,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x52,0x6c,0x28,0x6c,0x29,0x2c,0x70,0x3d,0x52,0x6c,0x28,0x63,0x29,0x2c,0x62,0x3d,0x52,0x6c,0x28,0x60,0x2e,0x24,0x7b,0x54,0x65,0x28,0x66,0x29,0x7d,0x60,0x29,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x2e,0x65,0x61,0x63,0x68,0x28,0x76,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x70,0x2e,0x65,0x61,0x63,0x68,0x28,0x77,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6b,0x3d,0x21,0x31,0x3b,0x77,0x3d,0x77,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x2c,0x77,0x2e,0x77,0x61,0x6c,0x6b,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x28,0x53,0x3d,0x3e,0x7b,0x53,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x28,0x6b,0x7c,0x7c,0x28,0x53,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x2e,0x2e,0x2e,0x76,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x45,0x3d,0x3e,0x45,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x29,0x29,0x2c,0x79,0x2e,0x61,0x64,0x64,0x28,0x77,0x29,0x2c,0x6b,0x3d,0x21,0x30,0x29,0x29,0x7d,0x29,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x77,0x20,0x6f,0x66,0x20,0x79,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6b,0x3d,0x5b,0x5b,0x5d,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x53,0x20,0x6f,0x66,0x20,0x77,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x53,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x3f,0x28,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x53,0x29,0x2c,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x5d,0x29,0x29,0x3a,0x6b,0x5b,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x53,0x29,0x3b,0x77,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x53,0x20,0x6f,0x66,0x20,0x6b,0x29,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x53,0x29,0x26,0x26,0x53,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x45,0x2c,0x4f,0x29,0x3d,0x3e,0x45,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x61,0x67,0x22,0x26,0x26,0x4f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x3f,0x2d,0x31,0x3a,0x45,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x26,0x26,0x4f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x61,0x67,0x22,0x3f,0x31,0x3a,0x45,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x26,0x26,0x4f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x26,0x26,0x4f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x3f,0x2d,0x31,0x3a,0x45,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x26,0x26,0x45,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x26,0x26,0x4f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x3f,0x31,0x3a,0x30,0x29,0x2c,0x77,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x77,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x53,0x29,0x7d,0x76,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x57,0x69,0x74,0x68,0x28,0x2e,0x2e,0x2e,0x79,0x29,0x7d,0x29,0x2c,0x64,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x63,0x5d,0x3d,0x6f,0x2e,0x67,0x65,0x74,0x28,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7c,0x7c,0x5b,0x5b,0x5d,0x2c,0x6c,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x5d,0x3b,0x6f,0x2e,0x73,0x65,0x74,0x28,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x5b,0x63,0x2c,0x6c,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x5d,0x29,0x3b,0x6c,0x65,0x74,0x5b,0x66,0x2c,0x64,0x5d,0x3d,0x6a,0x67,0x28,0x6c,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x3b,0x69,0x66,0x28,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x29,0x7b,0x69,0x66,0x28,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x6c,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x69,0x6e,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x61,0x74,0x2d,0x72,0x75,0x6c,0x65,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x40,0x73,0x63,0x72,0x65,0x65,0x6e,0x2e,0x20,0x57,0x65,0x20,0x73,0x75,0x67,0x67,0x65,0x73,0x74,0x20,0x79,0x6f,0x75,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x61,0x73,0x20,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x24,0x7b,0x66,0x2e,0x6d,0x61,0x70,0x28,0x68,0x3d,0x3e,0x60,0x24,0x7b,0x70,0x7d,0x3a,0x24,0x7b,0x68,0x7d,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x7d,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x29,0x7d,0x74,0x68,0x72,0x6f,0x77,0x20,0x6c,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x69,0x6e,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x61,0x74,0x2d,0x72,0x75,0x6c,0x65,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x40,0x24,0x7b,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x2e,0x20,0x59,0x6f,0x75,0x20,0x63,0x61,0x6e,0x20,0x66,0x69,0x78,0x20,0x74,0x68,0x69,0x73,0x20,0x62,0x79,0x20,0x75,0x6e,0x2d,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x40,0x24,0x7b,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x2e,0x60,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x70,0x20,0x6f,0x66,0x20,0x66,0x29,0x7b,0x69,0x66,0x28,0x5b,0x42,0x67,0x28,0x65,0x2c,0x22,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x2c,0x42,0x67,0x28,0x65,0x2c,0x22,0x70,0x65,0x65,0x72,0x22,0x29,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x70,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6c,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x27,0x24,0x7b,0x70,0x7d,0x27,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x60,0x29,0x3b,0x69,0x66,0x28,0x21,0x61,0x2e,0x68,0x61,0x73,0x28,0x70,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6c,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x54,0x68,0x65,0x20,0x5c,0x60,0x24,0x7b,0x70,0x7d,0x5c,0x60,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x2e,0x20,0x49,0x66,0x20,0x5c,0x60,0x24,0x7b,0x70,0x7d,0x5c,0x60,0x20,0x69,0x73,0x20,0x61,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x63,0x6c,0x61,0x73,0x73,0x2c,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x69,0x6e,0x20,0x61,0x20,0x5c,0x60,0x40,0x6c,0x61,0x79,0x65,0x72,0x5c,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x2e,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x61,0x2e,0x67,0x65,0x74,0x28,0x70,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x2c,0x62,0x5d,0x6f,0x66,0x20,0x68,0x29,0x62,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x62,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x74,0x68,0x72,0x6f,0x77,0x20,0x6c,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x5b,0x60,0x54,0x68,0x65,0x20,0x5c,0x60,0x24,0x7b,0x70,0x7d,0x5c,0x60,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x5c,0x60,0x40,0x61,0x70,0x70,0x6c,0x79,0x5c,0x60,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x5c,0x60,0x40,0x61,0x70,0x70,0x6c,0x79,0x5c,0x60,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x43,0x53,0x53,0x2e,0x60,0x2c,0x22,0x52,0x65,0x77,0x72,0x69,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x60,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2f,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x60,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x22,0x2c,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x75,0x73,0x69,0x6e,0x67,0x2d,0x77,0x69,0x74,0x68,0x2d,0x70,0x72,0x65,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x73,0x23,0x6e,0x65,0x73,0x74,0x69,0x6e,0x67,0x22,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x0a,0x60,0x29,0x29,0x7d,0x29,0x3b,0x63,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x70,0x2c,0x64,0x2c,0x68,0x5d,0x29,0x7d,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x6c,0x2c,0x5b,0x63,0x2c,0x66,0x5d,0x5d,0x6f,0x66,0x20,0x6f,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x68,0x2c,0x62,0x2c,0x76,0x5d,0x6f,0x66,0x20,0x63,0x29,0x7b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x5b,0x68,0x2c,0x2e,0x2e,0x2e,0x4e,0x67,0x28,0x5b,0x68,0x5d,0x2c,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x29,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x77,0x2c,0x6b,0x5d,0x6f,0x66,0x20,0x76,0x29,0x7b,0x6c,0x65,0x74,0x20,0x53,0x3d,0x77,0x73,0x28,0x6c,0x29,0x2c,0x45,0x3d,0x77,0x73,0x28,0x6b,0x29,0x3b,0x69,0x66,0x28,0x45,0x3d,0x45,0x2e,0x67,0x72,0x6f,0x75,0x70,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x54,0x3d,0x3e,0x54,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x46,0x3d,0x3e,0x79,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x46,0x29,0x29,0x29,0x2e,0x66,0x6c,0x61,0x74,0x28,0x29,0x2c,0x45,0x3d,0x45,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x4e,0x67,0x28,0x45,0x2c,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x29,0x29,0x2c,0x53,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x54,0x3d,0x3e,0x45,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x54,0x29,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6b,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x59,0x6f,0x75,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x5c,0x60,0x40,0x61,0x70,0x70,0x6c,0x79,0x5c,0x60,0x20,0x74,0x68,0x65,0x20,0x5c,0x60,0x24,0x7b,0x68,0x7d,0x5c,0x60,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x68,0x65,0x72,0x65,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x73,0x20,0x61,0x20,0x63,0x69,0x72,0x63,0x75,0x6c,0x61,0x72,0x20,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x2e,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x42,0x3d,0x65,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x6b,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x5d,0x7d,0x29,0x3b,0x42,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x54,0x3d,0x3e,0x7b,0x54,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x66,0x7d,0x29,0x2c,0x28,0x6b,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x7c,0x7c,0x6b,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x6b,0x2e,0x6e,0x61,0x6d,0x65,0x21,0x3d,0x3d,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x29,0x26,0x26,0x42,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x54,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x77,0x73,0x28,0x54,0x29,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x55,0x3d,0x3e,0x55,0x3d,0x3d,0x3d,0x68,0x29,0x29,0x7b,0x54,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x46,0x3d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x65,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3a,0x6e,0x75,0x6c,0x6c,0x2c,0x5f,0x3d,0x6c,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x46,0x26,0x26,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x46,0x29,0x3d,0x3d,0x3d,0x30,0x3f,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x46,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3b,0x5f,0x3d,0x3d,0x3d,0x22,0x22,0x26,0x26,0x28,0x5f,0x3d,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x2c,0x54,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x73,0x28,0x5f,0x2c,0x54,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x68,0x29,0x2c,0x46,0x26,0x26,0x5f,0x21,0x3d,0x3d,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x26,0x26,0x28,0x54,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x72,0x73,0x28,0x54,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x46,0x29,0x29,0x2c,0x54,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x55,0x3d,0x3e,0x7b,0x55,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x3d,0x77,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x7c,0x7c,0x62,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x51,0x3d,0x28,0x30,0x2c,0x62,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x2e,0x61,0x73,0x74,0x53,0x79,0x6e,0x63,0x28,0x54,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3b,0x51,0x2e,0x65,0x61,0x63,0x68,0x28,0x55,0x3d,0x3e,0x70,0x72,0x28,0x55,0x29,0x29,0x2c,0x54,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x51,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x29,0x2c,0x21,0x21,0x42,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x26,0x26,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x77,0x2e,0x73,0x6f,0x72,0x74,0x2c,0x42,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x30,0x5d,0x5d,0x29,0x7d,0x7d,0x6c,0x65,0x74,0x20,0x70,0x3d,0x65,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x64,0x29,0x2e,0x6d,0x61,0x70,0x28,0x68,0x3d,0x3e,0x68,0x5b,0x31,0x5d,0x29,0x3b,0x6c,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x70,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x6e,0x29,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x3f,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3a,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x7a,0x67,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x50,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x44,0x32,0x28,0x28,0x29,0x3d,0x3e,0x50,0x32,0x28,0x65,0x2c,0x72,0x29,0x29,0x3b,0x7a,0x67,0x28,0x65,0x2c,0x72,0x2c,0x74,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x62,0x73,0x2c,0x4f,0x32,0x2c,0x55,0x67,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x62,0x73,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x3b,0x61,0x73,0x28,0x29,0x3b,0x66,0x72,0x28,0x29,0x3b,0x56,0x6f,0x28,0x29,0x3b,0x65,0x73,0x28,0x29,0x3b,0x4f,0x32,0x3d,0x28,0x30,0x2c,0x62,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x67,0x3d,0x78,0x28,0x28,0x72,0x71,0x2c,0x76,0x73,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x69,0x66,0x28,0x21,0x69,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x72,0x2e,0x63,0x61,0x73,0x65,0x53,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x7c,0x7c,0x28,0x69,0x3d,0x69,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x72,0x2e,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x6e,0x75,0x6c,0x6c,0x3a,0x72,0x2e,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x2a,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6f,0x3d,0x72,0x2e,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x41,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x2c,0x6c,0x3b,0x73,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x6f,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x6c,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x73,0x2c,0x6f,0x29,0x3a,0x73,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x6c,0x3d,0x73,0x3a,0x6f,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x6c,0x3d,0x6f,0x3a,0x6c,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x76,0x61,0x72,0x20,0x63,0x2c,0x66,0x2c,0x64,0x2c,0x70,0x2c,0x68,0x2c,0x62,0x3d,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x66,0x6f,0x72,0x28,0x68,0x3d,0x30,0x3b,0x68,0x3c,0x62,0x3b,0x68,0x2b,0x2b,0x29,0x69,0x66,0x28,0x66,0x3d,0x6e,0x5b,0x68,0x5d,0x2c,0x61,0x26,0x26,0x28,0x66,0x3d,0x66,0x5b,0x61,0x5d,0x29,0x2c,0x21,0x21,0x66,0x26,0x26,0x28,0x72,0x2e,0x63,0x61,0x73,0x65,0x53,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3f,0x64,0x3d,0x66,0x3a,0x64,0x3d,0x66,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x70,0x3d,0x74,0x28,0x69,0x2c,0x64,0x2c,0x6c,0x29,0x2c,0x28,0x6c,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7c,0x7c,0x70,0x3c,0x6c,0x29,0x26,0x26,0x28,0x6c,0x3d,0x70,0x2c,0x61,0x26,0x26,0x72,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x57,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3f,0x63,0x3d,0x6e,0x5b,0x68,0x5d,0x3a,0x63,0x3d,0x66,0x2c,0x72,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x46,0x69,0x72,0x73,0x74,0x4d,0x61,0x74,0x63,0x68,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x7c,0x7c,0x72,0x2e,0x6e,0x75,0x6c,0x6c,0x52,0x65,0x73,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x7d,0x72,0x2e,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3d,0x2e,0x34,0x2c,0x72,0x2e,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x41,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x3d,0x32,0x30,0x2c,0x72,0x2e,0x63,0x61,0x73,0x65,0x53,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x3d,0x21,0x31,0x2c,0x72,0x2e,0x6e,0x75,0x6c,0x6c,0x52,0x65,0x73,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x72,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x57,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x72,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x46,0x69,0x72,0x73,0x74,0x4d,0x61,0x74,0x63,0x68,0x3d,0x21,0x31,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x73,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x76,0x73,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3f,0x76,0x73,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x72,0x3a,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x64,0x69,0x64,0x59,0x6f,0x75,0x4d,0x65,0x61,0x6e,0x3d,0x72,0x3b,0x76,0x61,0x72,0x20,0x65,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x70,0x6f,0x77,0x28,0x32,0x2c,0x33,0x32,0x29,0x2d,0x31,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x28,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x61,0x3d,0x61,0x7c,0x7c,0x61,0x3d,0x3d,0x3d,0x30,0x3f,0x61,0x3a,0x65,0x3b,0x76,0x61,0x72,0x20,0x73,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6f,0x3d,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x66,0x28,0x73,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x61,0x2b,0x31,0x2c,0x6f,0x29,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x61,0x2b,0x31,0x2c,0x73,0x29,0x3b,0x69,0x66,0x28,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x73,0x2d,0x6f,0x29,0x3e,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2b,0x31,0x3b,0x76,0x61,0x72,0x20,0x6c,0x3d,0x5b,0x5d,0x2c,0x63,0x2c,0x66,0x2c,0x64,0x2c,0x70,0x2c,0x68,0x3b,0x66,0x6f,0x72,0x28,0x63,0x3d,0x30,0x3b,0x63,0x3c,0x3d,0x6f,0x3b,0x63,0x2b,0x2b,0x29,0x6c,0x5b,0x63,0x5d,0x3d,0x5b,0x63,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x66,0x3d,0x30,0x3b,0x66,0x3c,0x3d,0x73,0x3b,0x66,0x2b,0x2b,0x29,0x6c,0x5b,0x30,0x5d,0x5b,0x66,0x5d,0x3d,0x66,0x3b,0x66,0x6f,0x72,0x28,0x63,0x3d,0x31,0x3b,0x63,0x3c,0x3d,0x6f,0x3b,0x63,0x2b,0x2b,0x29,0x7b,0x66,0x6f,0x72,0x28,0x64,0x3d,0x65,0x2c,0x70,0x3d,0x31,0x2c,0x63,0x3e,0x61,0x26,0x26,0x28,0x70,0x3d,0x63,0x2d,0x61,0x29,0x2c,0x68,0x3d,0x6f,0x2b,0x31,0x2c,0x68,0x3e,0x61,0x2b,0x63,0x26,0x26,0x28,0x68,0x3d,0x61,0x2b,0x63,0x29,0x2c,0x66,0x3d,0x31,0x3b,0x66,0x3c,0x3d,0x73,0x3b,0x66,0x2b,0x2b,0x29,0x66,0x3c,0x70,0x7c,0x7c,0x66,0x3e,0x68,0x3f,0x6c,0x5b,0x63,0x5d,0x5b,0x66,0x5d,0x3d,0x61,0x2b,0x31,0x3a,0x6e,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x63,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x69,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x66,0x2d,0x31,0x29,0x3f,0x6c,0x5b,0x63,0x5d,0x5b,0x66,0x5d,0x3d,0x6c,0x5b,0x63,0x2d,0x31,0x5d,0x5b,0x66,0x2d,0x31,0x5d,0x3a,0x6c,0x5b,0x63,0x5d,0x5b,0x66,0x5d,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x6c,0x5b,0x63,0x2d,0x31,0x5d,0x5b,0x66,0x2d,0x31,0x5d,0x2b,0x31,0x2c,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x6c,0x5b,0x63,0x5d,0x5b,0x66,0x2d,0x31,0x5d,0x2b,0x31,0x2c,0x6c,0x5b,0x63,0x2d,0x31,0x5d,0x5b,0x66,0x5d,0x2b,0x31,0x29,0x29,0x2c,0x6c,0x5b,0x63,0x5d,0x5b,0x66,0x5d,0x3c,0x64,0x26,0x26,0x28,0x64,0x3d,0x6c,0x5b,0x63,0x5d,0x5b,0x66,0x5d,0x29,0x3b,0x69,0x66,0x28,0x64,0x3e,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2b,0x31,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x5b,0x6f,0x5d,0x5b,0x73,0x5d,0x7d,0x7d,0x29,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x57,0x67,0x3d,0x78,0x28,0x28,0x69,0x71,0x2c,0x48,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x49,0x6c,0x3d,0x22,0x28,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x44,0x6c,0x3d,0x22,0x29,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x78,0x73,0x3d,0x22,0x27,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x71,0x6c,0x3d,0x27,0x22,0x27,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x24,0x6c,0x3d,0x22,0x5c,0x5c,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x79,0x72,0x3d,0x22,0x2f,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4c,0x6c,0x3d,0x22,0x2c,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4d,0x6c,0x3d,0x22,0x3a,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x6b,0x73,0x3d,0x22,0x2a,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x24,0x32,0x3d,0x22,0x75,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4c,0x32,0x3d,0x22,0x55,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4d,0x32,0x3d,0x22,0x2b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4e,0x32,0x3d,0x2f,0x5e,0x5b,0x61,0x2d,0x66,0x30,0x2d,0x39,0x3f,0x2d,0x5d,0x2b,0x24,0x2f,0x69,0x3b,0x48,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x72,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x2c,0x63,0x2c,0x66,0x2c,0x64,0x3d,0x30,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x2c,0x68,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x62,0x3d,0x5b,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x65,0x7d,0x5d,0x2c,0x76,0x3d,0x30,0x2c,0x79,0x2c,0x77,0x3d,0x22,0x22,0x2c,0x6b,0x3d,0x22,0x22,0x2c,0x53,0x3d,0x22,0x22,0x3b,0x64,0x3c,0x68,0x3b,0x29,0x69,0x66,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x7b,0x69,0x3d,0x64,0x3b,0x64,0x6f,0x20,0x69,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x3b,0x73,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2c,0x69,0x29,0x2c,0x61,0x3d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x70,0x3d,0x3d,0x3d,0x44,0x6c,0x26,0x26,0x76,0x3f,0x53,0x3d,0x73,0x3a,0x61,0x26,0x26,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x3f,0x28,0x61,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x73,0x2c,0x61,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x70,0x3d,0x3d,0x3d,0x4c,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x4d,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x79,0x72,0x26,0x26,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x2b,0x31,0x29,0x21,0x3d,0x3d,0x6b,0x73,0x26,0x26,0x28,0x21,0x79,0x7c,0x7c,0x79,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x21,0x31,0x29,0x3f,0x6b,0x3d,0x73,0x3a,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x2c,0x64,0x3d,0x69,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x78,0x73,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x71,0x6c,0x29,0x7b,0x69,0x3d,0x64,0x2c,0x6e,0x3d,0x70,0x3d,0x3d,0x3d,0x78,0x73,0x3f,0x22,0x27,0x22,0x3a,0x27,0x22,0x27,0x2c,0x73,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x71,0x75,0x6f,0x74,0x65,0x3a,0x6e,0x7d,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x6f,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x2c,0x69,0x2b,0x31,0x29,0x2c,0x7e,0x69,0x29,0x66,0x6f,0x72,0x28,0x6c,0x3d,0x69,0x3b,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6c,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x24,0x6c,0x3b,0x29,0x6c,0x2d,0x3d,0x31,0x2c,0x6f,0x3d,0x21,0x6f,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x2b,0x3d,0x6e,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x6f,0x29,0x3b,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2b,0x31,0x2c,0x69,0x29,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x69,0x3a,0x69,0x2b,0x31,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x64,0x3d,0x69,0x2b,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x79,0x72,0x26,0x26,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x2b,0x31,0x29,0x3d,0x3d,0x3d,0x6b,0x73,0x29,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2a,0x2f,0x22,0x2c,0x64,0x29,0x2c,0x73,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2b,0x32,0x7d,0x2c,0x69,0x3d,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x69,0x29,0x2c,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2b,0x32,0x2c,0x69,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x64,0x3d,0x69,0x2b,0x32,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x28,0x70,0x3d,0x3d,0x3d,0x79,0x72,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x6b,0x73,0x29,0x26,0x26,0x79,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x73,0x3d,0x74,0x5b,0x64,0x5d,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2d,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x2c,0x64,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x79,0x72,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x4c,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x4d,0x6c,0x29,0x73,0x3d,0x74,0x5b,0x64,0x5d,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x69,0x76,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2d,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x6b,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x22,0x22,0x7d,0x29,0x2c,0x6b,0x3d,0x22,0x22,0x2c,0x64,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x49,0x6c,0x3d,0x3d,0x3d,0x70,0x29,0x7b,0x69,0x3d,0x64,0x3b,0x64,0x6f,0x20,0x69,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x3b,0x69,0x66,0x28,0x66,0x3d,0x64,0x2c,0x73,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2d,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x66,0x2b,0x31,0x2c,0x69,0x29,0x7d,0x2c,0x64,0x3d,0x69,0x2c,0x77,0x3d,0x3d,0x3d,0x22,0x75,0x72,0x6c,0x22,0x26,0x26,0x70,0x21,0x3d,0x3d,0x78,0x73,0x26,0x26,0x70,0x21,0x3d,0x3d,0x71,0x6c,0x29,0x7b,0x69,0x2d,0x3d,0x31,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x6f,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x29,0x22,0x2c,0x69,0x2b,0x31,0x29,0x2c,0x7e,0x69,0x29,0x66,0x6f,0x72,0x28,0x6c,0x3d,0x69,0x3b,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6c,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x24,0x6c,0x3b,0x29,0x6c,0x2d,0x3d,0x31,0x2c,0x6f,0x3d,0x21,0x6f,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x2b,0x3d,0x22,0x29,0x22,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x6f,0x29,0x3b,0x63,0x3d,0x69,0x3b,0x64,0x6f,0x20,0x63,0x2d,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x63,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x3b,0x66,0x3c,0x63,0x3f,0x28,0x64,0x21,0x3d,0x3d,0x63,0x2b,0x31,0x3f,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x63,0x2b,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2c,0x63,0x2b,0x31,0x29,0x7d,0x5d,0x3a,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x26,0x26,0x63,0x2b,0x31,0x21,0x3d,0x3d,0x69,0x3f,0x28,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x63,0x2b,0x31,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x63,0x2b,0x31,0x2c,0x69,0x29,0x7d,0x29,0x29,0x3a,0x28,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x63,0x2b,0x31,0x2c,0x69,0x29,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x69,0x29,0x29,0x3a,0x28,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x64,0x3d,0x69,0x2b,0x31,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x69,0x3a,0x64,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x76,0x2b,0x3d,0x31,0x2c,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x64,0x2b,0x31,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x62,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x65,0x3d,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x79,0x3d,0x73,0x3b,0x77,0x3d,0x22,0x22,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x44,0x6c,0x3d,0x3d,0x3d,0x70,0x26,0x26,0x76,0x29,0x64,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x2c,0x79,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x53,0x2c,0x79,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x53,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x53,0x3d,0x22,0x22,0x2c,0x76,0x2d,0x3d,0x31,0x2c,0x62,0x5b,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x64,0x2c,0x62,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x79,0x3d,0x62,0x5b,0x76,0x5d,0x2c,0x65,0x3d,0x79,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x69,0x3d,0x64,0x3b,0x64,0x6f,0x20,0x70,0x3d,0x3d,0x3d,0x24,0x6c,0x26,0x26,0x28,0x69,0x2b,0x3d,0x31,0x29,0x2c,0x69,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x69,0x3c,0x68,0x26,0x26,0x21,0x28,0x70,0x3c,0x3d,0x33,0x32,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x78,0x73,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x71,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x4c,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x4d,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x79,0x72,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x49,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x6b,0x73,0x26,0x26,0x79,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x21,0x30,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x79,0x72,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x21,0x30,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x44,0x6c,0x26,0x26,0x76,0x29,0x29,0x3b,0x73,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2c,0x69,0x29,0x2c,0x49,0x6c,0x3d,0x3d,0x3d,0x70,0x3f,0x77,0x3d,0x73,0x3a,0x28,0x24,0x32,0x3d,0x3d,0x3d,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x7c,0x7c,0x4c,0x32,0x3d,0x3d,0x3d,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x29,0x26,0x26,0x4d,0x32,0x3d,0x3d,0x3d,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x26,0x26,0x4e,0x32,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x29,0x3f,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2d,0x72,0x61,0x6e,0x67,0x65,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x3a,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x2c,0x64,0x3d,0x69,0x7d,0x66,0x6f,0x72,0x28,0x64,0x3d,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x64,0x3b,0x64,0x2d,0x3d,0x31,0x29,0x62,0x5b,0x64,0x5d,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x62,0x5b,0x64,0x5d,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x5b,0x30,0x5d,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x67,0x3d,0x78,0x28,0x28,0x6e,0x71,0x2c,0x47,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x47,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x6e,0x3d,0x30,0x2c,0x61,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6e,0x3c,0x61,0x3b,0x6e,0x2b,0x3d,0x31,0x29,0x73,0x3d,0x65,0x5b,0x6e,0x5d,0x2c,0x69,0x7c,0x7c,0x28,0x6f,0x3d,0x74,0x28,0x73,0x2c,0x6e,0x2c,0x65,0x29,0x29,0x2c,0x6f,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x26,0x26,0x72,0x28,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x74,0x2c,0x69,0x29,0x2c,0x69,0x26,0x26,0x74,0x28,0x73,0x2c,0x6e,0x2c,0x65,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4a,0x67,0x3d,0x78,0x28,0x28,0x73,0x71,0x2c,0x58,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x3d,0x72,0x2e,0x74,0x79,0x70,0x65,0x2c,0x69,0x3d,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x6e,0x2c,0x61,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x28,0x61,0x3d,0x65,0x28,0x72,0x29,0x29,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x61,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x3f,0x69,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x28,0x6e,0x3d,0x72,0x2e,0x71,0x75,0x6f,0x74,0x65,0x7c,0x7c,0x22,0x22,0x2c,0x6e,0x2b,0x69,0x2b,0x28,0x72,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x22,0x22,0x3a,0x6e,0x29,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3f,0x22,0x2f,0x2a,0x22,0x2b,0x69,0x2b,0x28,0x72,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x22,0x22,0x3a,0x22,0x2a,0x2f,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x3f,0x28,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x69,0x2b,0x28,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x29,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3f,0x28,0x6e,0x3d,0x4b,0x67,0x28,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x65,0x29,0x2c,0x74,0x21,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x6e,0x3a,0x69,0x2b,0x22,0x28,0x22,0x2b,0x28,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x6e,0x2b,0x28,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x28,0x72,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x22,0x22,0x3a,0x22,0x29,0x22,0x29,0x29,0x3a,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4b,0x67,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x2c,0x69,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x74,0x3d,0x22,0x22,0x2c,0x69,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x7e,0x69,0x3b,0x69,0x2d,0x3d,0x31,0x29,0x74,0x3d,0x59,0x67,0x28,0x72,0x5b,0x69,0x5d,0x2c,0x65,0x29,0x2b,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x59,0x67,0x28,0x72,0x2c,0x65,0x29,0x7d,0x58,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4b,0x67,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x65,0x79,0x3d,0x78,0x28,0x28,0x61,0x71,0x2c,0x5a,0x67,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x73,0x3d,0x22,0x2d,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x41,0x73,0x3d,0x22,0x2b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4e,0x6c,0x3d,0x22,0x2e,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x42,0x32,0x3d,0x22,0x65,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x46,0x32,0x3d,0x22,0x45,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x32,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x74,0x3b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x41,0x73,0x7c,0x7c,0x65,0x3d,0x3d,0x3d,0x53,0x73,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x2c,0x74,0x3e,0x3d,0x34,0x38,0x26,0x26,0x74,0x3c,0x3d,0x35,0x37,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x32,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x4e,0x6c,0x26,0x26,0x69,0x3e,0x3d,0x34,0x38,0x26,0x26,0x69,0x3c,0x3d,0x35,0x37,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x4e,0x6c,0x3f,0x28,0x74,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x2c,0x74,0x3e,0x3d,0x34,0x38,0x26,0x26,0x74,0x3c,0x3d,0x35,0x37,0x29,0x3a,0x65,0x3e,0x3d,0x34,0x38,0x26,0x26,0x65,0x3c,0x3d,0x35,0x37,0x7d,0x5a,0x67,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x30,0x2c,0x74,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x21,0x6a,0x32,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x28,0x69,0x3d,0x3d,0x3d,0x41,0x73,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x53,0x73,0x29,0x26,0x26,0x65,0x2b,0x2b,0x3b,0x65,0x3c,0x74,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x21,0x28,0x69,0x3c,0x34,0x38,0x7c,0x7c,0x69,0x3e,0x35,0x37,0x29,0x29,0x3b,0x29,0x65,0x2b,0x3d,0x31,0x3b,0x69,0x66,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x2b,0x31,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x4e,0x6c,0x26,0x26,0x6e,0x3e,0x3d,0x34,0x38,0x26,0x26,0x6e,0x3c,0x3d,0x35,0x37,0x29,0x66,0x6f,0x72,0x28,0x65,0x2b,0x3d,0x32,0x3b,0x65,0x3c,0x74,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x21,0x28,0x69,0x3c,0x34,0x38,0x7c,0x7c,0x69,0x3e,0x35,0x37,0x29,0x29,0x3b,0x29,0x65,0x2b,0x3d,0x31,0x3b,0x69,0x66,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x2b,0x31,0x29,0x2c,0x61,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x2b,0x32,0x29,0x2c,0x28,0x69,0x3d,0x3d,0x3d,0x42,0x32,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x46,0x32,0x29,0x26,0x26,0x28,0x6e,0x3e,0x3d,0x34,0x38,0x26,0x26,0x6e,0x3c,0x3d,0x35,0x37,0x7c,0x7c,0x28,0x6e,0x3d,0x3d,0x3d,0x41,0x73,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x53,0x73,0x29,0x26,0x26,0x61,0x3e,0x3d,0x34,0x38,0x26,0x26,0x61,0x3c,0x3d,0x35,0x37,0x29,0x29,0x66,0x6f,0x72,0x28,0x65,0x2b,0x3d,0x6e,0x3d,0x3d,0x3d,0x41,0x73,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x53,0x73,0x3f,0x33,0x3a,0x32,0x3b,0x65,0x3c,0x74,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x21,0x28,0x69,0x3c,0x34,0x38,0x7c,0x7c,0x69,0x3e,0x35,0x37,0x29,0x29,0x3b,0x29,0x65,0x2b,0x3d,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6e,0x75,0x6d,0x62,0x65,0x72,0x3a,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x65,0x29,0x2c,0x75,0x6e,0x69,0x74,0x3a,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x65,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x79,0x3d,0x78,0x28,0x28,0x6f,0x71,0x2c,0x69,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x7a,0x32,0x3d,0x57,0x67,0x28,0x29,0x2c,0x74,0x79,0x3d,0x51,0x67,0x28,0x29,0x2c,0x72,0x79,0x3d,0x4a,0x67,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x24,0x74,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x7a,0x32,0x28,0x72,0x29,0x2c,0x74,0x68,0x69,0x73,0x29,0x3a,0x6e,0x65,0x77,0x20,0x24,0x74,0x28,0x72,0x29,0x7d,0x24,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3f,0x72,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3a,0x22,0x22,0x7d,0x3b,0x24,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x72,0x2c,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x3b,0x24,0x74,0x2e,0x75,0x6e,0x69,0x74,0x3d,0x65,0x79,0x28,0x29,0x3b,0x24,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x3d,0x74,0x79,0x3b,0x24,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x3d,0x72,0x79,0x3b,0x69,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x24,0x74,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x46,0x6c,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x72,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x32,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6b,0x74,0x28,0x65,0x29,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x74,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x28,0x30,0x2c,0x24,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x2c,0x74,0x29,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x74,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x72,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x72,0x3a,0x72,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2e,0x22,0x29,0x3f,0x60,0x24,0x7b,0x65,0x7d,0x5b,0x24,0x7b,0x74,0x7d,0x5d,0x60,0x3a,0x69,0x3d,0x3d,0x3d,0x30,0x3f,0x74,0x3a,0x60,0x24,0x7b,0x65,0x7d,0x2e,0x24,0x7b,0x74,0x7d,0x60,0x2c,0x22,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x79,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x60,0x27,0x24,0x7b,0x65,0x7d,0x27,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x79,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x79,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6a,0x6c,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x3d,0x7b,0x7d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x3f,0x62,0x72,0x28,0x65,0x29,0x3a,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x5b,0x27,0x22,0x5d,0x2b,0x7c,0x5b,0x27,0x22,0x5d,0x2b,0x24,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2c,0x61,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x29,0x3f,0x65,0x3a,0x6b,0x74,0x28,0x6e,0x29,0x2c,0x73,0x3d,0x28,0x30,0x2c,0x24,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2c,0x61,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x73,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x60,0x27,0x24,0x7b,0x6e,0x7d,0x27,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x74,0x68,0x65,0x6d,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x60,0x2c,0x63,0x3d,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x31,0x29,0x2c,0x66,0x3d,0x28,0x30,0x2c,0x24,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2c,0x63,0x29,0x3b,0x69,0x66,0x28,0x46,0x6c,0x28,0x66,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x66,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x68,0x3d,0x3e,0x6a,0x6c,0x28,0x72,0x2c,0x5b,0x2e,0x2e,0x2e,0x63,0x2c,0x68,0x5d,0x29,0x2e,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x29,0x2c,0x70,0x3d,0x28,0x30,0x2c,0x73,0x79,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x64,0x29,0x3b,0x70,0x3f,0x6c,0x2b,0x3d,0x60,0x20,0x44,0x69,0x64,0x20,0x79,0x6f,0x75,0x20,0x6d,0x65,0x61,0x6e,0x20,0x27,0x24,0x7b,0x62,0x72,0x28,0x5b,0x2e,0x2e,0x2e,0x63,0x2c,0x70,0x5d,0x29,0x7d,0x27,0x3f,0x60,0x3a,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x28,0x6c,0x2b,0x3d,0x60,0x20,0x27,0x24,0x7b,0x62,0x72,0x28,0x63,0x29,0x7d,0x27,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x69,0x6e,0x67,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6b,0x65,0x79,0x73,0x3a,0x20,0x24,0x7b,0x61,0x79,0x28,0x64,0x29,0x7d,0x60,0x29,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x55,0x32,0x28,0x72,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2c,0x6e,0x29,0x3b,0x69,0x66,0x28,0x64,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x28,0x30,0x2c,0x24,0x69,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2c,0x64,0x29,0x3b,0x46,0x6c,0x28,0x70,0x29,0x3f,0x6c,0x2b,0x3d,0x60,0x20,0x27,0x24,0x7b,0x62,0x72,0x28,0x64,0x29,0x7d,0x27,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x69,0x6e,0x67,0x20,0x6b,0x65,0x79,0x73,0x3a,0x20,0x24,0x7b,0x6f,0x79,0x28,0x70,0x29,0x7d,0x60,0x3a,0x6c,0x2b,0x3d,0x60,0x20,0x27,0x24,0x7b,0x62,0x72,0x28,0x64,0x29,0x7d,0x27,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x60,0x7d,0x65,0x6c,0x73,0x65,0x20,0x6c,0x2b,0x3d,0x60,0x20,0x59,0x6f,0x75,0x72,0x20,0x74,0x68,0x65,0x6d,0x65,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x66,0x6f,0x6c,0x6c,0x6f,0x77,0x69,0x6e,0x67,0x20,0x74,0x6f,0x70,0x2d,0x6c,0x65,0x76,0x65,0x6c,0x20,0x6b,0x65,0x79,0x73,0x3a,0x20,0x24,0x7b,0x6f,0x79,0x28,0x72,0x2e,0x74,0x68,0x65,0x6d,0x65,0x29,0x7d,0x60,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x3a,0x21,0x31,0x2c,0x65,0x72,0x72,0x6f,0x72,0x3a,0x6c,0x7d,0x7d,0x69,0x66,0x28,0x21,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x3d,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x7c,0x7c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x7c,0x7c,0x73,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x7c,0x7c,0x73,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x7c,0x7c,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x29,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x60,0x27,0x24,0x7b,0x6e,0x7d,0x27,0x20,0x77,0x61,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x62,0x75,0x74,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x74,0x6f,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2e,0x60,0x3b,0x69,0x66,0x28,0x46,0x6c,0x28,0x73,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x73,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x3d,0x3e,0x6a,0x6c,0x28,0x72,0x2c,0x5b,0x2e,0x2e,0x2e,0x61,0x2c,0x66,0x5d,0x29,0x2e,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x29,0x3b,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x6c,0x2b,0x3d,0x60,0x20,0x44,0x69,0x64,0x20,0x79,0x6f,0x75,0x20,0x6d,0x65,0x61,0x6e,0x20,0x73,0x6f,0x6d,0x65,0x74,0x68,0x69,0x6e,0x67,0x20,0x6c,0x69,0x6b,0x65,0x20,0x27,0x24,0x7b,0x62,0x72,0x28,0x5b,0x2e,0x2e,0x2e,0x61,0x2c,0x63,0x5b,0x30,0x5d,0x5d,0x29,0x7d,0x27,0x3f,0x60,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x3a,0x21,0x31,0x2c,0x65,0x72,0x72,0x6f,0x72,0x3a,0x6c,0x7d,0x7d,0x6c,0x65,0x74,0x5b,0x6f,0x5d,0x3d,0x61,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x3a,0x21,0x30,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6d,0x74,0x28,0x6f,0x29,0x28,0x73,0x2c,0x69,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x32,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x65,0x3d,0x65,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x6c,0x79,0x28,0x72,0x2c,0x6e,0x2c,0x74,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x22,0x22,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x65,0x29,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x3f,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x22,0x29,0x3a,0x69,0x5b,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2b,0x3d,0x42,0x6c,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x79,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x74,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x56,0x32,0x28,0x72,0x2c,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x74,0x29,0x3b,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x28,0x72,0x2c,0x2e,0x2e,0x2e,0x69,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x32,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x29,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6e,0x3d,0x3e,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x24,0x7b,0x6e,0x7d,0x28,0x60,0x29,0x29,0x3f,0x28,0x30,0x2c,0x42,0x6c,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x65,0x29,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x6e,0x3d,0x3e,0x7b,0x6c,0x79,0x28,0x72,0x2c,0x6e,0x2c,0x74,0x29,0x7d,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3a,0x65,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2a,0x47,0x32,0x28,0x72,0x29,0x7b,0x72,0x3d,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x5b,0x27,0x22,0x5d,0x2b,0x7c,0x5b,0x27,0x22,0x5d,0x2b,0x24,0x2f,0x67,0x2c,0x22,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x28,0x5b,0x5e,0x5c,0x73,0x5d,0x2b,0x29,0x28,0x3f,0x21,0x5b,0x5e,0x5c,0x5b,0x5d,0x2a,0x5c,0x5d,0x29,0x28,0x3f,0x3a,0x5c,0x73,0x2a,0x5c,0x2f,0x5c,0x73,0x2a,0x28,0x5b,0x5e,0x5c,0x2f,0x5c,0x73,0x5d,0x2b,0x29,0x29,0x24,0x2f,0x29,0x2c,0x74,0x3b,0x79,0x69,0x65,0x6c,0x64,0x5b,0x72,0x2c,0x76,0x6f,0x69,0x64,0x20,0x30,0x5d,0x2c,0x65,0x26,0x26,0x28,0x72,0x3d,0x65,0x5b,0x31,0x5d,0x2c,0x74,0x3d,0x65,0x5b,0x32,0x5d,0x2c,0x79,0x69,0x65,0x6c,0x64,0x5b,0x72,0x2c,0x74,0x5d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x51,0x32,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x47,0x32,0x28,0x65,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x5b,0x6e,0x2c,0x61,0x5d,0x29,0x3d,0x3e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x6a,0x6c,0x28,0x72,0x2c,0x6e,0x2c,0x74,0x2c,0x7b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x56,0x61,0x6c,0x75,0x65,0x3a,0x61,0x7d,0x29,0x2c,0x7b,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x50,0x61,0x74,0x68,0x3a,0x6e,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x61,0x7d,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x66,0x69,0x6e,0x64,0x28,0x6e,0x3d,0x3e,0x6e,0x2e,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x29,0x3f,0x3f,0x69,0x5b,0x30,0x5d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x79,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x74,0x3d,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x28,0x69,0x2c,0x6e,0x2c,0x2e,0x2e,0x2e,0x61,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x7b,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x3a,0x73,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6f,0x2c,0x65,0x72,0x72,0x6f,0x72,0x3a,0x6c,0x2c,0x61,0x6c,0x70,0x68,0x61,0x3a,0x63,0x7d,0x3d,0x51,0x32,0x28,0x65,0x2c,0x6e,0x2c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x61,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x3b,0x69,0x66,0x28,0x21,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x68,0x3d,0x70,0x3f,0x2e,0x72,0x61,0x77,0x73,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x3f,0x2e,0x63,0x61,0x6e,0x64,0x69,0x64,0x61,0x74,0x65,0x3b,0x69,0x66,0x28,0x70,0x26,0x26,0x68,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x7b,0x72,0x2e,0x6d,0x61,0x72,0x6b,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x55,0x74,0x69,0x6c,0x69,0x74,0x79,0x4e,0x6f,0x64,0x65,0x28,0x70,0x29,0x2c,0x70,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x2c,0x47,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2d,0x74,0x68,0x65,0x6d,0x65,0x2d,0x6b,0x65,0x79,0x2d,0x69,0x6e,0x2d,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x5b,0x60,0x54,0x68,0x65,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x5c,0x60,0x24,0x7b,0x68,0x7d,0x5c,0x60,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x61,0x6e,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x74,0x68,0x65,0x6d,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x61,0x6e,0x64,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x2e,0x60,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x74,0x68,0x72,0x6f,0x77,0x20,0x69,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x6c,0x29,0x7d,0x6c,0x65,0x74,0x20,0x66,0x3d,0x58,0x74,0x28,0x6f,0x29,0x2c,0x64,0x3d,0x66,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x66,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x63,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x7c,0x7c,0x64,0x29,0x26,0x26,0x28,0x63,0x3d,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x63,0x3d,0x31,0x29,0x2c,0x6f,0x3d,0x5a,0x65,0x28,0x66,0x2c,0x63,0x2c,0x66,0x29,0x29,0x2c,0x6f,0x7d,0x2c,0x73,0x63,0x72,0x65,0x65,0x6e,0x3a,0x28,0x69,0x2c,0x6e,0x29,0x3d,0x3e,0x7b,0x6e,0x3d,0x6e,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x5b,0x27,0x22,0x5d,0x2b,0x2f,0x67,0x2c,0x22,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x27,0x22,0x5d,0x2b,0x24,0x2f,0x67,0x2c,0x22,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x52,0x74,0x28,0x65,0x2e,0x74,0x68,0x65,0x6d,0x65,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x29,0x2e,0x66,0x69,0x6e,0x64,0x28,0x28,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x6f,0x7d,0x29,0x3d,0x3e,0x6f,0x3d,0x3d,0x3d,0x6e,0x29,0x3b,0x69,0x66,0x28,0x21,0x73,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x69,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x54,0x68,0x65,0x20,0x27,0x24,0x7b,0x6e,0x7d,0x27,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x74,0x68,0x65,0x6d,0x65,0x2e,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x74,0x28,0x73,0x29,0x7d,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3e,0x7b,0x69,0x2e,0x77,0x61,0x6c,0x6b,0x28,0x6e,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x57,0x32,0x5b,0x6e,0x2e,0x74,0x79,0x70,0x65,0x5d,0x3b,0x61,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x6e,0x5b,0x61,0x5d,0x3d,0x48,0x32,0x28,0x6e,0x2c,0x6e,0x5b,0x61,0x5d,0x2c,0x74,0x29,0x29,0x7d,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x24,0x69,0x2c,0x73,0x79,0x2c,0x42,0x6c,0x2c,0x57,0x32,0x2c,0x66,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x24,0x69,0x3d,0x70,0x65,0x28,0x4f,0x61,0x28,0x29,0x29,0x2c,0x73,0x79,0x3d,0x70,0x65,0x28,0x56,0x67,0x28,0x29,0x29,0x3b,0x53,0x69,0x28,0x29,0x3b,0x42,0x6c,0x3d,0x70,0x65,0x28,0x6e,0x79,0x28,0x29,0x29,0x3b,0x58,0x6e,0x28,0x29,0x3b,0x51,0x6e,0x28,0x29,0x3b,0x47,0x69,0x28,0x29,0x3b,0x4c,0x72,0x28,0x29,0x3b,0x46,0x72,0x28,0x29,0x3b,0x42,0x65,0x28,0x29,0x3b,0x57,0x32,0x3d,0x7b,0x61,0x74,0x72,0x75,0x6c,0x65,0x3a,0x22,0x70,0x61,0x72,0x61,0x6d,0x73,0x22,0x2c,0x64,0x65,0x63,0x6c,0x3a,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x7d,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x79,0x28,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x7b,0x74,0x68,0x65,0x6d,0x65,0x3a,0x72,0x7d,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x2c,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x61,0x3d,0x52,0x74,0x28,0x72,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x73,0x29,0x2e,0x66,0x69,0x6e,0x64,0x28,0x28,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x73,0x7d,0x29,0x3d,0x3e,0x73,0x3d,0x3d,0x3d,0x69,0x29,0x3b,0x69,0x66,0x28,0x21,0x61,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x74,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x4e,0x6f,0x20,0x5c,0x60,0x24,0x7b,0x69,0x7d,0x5c,0x60,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x60,0x29,0x3b,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x2c,0x74,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x54,0x74,0x28,0x61,0x29,0x7d,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x70,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x58,0x6e,0x28,0x29,0x3b,0x51,0x6e,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x32,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6f,0x3d,0x3e,0x6f,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x70,0x73,0x65,0x75,0x64,0x6f,0x22,0x7c,0x7c,0x6f,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3f,0x21,0x30,0x3a,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x3a,0x3a,0x22,0x29,0x7c,0x7c,0x5b,0x22,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x3a,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x3a,0x66,0x69,0x72,0x73,0x74,0x2d,0x6c,0x65,0x74,0x74,0x65,0x72,0x22,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x61,0x67,0x22,0x2c,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x22,0x69,0x64,0x22,0x2c,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x5d,0x29,0x2c,0x69,0x3d,0x65,0x2e,0x66,0x69,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x28,0x6f,0x3d,0x3e,0x74,0x2e,0x68,0x61,0x73,0x28,0x6f,0x2e,0x74,0x79,0x70,0x65,0x29,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x2d,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x5b,0x69,0x5d,0x2c,0x61,0x3d,0x64,0x79,0x5b,0x6e,0x2e,0x74,0x79,0x70,0x65,0x5d,0x3f,0x64,0x79,0x5b,0x6e,0x2e,0x74,0x79,0x70,0x65,0x5d,0x28,0x6e,0x29,0x3a,0x6e,0x3b,0x65,0x3d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x65,0x2e,0x66,0x69,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x28,0x6f,0x3d,0x3e,0x6f,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x26,0x26,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x3e,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x21,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x73,0x29,0x2c,0x65,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x43,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x75,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x28,0x29,0x29,0x29,0x2c,0x5b,0x61,0x2c,0x2e,0x2e,0x2e,0x65,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x58,0x32,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7a,0x6c,0x2e,0x68,0x61,0x73,0x28,0x72,0x29,0x7c,0x7c,0x7a,0x6c,0x2e,0x73,0x65,0x74,0x28,0x72,0x2c,0x4b,0x32,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x79,0x6e,0x63,0x28,0x72,0x29,0x29,0x2c,0x7a,0x6c,0x2e,0x67,0x65,0x74,0x28,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x6c,0x28,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x72,0x7d,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x69,0x66,0x28,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x22,0x2c,0x6e,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7b,0x69,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x74,0x2e,0x68,0x61,0x73,0x28,0x61,0x29,0x7c,0x7c,0x74,0x2e,0x73,0x65,0x74,0x28,0x61,0x2c,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x29,0x2c,0x74,0x2e,0x67,0x65,0x74,0x28,0x61,0x29,0x2e,0x61,0x64,0x64,0x28,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x2c,0x6e,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x29,0x2c,0x77,0x65,0x28,0x72,0x2c,0x22,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x55,0x6e,0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x22,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x73,0x3d,0x74,0x2e,0x67,0x65,0x74,0x28,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x3f,0x3f,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x58,0x32,0x28,0x6f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x6c,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x2d,0x22,0x29,0x7c,0x7c,0x6c,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x3a,0x2d,0x22,0x29,0x7c,0x7c,0x6c,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x68,0x61,0x73,0x22,0x29,0x3f,0x6c,0x3a,0x22,0x5f,0x5f,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x5f,0x5f,0x22,0x2c,0x66,0x3d,0x61,0x2e,0x67,0x65,0x74,0x28,0x63,0x29,0x3f,0x3f,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x61,0x2e,0x73,0x65,0x74,0x28,0x63,0x2c,0x66,0x29,0x2c,0x66,0x2e,0x61,0x64,0x64,0x28,0x6c,0x29,0x7d,0x69,0x66,0x28,0x61,0x2e,0x73,0x69,0x7a,0x65,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x6e,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x2c,0x6f,0x5d,0x6f,0x66,0x20,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x65,0x65,0x2e,0x72,0x75,0x6c,0x65,0x28,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x6e,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x29,0x3b,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3d,0x5b,0x2e,0x2e,0x2e,0x6f,0x5d,0x2c,0x6c,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x63,0x3d,0x3e,0x63,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x29,0x29,0x29,0x2c,0x6e,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x6c,0x29,0x7d,0x6e,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x2e,0x73,0x69,0x7a,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x65,0x2e,0x72,0x75,0x6c,0x65,0x28,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x5b,0x22,0x2a,0x22,0x2c,0x22,0x3a,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x3a,0x3a,0x61,0x66,0x74,0x65,0x72,0x22,0x5d,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x69,0x29,0x6e,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x7c,0x7c,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x28,0x6e,0x29,0x2c,0x6e,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x7c,0x7c,0x28,0x6e,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x2c,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x5b,0x22,0x3a,0x3a,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x22,0x5d,0x7d,0x29,0x3b,0x6e,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x61,0x29,0x7d,0x7d,0x7d,0x76,0x61,0x72,0x20,0x43,0x73,0x2c,0x64,0x79,0x2c,0x4b,0x32,0x2c,0x7a,0x6c,0x2c,0x68,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4f,0x74,0x28,0x29,0x3b,0x43,0x73,0x3d,0x70,0x65,0x28,0x69,0x74,0x28,0x29,0x29,0x3b,0x63,0x74,0x28,0x29,0x3b,0x64,0x79,0x3d,0x7b,0x69,0x64,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x43,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x7b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x3a,0x22,0x69,0x64,0x22,0x2c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x3a,0x22,0x3d,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x71,0x75,0x6f,0x74,0x65,0x4d,0x61,0x72,0x6b,0x3a,0x27,0x22,0x27,0x7d,0x29,0x7d,0x7d,0x3b,0x4b,0x32,0x3d,0x28,0x30,0x2c,0x43,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x72,0x3d,0x3e,0x72,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x69,0x3d,0x3e,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x61,0x74,0x6f,0x72,0x22,0x26,0x26,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x20,0x22,0x29,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x59,0x32,0x28,0x74,0x29,0x7d,0x29,0x29,0x2c,0x7a,0x6c,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x56,0x6c,0x28,0x29,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x65,0x2e,0x65,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x4a,0x32,0x2e,0x68,0x61,0x73,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x29,0x29,0x7b,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x74,0x3d,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x6d,0x79,0x5b,0x69,0x2e,0x74,0x79,0x70,0x65,0x5d,0x3b,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x69,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x63,0x65,0x22,0x3f,0x74,0x3d,0x69,0x3a,0x6e,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x61,0x3d,0x3e,0x28,0x69,0x5b,0x61,0x5d,0x3f,0x3f,0x22,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x3d,0x3d,0x3d,0x28,0x74,0x5b,0x61,0x5d,0x3f,0x3f,0x22,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x67,0x2c,0x22,0x20,0x22,0x29,0x29,0x3f,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x26,0x26,0x74,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x69,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x3a,0x74,0x3d,0x69,0x7d,0x29,0x2c,0x65,0x2e,0x65,0x61,0x63,0x68,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x72,0x28,0x69,0x29,0x7d,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3e,0x7b,0x72,0x28,0x65,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x6d,0x79,0x2c,0x4a,0x32,0x2c,0x67,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6d,0x79,0x3d,0x7b,0x61,0x74,0x72,0x75,0x6c,0x65,0x3a,0x5b,0x22,0x6e,0x61,0x6d,0x65,0x22,0x2c,0x22,0x70,0x61,0x72,0x61,0x6d,0x73,0x22,0x5d,0x2c,0x72,0x75,0x6c,0x65,0x3a,0x5b,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x5d,0x7d,0x2c,0x4a,0x32,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x6d,0x79,0x29,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x6c,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3e,0x7b,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x65,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x69,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x5d,0x29,0x2c,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x61,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x61,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3d,0x3d,0x3d,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x68,0x61,0x73,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x67,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7b,0x69,0x2e,0x61,0x64,0x64,0x28,0x74,0x2e,0x67,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x2c,0x74,0x2e,0x73,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6e,0x2e,0x68,0x61,0x73,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x7c,0x7c,0x6e,0x2e,0x73,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x29,0x2c,0x6e,0x2e,0x67,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x2e,0x61,0x64,0x64,0x28,0x74,0x2e,0x67,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x2c,0x6e,0x2e,0x67,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x29,0x2e,0x61,0x64,0x64,0x28,0x61,0x29,0x7d,0x74,0x2e,0x73,0x65,0x74,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x61,0x29,0x7d,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x69,0x29,0x61,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x65,0x4f,0x28,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x6c,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x73,0x2e,0x68,0x61,0x73,0x28,0x6c,0x29,0x7c,0x7c,0x73,0x2e,0x73,0x65,0x74,0x28,0x6c,0x2c,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x29,0x2c,0x73,0x2e,0x67,0x65,0x74,0x28,0x6c,0x29,0x2e,0x61,0x64,0x64,0x28,0x6f,0x29,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x6f,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x31,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x63,0x20,0x6f,0x66,0x20,0x6c,0x29,0x63,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x7d,0x7d,0x29,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x4f,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x2f,0x5e,0x2d,0x3f,0x5c,0x64,0x2a,0x2e,0x3f,0x5c,0x64,0x2b,0x28,0x5b,0x5c,0x77,0x25,0x5d,0x2b,0x29,0x3f,0x24,0x2f,0x67,0x2e,0x65,0x78,0x65,0x63,0x28,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3f,0x65,0x5b,0x31,0x5d,0x3f,0x3f,0x5a,0x32,0x3a,0x6e,0x75,0x6c,0x6c,0x7d,0x76,0x61,0x72,0x20,0x5a,0x32,0x2c,0x79,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x5a,0x32,0x3d,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x75,0x6e,0x69,0x74,0x6c,0x65,0x73,0x73,0x2d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x4f,0x28,0x72,0x29,0x7b,0x69,0x66,0x28,0x21,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x69,0x66,0x28,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x61,0x70,0x70,0x6c,0x79,0x22,0x2c,0x74,0x3d,0x3e,0x7b,0x65,0x2e,0x61,0x64,0x64,0x28,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7d,0x29,0x2c,0x65,0x2e,0x73,0x69,0x7a,0x65,0x21,0x3d,0x3d,0x30,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x61,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x70,0x70,0x6c,0x79,0x22,0x3f,0x28,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x28,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x2c,0x6e,0x3d,0x5b,0x5d,0x29,0x2c,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x61,0x5d,0x29,0x29,0x3a,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x3b,0x69,0x66,0x28,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x2c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x31,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x5b,0x2e,0x2e,0x2e,0x69,0x5d,0x2e,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x28,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x3b,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x61,0x29,0x2c,0x74,0x2e,0x61,0x66,0x74,0x65,0x72,0x28,0x73,0x29,0x7d,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x7d,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x73,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3e,0x7b,0x74,0x4f,0x28,0x72,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x62,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x45,0x73,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x69,0x2c,0x61,0x70,0x70,0x6c,0x79,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x6e,0x7d,0x3d,0x5f,0x6c,0x28,0x65,0x29,0x3b,0x5f,0x73,0x28,0x29,0x28,0x65,0x2c,0x74,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x72,0x28,0x7b,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x69,0x2c,0x61,0x70,0x70,0x6c,0x79,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x6e,0x2c,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x44,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x79,0x28,0x73,0x29,0x7b,0x74,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x22,0x2c,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x74,0x2e,0x6f,0x70,0x74,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x2c,0x2e,0x2e,0x2e,0x73,0x7d,0x29,0x7d,0x2c,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x73,0x2c,0x6f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6c,0x28,0x73,0x2c,0x6f,0x2c,0x65,0x29,0x7d,0x7d,0x29,0x28,0x65,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x54,0x68,0x65,0x20,0x27,0x2d,0x27,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x61,0x73,0x20,0x61,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x20,0x69,0x6e,0x20,0x4a,0x49,0x54,0x20,0x6d,0x6f,0x64,0x65,0x20,0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x61,0x6d,0x62,0x69,0x67,0x75,0x69,0x74,0x79,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x75,0x73,0x65,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x6c,0x69,0x6b,0x65,0x20,0x27,0x5f,0x27,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x22,0x29,0x3b,0x4f,0x66,0x28,0x61,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x29,0x2c,0x61,0x77,0x61,0x69,0x74,0x20,0x54,0x6c,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x5f,0x73,0x28,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x50,0x6c,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x75,0x79,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x63,0x79,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x55,0x6c,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x56,0x6c,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x2c,0x48,0x6c,0x28,0x61,0x29,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x77,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x5f,0x67,0x28,0x29,0x3b,0x4d,0x67,0x28,0x29,0x3b,0x55,0x67,0x28,0x29,0x3b,0x66,0x79,0x28,0x29,0x3b,0x70,0x79,0x28,0x29,0x3b,0x68,0x79,0x28,0x29,0x3b,0x67,0x79,0x28,0x29,0x3b,0x79,0x79,0x28,0x29,0x3b,0x62,0x79,0x28,0x29,0x3b,0x5f,0x69,0x28,0x29,0x3b,0x63,0x74,0x28,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x79,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x75,0x6c,0x6c,0x2c,0x69,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x22,0x2c,0x6e,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x3d,0x6e,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3f,0x2e,0x69,0x6e,0x70,0x75,0x74,0x2e,0x66,0x69,0x6c,0x65,0x3f,0x3f,0x65,0x2e,0x6f,0x70,0x74,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x3f,0x3f,0x6e,0x75,0x6c,0x6c,0x2c,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x54,0x68,0x65,0x20,0x60,0x40,0x63,0x6f,0x6e,0x66,0x69,0x67,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x60,0x66,0x72,0x6f,0x6d,0x60,0x20,0x69,0x6e,0x20,0x79,0x6f,0x75,0x72,0x20,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x22,0x29,0x3b,0x69,0x66,0x28,0x74,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x4f,0x6e,0x6c,0x79,0x20,0x6f,0x6e,0x65,0x20,0x60,0x40,0x63,0x6f,0x6e,0x66,0x69,0x67,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x69,0x73,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x70,0x65,0x72,0x20,0x66,0x69,0x6c,0x65,0x2e,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x28,0x5b,0x27,0x22,0x5d,0x29,0x28,0x2e,0x2a,0x3f,0x29,0x5c,0x31,0x2f,0x29,0x3b,0x69,0x66,0x28,0x21,0x61,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x41,0x20,0x70,0x61,0x74,0x68,0x20,0x69,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x60,0x40,0x63,0x6f,0x6e,0x66,0x69,0x67,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x2e,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x61,0x5b,0x32,0x5d,0x3b,0x69,0x66,0x28,0x6d,0x65,0x2e,0x69,0x73,0x41,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x28,0x73,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x54,0x68,0x65,0x20,0x60,0x40,0x63,0x6f,0x6e,0x66,0x69,0x67,0x60,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6e,0x20,0x61,0x62,0x73,0x6f,0x6c,0x75,0x74,0x65,0x20,0x70,0x61,0x74,0x68,0x2e,0x22,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x6d,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x6d,0x65,0x2e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x69,0x29,0x2c,0x73,0x29,0x2c,0x21,0x62,0x65,0x2e,0x65,0x78,0x69,0x73,0x74,0x73,0x53,0x79,0x6e,0x63,0x28,0x74,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x60,0x54,0x68,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x66,0x69,0x6c,0x65,0x20,0x61,0x74,0x20,0x22,0x24,0x7b,0x73,0x7d,0x22,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x2e,0x20,0x4d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x74,0x68,0x20,0x69,0x73,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x6c,0x65,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2e,0x60,0x29,0x3b,0x6e,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x7d,0x29,0x2c,0x74,0x7c,0x7c,0x6e,0x75,0x6c,0x6c,0x7d,0x76,0x61,0x72,0x20,0x78,0x79,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x74,0x28,0x29,0x3b,0x65,0x74,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x79,0x3d,0x78,0x28,0x28,0x56,0x71,0x2c,0x57,0x6c,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x43,0x67,0x28,0x29,0x3b,0x77,0x79,0x28,0x29,0x3b,0x49,0x74,0x28,0x29,0x3b,0x78,0x79,0x28,0x29,0x3b,0x57,0x6c,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x22,0x2c,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x5b,0x4a,0x65,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x0a,0x60,0x29,0x2c,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x28,0x22,0x4a,0x49,0x54,0x20,0x54,0x4f,0x54,0x41,0x4c,0x22,0x29,0x2c,0x74,0x7d,0x2c,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x2c,0x69,0x29,0x7b,0x65,0x3d,0x76,0x79,0x28,0x74,0x2c,0x69,0x29,0x3f,0x3f,0x65,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x43,0x6c,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x73,0x3d,0x3e,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x61,0x29,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x26,0x26,0x61,0x77,0x61,0x69,0x74,0x20,0x45,0x73,0x28,0x6e,0x29,0x28,0x73,0x2c,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x61,0x77,0x61,0x69,0x74,0x20,0x45,0x73,0x28,0x6e,0x29,0x28,0x74,0x2c,0x69,0x29,0x7d,0x2c,0x4a,0x65,0x2e,0x44,0x45,0x42,0x55,0x47,0x26,0x26,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x74,0x69,0x6d,0x65,0x45,0x6e,0x64,0x28,0x22,0x4a,0x49,0x54,0x20,0x54,0x4f,0x54,0x41,0x4c,0x22,0x29,0x2c,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x6c,0x6f,0x67,0x28,0x60,0x0a,0x60,0x29,0x2c,0x74,0x7d,0x5d,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x7d,0x7d,0x3b,0x57,0x6c,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x3d,0x21,0x30,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x79,0x3d,0x78,0x28,0x28,0x48,0x71,0x2c,0x53,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x53,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6b,0x79,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x47,0x6c,0x3d,0x78,0x28,0x28,0x57,0x71,0x2c,0x43,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x43,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x28,0x29,0x3d,0x3e,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x66,0x61,0x72,0x69,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x73,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x4f,0x73,0x2c,0x7b,0x61,0x67,0x65,0x6e,0x74,0x73,0x3a,0x28,0x29,0x3d,0x3e,0x72,0x4f,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x28,0x29,0x3d,0x3e,0x69,0x4f,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x4f,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x73,0x74,0x61,0x74,0x75,0x73,0x3a,0x22,0x63,0x72,0x22,0x2c,0x74,0x69,0x74,0x6c,0x65,0x3a,0x22,0x43,0x53,0x53,0x20,0x46,0x65,0x61,0x74,0x75,0x72,0x65,0x20,0x51,0x75,0x65,0x72,0x69,0x65,0x73,0x22,0x2c,0x73,0x74,0x61,0x74,0x73,0x3a,0x7b,0x69,0x65,0x3a,0x7b,0x22,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x39,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x35,0x2e,0x35,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x65,0x64,0x67,0x65,0x3a,0x7b,0x22,0x31,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x3a,0x7b,0x22,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x39,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x39,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x2e,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x33,0x2e,0x36,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x63,0x68,0x72,0x6f,0x6d,0x65,0x3a,0x7b,0x22,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x39,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x39,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x37,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x73,0x61,0x66,0x61,0x72,0x69,0x3a,0x7b,0x22,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x32,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x34,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x32,0x2d,0x31,0x35,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x54,0x50,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x33,0x2e,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x35,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x36,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x6f,0x70,0x65,0x72,0x61,0x3a,0x7b,0x22,0x39,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x39,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x32,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x2e,0x35,0x2d,0x39,0x2e,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x2e,0x30,0x2d,0x31,0x30,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x2e,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x2e,0x36,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x2e,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x2e,0x36,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x3a,0x7b,0x22,0x38,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x2e,0x30,0x2d,0x39,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x2e,0x30,0x2d,0x31,0x30,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x2e,0x30,0x2d,0x31,0x31,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x2e,0x33,0x2d,0x31,0x31,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x32,0x2e,0x30,0x2d,0x31,0x32,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x32,0x2e,0x32,0x2d,0x31,0x32,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x2e,0x30,0x2d,0x31,0x33,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x2e,0x34,0x2d,0x31,0x33,0x2e,0x37,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x34,0x2e,0x30,0x2d,0x31,0x34,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x34,0x2e,0x35,0x2d,0x31,0x34,0x2e,0x38,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x30,0x2d,0x31,0x35,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x32,0x2d,0x31,0x35,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x36,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x2e,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x34,0x2e,0x30,0x2d,0x34,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x34,0x2e,0x32,0x2d,0x34,0x2e,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x35,0x2e,0x30,0x2d,0x35,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x36,0x2e,0x30,0x2d,0x36,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x2e,0x30,0x2d,0x37,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x38,0x2e,0x31,0x2d,0x38,0x2e,0x34,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x6f,0x70,0x5f,0x6d,0x69,0x6e,0x69,0x3a,0x7b,0x61,0x6c,0x6c,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x72,0x6f,0x69,0x64,0x3a,0x7b,0x22,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x34,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x34,0x2e,0x34,0x2e,0x33,0x2d,0x34,0x2e,0x34,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x2e,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x32,0x2e,0x33,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x34,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x34,0x2e,0x32,0x2d,0x34,0x2e,0x33,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x62,0x62,0x3a,0x7b,0x22,0x37,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x30,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x6f,0x70,0x5f,0x6d,0x6f,0x62,0x3a,0x7b,0x22,0x31,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x32,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x37,0x33,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x2e,0x35,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x32,0x2e,0x31,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x3a,0x7b,0x22,0x31,0x31,0x34,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x66,0x66,0x3a,0x7b,0x22,0x31,0x31,0x35,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x69,0x65,0x5f,0x6d,0x6f,0x62,0x3a,0x7b,0x22,0x31,0x30,0x22,0x3a,0x22,0x6e,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6e,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x75,0x63,0x3a,0x7b,0x22,0x31,0x35,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x3a,0x7b,0x22,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x32,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x35,0x2e,0x30,0x2d,0x35,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x36,0x2e,0x32,0x2d,0x36,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x37,0x2e,0x32,0x2d,0x37,0x2e,0x34,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x38,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x39,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x30,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x31,0x2e,0x31,0x2d,0x31,0x31,0x2e,0x32,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x32,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x33,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x34,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x35,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x36,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x37,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x38,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x31,0x39,0x2e,0x30,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x71,0x71,0x3a,0x7b,0x22,0x31,0x33,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x62,0x61,0x69,0x64,0x75,0x3a,0x7b,0x22,0x31,0x33,0x2e,0x31,0x38,0x22,0x3a,0x22,0x79,0x22,0x7d,0x2c,0x6b,0x61,0x69,0x6f,0x73,0x3a,0x7b,0x22,0x32,0x2e,0x35,0x22,0x3a,0x22,0x79,0x22,0x2c,0x22,0x33,0x2e,0x30,0x2d,0x33,0x2e,0x31,0x22,0x3a,0x22,0x79,0x22,0x7d,0x7d,0x7d,0x7d,0x76,0x61,0x72,0x20,0x72,0x4f,0x2c,0x54,0x73,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x72,0x4f,0x3d,0x7b,0x69,0x65,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6d,0x73,0x22,0x7d,0x2c,0x65,0x64,0x67,0x65,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x5f,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x22,0x31,0x32,0x22,0x3a,0x22,0x6d,0x73,0x22,0x2c,0x22,0x31,0x33,0x22,0x3a,0x22,0x6d,0x73,0x22,0x2c,0x22,0x31,0x34,0x22,0x3a,0x22,0x6d,0x73,0x22,0x2c,0x22,0x31,0x35,0x22,0x3a,0x22,0x6d,0x73,0x22,0x2c,0x22,0x31,0x36,0x22,0x3a,0x22,0x6d,0x73,0x22,0x2c,0x22,0x31,0x37,0x22,0x3a,0x22,0x6d,0x73,0x22,0x2c,0x22,0x31,0x38,0x22,0x3a,0x22,0x6d,0x73,0x22,0x7d,0x7d,0x2c,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6d,0x6f,0x7a,0x22,0x7d,0x2c,0x63,0x68,0x72,0x6f,0x6d,0x65,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x73,0x61,0x66,0x61,0x72,0x69,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x6f,0x70,0x65,0x72,0x61,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x5f,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x22,0x39,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x31,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x32,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x39,0x2e,0x35,0x2d,0x39,0x2e,0x36,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x30,0x2e,0x30,0x2d,0x31,0x30,0x2e,0x31,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x30,0x2e,0x35,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x30,0x2e,0x36,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x31,0x2e,0x31,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x31,0x2e,0x35,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x31,0x2e,0x36,0x22,0x3a,0x22,0x6f,0x22,0x2c,0x22,0x31,0x32,0x2e,0x31,0x22,0x3a,0x22,0x6f,0x22,0x7d,0x7d,0x2c,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x6f,0x70,0x5f,0x6d,0x69,0x6e,0x69,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6f,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x72,0x6f,0x69,0x64,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x62,0x62,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x6f,0x70,0x5f,0x6d,0x6f,0x62,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6f,0x22,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x5f,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x22,0x37,0x33,0x22,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x66,0x66,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6d,0x6f,0x7a,0x22,0x7d,0x2c,0x69,0x65,0x5f,0x6d,0x6f,0x62,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6d,0x73,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x75,0x63,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x5f,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x22,0x31,0x35,0x2e,0x35,0x22,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x7d,0x2c,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x61,0x6e,0x64,0x5f,0x71,0x71,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x62,0x61,0x69,0x64,0x75,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x77,0x65,0x62,0x6b,0x69,0x74,0x22,0x7d,0x2c,0x6b,0x61,0x69,0x6f,0x73,0x3a,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x22,0x6d,0x6f,0x7a,0x22,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5f,0x79,0x3d,0x78,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5f,0x65,0x3d,0x78,0x28,0x28,0x59,0x71,0x2c,0x4c,0x74,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x7b,0x6c,0x69,0x73,0x74,0x3a,0x51,0x6c,0x7d,0x3d,0x24,0x65,0x28,0x29,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x65,0x72,0x72,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x72,0x29,0x3b,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x2e,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x3d,0x21,0x30,0x2c,0x65,0x7d,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x75,0x6e,0x69,0x71,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x2e,0x2e,0x2e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x72,0x29,0x5d,0x7d,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x74,0x65,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x20,0x22,0x29,0x3f,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x20,0x22,0x29,0x5b,0x30,0x5d,0x3a,0x72,0x7d,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x70,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x24,0x28,0x29,0x2a,0x2b,0x2d,0x2e,0x3f,0x5b,0x5c,0x5c,0x5c,0x5d,0x5e,0x7b,0x7c,0x7d,0x5d,0x2f,0x67,0x2c,0x22,0x5c,0x5c,0x24,0x26,0x22,0x29,0x7d,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x3d,0x21,0x30,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x28,0x72,0x3d,0x74,0x68,0x69,0x73,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x70,0x28,0x72,0x29,0x29,0x2c,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x28,0x5e,0x7c,0x5b,0x5c,0x5c,0x73,0x2c,0x28,0x5d,0x29,0x28,0x24,0x7b,0x72,0x7d,0x28,0x24,0x7c,0x5b,0x5c,0x5c,0x73,0x28,0x2c,0x5d,0x29,0x29,0x60,0x2c,0x22,0x67,0x69,0x22,0x29,0x7d,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x65,0x64,0x69,0x74,0x4c,0x69,0x73,0x74,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x51,0x6c,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x72,0x29,0x2c,0x69,0x3d,0x65,0x28,0x74,0x2c,0x5b,0x5d,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x69,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x2c,0x5c,0x73,0x2a,0x2f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x6e,0x3f,0x6e,0x5b,0x30,0x5d,0x3a,0x22,0x2c,0x20,0x22,0x2c,0x69,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x6e,0x29,0x7d,0x3b,0x4c,0x74,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x51,0x6c,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x72,0x29,0x2e,0x6d,0x61,0x70,0x28,0x65,0x3d,0x3e,0x51,0x6c,0x2e,0x73,0x70,0x61,0x63,0x65,0x28,0x65,0x29,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x28,0x3f,0x3d,0x5c,0x2e,0x7c,0x23,0x29,0x2f,0x67,0x29,0x29,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x74,0x3d,0x78,0x28,0x28,0x4b,0x71,0x2c,0x54,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x4f,0x3d,0x47,0x6c,0x28,0x29,0x2c,0x45,0x79,0x3d,0x28,0x54,0x73,0x28,0x29,0x2c,0x4f,0x73,0x29,0x2e,0x61,0x67,0x65,0x6e,0x74,0x73,0x2c,0x73,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x4f,0x79,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x69,0x6e,0x20,0x45,0x79,0x29,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x2d,0x24,0x7b,0x45,0x79,0x5b,0x65,0x5d,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x7d,0x2d,0x60,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x3d,0x73,0x4f,0x2e,0x75,0x6e,0x69,0x71,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x29,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x7d,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x77,0x69,0x74,0x68,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x52,0x65,0x67,0x65,0x78,0x70,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x52,0x65,0x67,0x65,0x78,0x70,0x3d,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x52,0x65,0x67,0x65,0x78,0x70,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x29,0x7d,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x69,0x7c,0x7c,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x4f,0x70,0x74,0x73,0x3d,0x6e,0x7c,0x7c,0x7b,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x74,0x29,0x7d,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x4f,0x70,0x74,0x73,0x29,0x74,0x5b,0x69,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x4f,0x70,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x70,0x61,0x74,0x68,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x2c,0x6e,0x4f,0x28,0x65,0x2c,0x74,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x3d,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x20,0x22,0x29,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x5b,0x74,0x5d,0x2c,0x61,0x3d,0x6e,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x5f,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x26,0x26,0x6e,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x5f,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7c,0x7c,0x28,0x61,0x3d,0x6e,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x2c,0x60,0x2d,0x24,0x7b,0x61,0x7d,0x2d,0x60,0x7d,0x69,0x73,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x7d,0x7d,0x3b,0x54,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4f,0x79,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4c,0x69,0x3d,0x78,0x28,0x28,0x58,0x71,0x2c,0x52,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x52,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5e,0x28,0x2d,0x5c,0x77,0x2b,0x2d,0x29,0x2f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3f,0x65,0x5b,0x30,0x5d,0x3a,0x22,0x22,0x7d,0x2c,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x2d,0x5c,0x77,0x2b,0x2d,0x2f,0x2c,0x22,0x22,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x72,0x3d,0x78,0x28,0x28,0x4a,0x71,0x2c,0x49,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x61,0x4f,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x50,0x79,0x3d,0x4c,0x69,0x28,0x29,0x2c,0x6f,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x59,0x6c,0x28,0x72,0x2c,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x72,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x7c,0x7c,0x7b,0x7d,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x72,0x5b,0x69,0x5d,0x3b,0x69,0x3d,0x3d,0x3d,0x22,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x65,0x26,0x26,0x28,0x74,0x5b,0x69,0x5d,0x3d,0x65,0x29,0x3a,0x69,0x3d,0x3d,0x3d,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x74,0x5b,0x69,0x5d,0x3d,0x6e,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x3f,0x74,0x5b,0x69,0x5d,0x3d,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x59,0x6c,0x28,0x61,0x2c,0x74,0x29,0x29,0x3a,0x69,0x21,0x3d,0x3d,0x22,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x22,0x26,0x26,0x69,0x21,0x3d,0x3d,0x22,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x22,0x26,0x26,0x69,0x21,0x3d,0x3d,0x22,0x70,0x72,0x6f,0x78,0x79,0x43,0x61,0x63,0x68,0x65,0x22,0x26,0x26,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x6e,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x26,0x26,0x28,0x6e,0x3d,0x59,0x6c,0x28,0x6e,0x2c,0x74,0x29,0x29,0x2c,0x74,0x5b,0x69,0x5d,0x3d,0x6e,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x76,0x61,0x72,0x20,0x52,0x73,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x68,0x61,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x63,0x6b,0x73,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x63,0x6b,0x73,0x3d,0x7b,0x7d,0x29,0x2c,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x28,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x63,0x6b,0x73,0x5b,0x74,0x5d,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x63,0x6b,0x73,0x5b,0x74,0x5d,0x29,0x29,0x7d,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x6c,0x6f,0x61,0x64,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x63,0x6b,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x63,0x6b,0x73,0x5b,0x65,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3f,0x6e,0x65,0x77,0x20,0x6e,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3a,0x6e,0x65,0x77,0x20,0x74,0x68,0x69,0x73,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x59,0x6c,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x69,0x6e,0x20,0x74,0x29,0x69,0x5b,0x6e,0x5d,0x3d,0x74,0x5b,0x6e,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7d,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x3d,0x69,0x7d,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x74,0x3d,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x65,0x2e,0x70,0x72,0x6f,0x70,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x3f,0x74,0x3d,0x50,0x79,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x29,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x6f,0x6f,0x74,0x22,0x3f,0x74,0x3d,0x21,0x31,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x2d,0x22,0x29,0x26,0x26,0x2f,0x3a,0x28,0x2d,0x5c,0x77,0x2b,0x2d,0x29,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3f,0x74,0x3d,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x3a,0x28,0x2d,0x5c,0x77,0x2b,0x2d,0x29,0x2f,0x29,0x5b,0x31,0x5d,0x3a,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x3f,0x74,0x3d,0x50,0x79,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x3a,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x2c,0x61,0x4f,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x29,0x7c,0x7c,0x28,0x74,0x3d,0x21,0x31,0x29,0x2c,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x3d,0x74,0x2c,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x73,0x3d,0x3e,0x21,0x69,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x6f,0x4f,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x74,0x65,0x28,0x73,0x29,0x29,0x2c,0x61,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x6e,0x29,0x74,0x68,0x69,0x73,0x2e,0x61,0x64,0x64,0x28,0x65,0x2c,0x73,0x2c,0x61,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x5b,0x73,0x5d,0x29,0x2c,0x74,0x29,0x26,0x26,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x49,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x52,0x73,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6a,0x3d,0x78,0x28,0x28,0x5a,0x71,0x2c,0x24,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6c,0x4f,0x3d,0x77,0x72,0x28,0x29,0x2c,0x75,0x4f,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x44,0x79,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x71,0x79,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6c,0x4f,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x65,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x6f,0x74,0x68,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x75,0x4f,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x29,0x29,0x69,0x66,0x28,0x69,0x21,0x3d,0x3d,0x74,0x26,0x26,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x69,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x74,0x29,0x2c,0x65,0x7d,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x7c,0x7c,0x28,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x61,0x73,0x63,0x61,0x64,0x65,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x65,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x29,0x2c,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x7d,0x6d,0x61,0x78,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x4d,0x61,0x78,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x4d,0x61,0x78,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x65,0x29,0x6e,0x3d,0x44,0x79,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x74,0x65,0x28,0x6e,0x29,0x2c,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x69,0x26,0x26,0x28,0x69,0x3d,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x4d,0x61,0x78,0x3d,0x69,0x2c,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x4d,0x61,0x78,0x7d,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x74,0x2c,0x69,0x3d,0x22,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x78,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x2d,0x44,0x79,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x74,0x65,0x28,0x69,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x3d,0x74,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x3e,0x30,0x26,0x26,0x28,0x73,0x2b,0x3d,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x29,0x2e,0x66,0x69,0x6c,0x6c,0x28,0x22,0x20,0x22,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x29,0x2c,0x73,0x7d,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x2c,0x69,0x3d,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x65,0x29,0x2e,0x75,0x70,0x28,0x6e,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x6e,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x2c,0x73,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x69,0x3d,0x73,0x29,0x7d,0x29,0x2c,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x69,0x2c,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x0a,0x60,0x29,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x21,0x28,0x21,0x6e,0x7c,0x7c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x73,0x3d,0x3e,0x73,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x26,0x26,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x6e,0x29,0x7d,0x69,0x73,0x41,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x65,0x29,0x2e,0x75,0x70,0x28,0x6e,0x3d,0x3e,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x7c,0x7c,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x65,0x29,0x2e,0x64,0x6f,0x77,0x6e,0x28,0x6e,0x3d,0x3e,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x29,0x29,0x2c,0x69,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x21,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x41,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x61,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x74,0x68,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x74,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x69,0x3d,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x29,0x3b,0x21,0x69,0x7c,0x7c,0x21,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x29,0x2c,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x29,0x29,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x5d,0x7d,0x7d,0x3b,0x24,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x71,0x79,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x79,0x3d,0x78,0x28,0x28,0x65,0x24,0x2c,0x4c,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x4c,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6d,0x75,0x6c,0x3a,0x74,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x72,0x28,0x65,0x2a,0x74,0x29,0x2c,0x64,0x69,0x76,0x3a,0x74,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x72,0x28,0x65,0x2f,0x74,0x29,0x2c,0x73,0x69,0x6d,0x70,0x6c,0x69,0x66,0x79,0x3a,0x28,0x29,0x3d,0x3e,0x6e,0x65,0x77,0x20,0x72,0x28,0x65,0x29,0x2c,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3a,0x28,0x29,0x3d,0x3e,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x46,0x79,0x3d,0x78,0x28,0x28,0x74,0x24,0x2c,0x42,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x66,0x4f,0x3d,0x4d,0x79,0x28,0x29,0x2c,0x63,0x4f,0x3d,0x77,0x72,0x28,0x29,0x2c,0x4b,0x6c,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x70,0x4f,0x3d,0x2f,0x28,0x6d,0x69,0x6e,0x7c,0x6d,0x61,0x78,0x29,0x2d,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x5c,0x73,0x2a,0x3a,0x5c,0x73,0x2a,0x5c,0x64,0x2a,0x5c,0x2e,0x3f,0x5c,0x64,0x2b,0x28,0x64,0x70,0x70,0x78,0x7c,0x64,0x70,0x63,0x6d,0x7c,0x64,0x70,0x69,0x7c,0x78,0x29,0x2f,0x67,0x69,0x2c,0x64,0x4f,0x3d,0x2f,0x28,0x6d,0x69,0x6e,0x7c,0x6d,0x61,0x78,0x29,0x2d,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x28,0x5c,0x73,0x2a,0x3a,0x5c,0x73,0x2a,0x29,0x28,0x5c,0x64,0x2a,0x5c,0x2e,0x3f,0x5c,0x64,0x2b,0x29,0x28,0x64,0x70,0x70,0x78,0x7c,0x64,0x70,0x63,0x6d,0x7c,0x64,0x70,0x69,0x7c,0x78,0x29,0x2f,0x69,0x2c,0x4e,0x79,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x63,0x4f,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x4e,0x61,0x6d,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x74,0x2b,0x22,0x2d,0x2d,0x6d,0x6f,0x7a,0x2d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x70,0x69,0x78,0x65,0x6c,0x2d,0x72,0x61,0x74,0x69,0x6f,0x22,0x3a,0x65,0x2b,0x74,0x2b,0x22,0x2d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x70,0x69,0x78,0x65,0x6c,0x2d,0x72,0x61,0x74,0x69,0x6f,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x51,0x75,0x65,0x72,0x79,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x66,0x4f,0x28,0x6e,0x29,0x2c,0x61,0x3d,0x3d,0x3d,0x22,0x64,0x70,0x69,0x22,0x3f,0x6e,0x3d,0x6e,0x2e,0x64,0x69,0x76,0x28,0x39,0x36,0x29,0x3a,0x61,0x3d,0x3d,0x3d,0x22,0x64,0x70,0x63,0x6d,0x22,0x26,0x26,0x28,0x6e,0x3d,0x6e,0x2e,0x6d,0x75,0x6c,0x28,0x32,0x2e,0x35,0x34,0x29,0x2e,0x64,0x69,0x76,0x28,0x39,0x36,0x29,0x29,0x2c,0x6e,0x3d,0x6e,0x2e,0x73,0x69,0x6d,0x70,0x6c,0x69,0x66,0x79,0x28,0x29,0x2c,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6f,0x2d,0x22,0x26,0x26,0x28,0x6e,0x3d,0x6e,0x2e,0x6e,0x2b,0x22,0x2f,0x22,0x2b,0x6e,0x2e,0x64,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x4e,0x61,0x6d,0x65,0x28,0x65,0x2c,0x74,0x29,0x2b,0x69,0x2b,0x6e,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x64,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x64,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x4e,0x61,0x6d,0x65,0x28,0x74,0x2c,0x22,0x6d,0x69,0x6e,0x22,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x4e,0x61,0x6d,0x65,0x28,0x74,0x2c,0x22,0x6d,0x61,0x78,0x22,0x29,0x29,0x7d,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x4b,0x6c,0x2e,0x65,0x64,0x69,0x74,0x4c,0x69,0x73,0x74,0x28,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x74,0x3d,0x3e,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x64,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x6e,0x3d,0x3e,0x21,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x29,0x29,0x29,0x29,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x29,0x2c,0x69,0x3d,0x74,0x3f,0x5b,0x74,0x5d,0x3a,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3b,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x4b,0x6c,0x2e,0x65,0x64,0x69,0x74,0x4c,0x69,0x73,0x74,0x28,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x6e,0x29,0x7b,0x69,0x66,0x28,0x21,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6d,0x69,0x6e,0x2d,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x29,0x26,0x26,0x21,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6d,0x61,0x78,0x2d,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x29,0x29,0x7b,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x70,0x4f,0x2c,0x63,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x63,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x64,0x4f,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x51,0x75,0x65,0x72,0x79,0x28,0x6f,0x2c,0x66,0x5b,0x31,0x5d,0x2c,0x66,0x5b,0x32,0x5d,0x2c,0x66,0x5b,0x33,0x5d,0x2c,0x66,0x5b,0x34,0x5d,0x29,0x7d,0x29,0x3b,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x6c,0x29,0x7d,0x61,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x6c,0x2e,0x75,0x6e,0x69,0x71,0x28,0x61,0x29,0x7d,0x29,0x7d,0x7d,0x3b,0x42,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4e,0x79,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x7a,0x79,0x3d,0x78,0x28,0x28,0x72,0x24,0x2c,0x6a,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x58,0x6c,0x3d,0x22,0x28,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x4a,0x6c,0x3d,0x22,0x29,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x50,0x73,0x3d,0x22,0x27,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x5a,0x6c,0x3d,0x27,0x22,0x27,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x65,0x75,0x3d,0x22,0x5c,0x5c,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x76,0x72,0x3d,0x22,0x2f,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x74,0x75,0x3d,0x22,0x2c,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x72,0x75,0x3d,0x22,0x3a,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x49,0x73,0x3d,0x22,0x2a,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x68,0x4f,0x3d,0x22,0x75,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x6d,0x4f,0x3d,0x22,0x55,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x67,0x4f,0x3d,0x22,0x2b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x79,0x4f,0x3d,0x2f,0x5e,0x5b,0x61,0x2d,0x66,0x30,0x2d,0x39,0x3f,0x2d,0x5d,0x2b,0x24,0x2f,0x69,0x3b,0x6a,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x65,0x3d,0x5b,0x5d,0x2c,0x74,0x3d,0x72,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x2c,0x63,0x2c,0x66,0x2c,0x64,0x3d,0x30,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x2c,0x68,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x62,0x3d,0x5b,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x65,0x7d,0x5d,0x2c,0x76,0x3d,0x30,0x2c,0x79,0x2c,0x77,0x3d,0x22,0x22,0x2c,0x6b,0x3d,0x22,0x22,0x2c,0x53,0x3d,0x22,0x22,0x3b,0x64,0x3c,0x68,0x3b,0x29,0x69,0x66,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x7b,0x69,0x3d,0x64,0x3b,0x64,0x6f,0x20,0x69,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x3b,0x73,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2c,0x69,0x29,0x2c,0x61,0x3d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2c,0x70,0x3d,0x3d,0x3d,0x4a,0x6c,0x26,0x26,0x76,0x3f,0x53,0x3d,0x73,0x3a,0x61,0x26,0x26,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x3f,0x28,0x61,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x73,0x2c,0x61,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3a,0x70,0x3d,0x3d,0x3d,0x74,0x75,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x72,0x75,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x76,0x72,0x26,0x26,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x2b,0x31,0x29,0x21,0x3d,0x3d,0x49,0x73,0x26,0x26,0x28,0x21,0x79,0x7c,0x7c,0x79,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x22,0x63,0x61,0x6c,0x63,0x22,0x29,0x3f,0x6b,0x3d,0x73,0x3a,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x2c,0x64,0x3d,0x69,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x50,0x73,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x5a,0x6c,0x29,0x7b,0x69,0x3d,0x64,0x2c,0x6e,0x3d,0x70,0x3d,0x3d,0x3d,0x50,0x73,0x3f,0x22,0x27,0x22,0x3a,0x27,0x22,0x27,0x2c,0x73,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x71,0x75,0x6f,0x74,0x65,0x3a,0x6e,0x7d,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x6f,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x2c,0x69,0x2b,0x31,0x29,0x2c,0x7e,0x69,0x29,0x66,0x6f,0x72,0x28,0x6c,0x3d,0x69,0x3b,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6c,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x65,0x75,0x3b,0x29,0x6c,0x2d,0x3d,0x31,0x2c,0x6f,0x3d,0x21,0x6f,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x2b,0x3d,0x6e,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x6f,0x29,0x3b,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2b,0x31,0x2c,0x69,0x29,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x69,0x3a,0x69,0x2b,0x31,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x64,0x3d,0x69,0x2b,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x76,0x72,0x26,0x26,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x2b,0x31,0x29,0x3d,0x3d,0x3d,0x49,0x73,0x29,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x2a,0x2f,0x22,0x2c,0x64,0x29,0x2c,0x73,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2b,0x32,0x7d,0x2c,0x69,0x3d,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x28,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x69,0x29,0x2c,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2b,0x32,0x2c,0x69,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x64,0x3d,0x69,0x2b,0x32,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x28,0x70,0x3d,0x3d,0x3d,0x76,0x72,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x49,0x73,0x29,0x26,0x26,0x79,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x61,0x6c,0x63,0x22,0x29,0x73,0x3d,0x74,0x5b,0x64,0x5d,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2d,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x2c,0x64,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x76,0x72,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x74,0x75,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x72,0x75,0x29,0x73,0x3d,0x74,0x5b,0x64,0x5d,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x69,0x76,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2d,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x6b,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x22,0x22,0x7d,0x29,0x2c,0x6b,0x3d,0x22,0x22,0x2c,0x64,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x58,0x6c,0x3d,0x3d,0x3d,0x70,0x29,0x7b,0x69,0x3d,0x64,0x3b,0x64,0x6f,0x20,0x69,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x3b,0x69,0x66,0x28,0x66,0x3d,0x64,0x2c,0x73,0x3d,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2d,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x2c,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x66,0x2b,0x31,0x2c,0x69,0x29,0x7d,0x2c,0x64,0x3d,0x69,0x2c,0x77,0x3d,0x3d,0x3d,0x22,0x75,0x72,0x6c,0x22,0x26,0x26,0x70,0x21,0x3d,0x3d,0x50,0x73,0x26,0x26,0x70,0x21,0x3d,0x3d,0x5a,0x6c,0x29,0x7b,0x69,0x2d,0x3d,0x31,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x6f,0x3d,0x21,0x31,0x2c,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x29,0x22,0x2c,0x69,0x2b,0x31,0x29,0x2c,0x7e,0x69,0x29,0x66,0x6f,0x72,0x28,0x6c,0x3d,0x69,0x3b,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x6c,0x2d,0x31,0x29,0x3d,0x3d,0x3d,0x65,0x75,0x3b,0x29,0x6c,0x2d,0x3d,0x31,0x2c,0x6f,0x3d,0x21,0x6f,0x3b,0x65,0x6c,0x73,0x65,0x20,0x74,0x2b,0x3d,0x22,0x29,0x22,0x2c,0x69,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x2c,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x6f,0x29,0x3b,0x63,0x3d,0x69,0x3b,0x64,0x6f,0x20,0x63,0x2d,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x63,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x70,0x3c,0x3d,0x33,0x32,0x29,0x3b,0x66,0x3c,0x63,0x3f,0x28,0x64,0x21,0x3d,0x3d,0x63,0x2b,0x31,0x3f,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x63,0x2b,0x31,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2c,0x63,0x2b,0x31,0x29,0x7d,0x5d,0x3a,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x26,0x26,0x63,0x2b,0x31,0x21,0x3d,0x3d,0x69,0x3f,0x28,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x63,0x2b,0x31,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x63,0x2b,0x31,0x2c,0x69,0x29,0x7d,0x29,0x29,0x3a,0x28,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x63,0x2b,0x31,0x2c,0x69,0x29,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x69,0x29,0x29,0x3a,0x28,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x64,0x3d,0x69,0x2b,0x31,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x73,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x69,0x3a,0x64,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x76,0x2b,0x3d,0x31,0x2c,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x22,0x22,0x2c,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x64,0x2b,0x31,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x62,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x2c,0x65,0x3d,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x2c,0x79,0x3d,0x73,0x3b,0x77,0x3d,0x22,0x22,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x4a,0x6c,0x3d,0x3d,0x3d,0x70,0x26,0x26,0x76,0x29,0x64,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x64,0x29,0x2c,0x79,0x2e,0x61,0x66,0x74,0x65,0x72,0x3d,0x53,0x2c,0x79,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x2b,0x3d,0x53,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x53,0x3d,0x22,0x22,0x2c,0x76,0x2d,0x3d,0x31,0x2c,0x62,0x5b,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x64,0x2c,0x62,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x79,0x3d,0x62,0x5b,0x76,0x5d,0x2c,0x65,0x3d,0x79,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x69,0x3d,0x64,0x3b,0x64,0x6f,0x20,0x70,0x3d,0x3d,0x3d,0x65,0x75,0x26,0x26,0x28,0x69,0x2b,0x3d,0x31,0x29,0x2c,0x69,0x2b,0x3d,0x31,0x2c,0x70,0x3d,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x69,0x3c,0x68,0x26,0x26,0x21,0x28,0x70,0x3c,0x3d,0x33,0x32,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x50,0x73,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x5a,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x74,0x75,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x72,0x75,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x76,0x72,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x58,0x6c,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x49,0x73,0x26,0x26,0x79,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x61,0x6c,0x63,0x22,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x76,0x72,0x26,0x26,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x61,0x6c,0x63,0x22,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x4a,0x6c,0x26,0x26,0x76,0x29,0x29,0x3b,0x73,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x64,0x2c,0x69,0x29,0x2c,0x58,0x6c,0x3d,0x3d,0x3d,0x70,0x3f,0x77,0x3d,0x73,0x3a,0x28,0x68,0x4f,0x3d,0x3d,0x3d,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x7c,0x7c,0x6d,0x4f,0x3d,0x3d,0x3d,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x29,0x26,0x26,0x67,0x4f,0x3d,0x3d,0x3d,0x73,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x26,0x26,0x79,0x4f,0x2e,0x74,0x65,0x73,0x74,0x28,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x29,0x3f,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2d,0x72,0x61,0x6e,0x67,0x65,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x3a,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x3a,0x64,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x69,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x2c,0x64,0x3d,0x69,0x7d,0x66,0x6f,0x72,0x28,0x64,0x3d,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x64,0x3b,0x64,0x2d,0x3d,0x31,0x29,0x62,0x5b,0x64,0x5d,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3d,0x21,0x30,0x2c,0x62,0x5b,0x64,0x5d,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x3d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x5b,0x30,0x5d,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x79,0x3d,0x78,0x28,0x28,0x69,0x24,0x2c,0x55,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x55,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x3b,0x66,0x6f,0x72,0x28,0x6e,0x3d,0x30,0x2c,0x61,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6e,0x3c,0x61,0x3b,0x6e,0x2b,0x3d,0x31,0x29,0x73,0x3d,0x65,0x5b,0x6e,0x5d,0x2c,0x69,0x7c,0x7c,0x28,0x6f,0x3d,0x74,0x28,0x73,0x2c,0x6e,0x2c,0x65,0x29,0x29,0x2c,0x6f,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x26,0x26,0x72,0x28,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x74,0x2c,0x69,0x29,0x2c,0x69,0x26,0x26,0x74,0x28,0x73,0x2c,0x6e,0x2c,0x65,0x29,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x79,0x3d,0x78,0x28,0x28,0x6e,0x24,0x2c,0x47,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x48,0x79,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x3d,0x72,0x2e,0x74,0x79,0x70,0x65,0x2c,0x69,0x3d,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x6e,0x2c,0x61,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x28,0x61,0x3d,0x65,0x28,0x72,0x29,0x29,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3f,0x61,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x3f,0x69,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3f,0x28,0x6e,0x3d,0x72,0x2e,0x71,0x75,0x6f,0x74,0x65,0x7c,0x7c,0x22,0x22,0x2c,0x6e,0x2b,0x69,0x2b,0x28,0x72,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x22,0x22,0x3a,0x6e,0x29,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x3f,0x22,0x2f,0x2a,0x22,0x2b,0x69,0x2b,0x28,0x72,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x22,0x22,0x3a,0x22,0x2a,0x2f,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x3f,0x28,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x69,0x2b,0x28,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x29,0x3a,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3f,0x28,0x6e,0x3d,0x57,0x79,0x28,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x65,0x29,0x2c,0x74,0x21,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3f,0x6e,0x3a,0x69,0x2b,0x22,0x28,0x22,0x2b,0x28,0x72,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x6e,0x2b,0x28,0x72,0x2e,0x61,0x66,0x74,0x65,0x72,0x7c,0x7c,0x22,0x22,0x29,0x2b,0x28,0x72,0x2e,0x75,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x64,0x3f,0x22,0x22,0x3a,0x22,0x29,0x22,0x29,0x29,0x3a,0x69,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x57,0x79,0x28,0x72,0x2c,0x65,0x29,0x7b,0x76,0x61,0x72,0x20,0x74,0x2c,0x69,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x74,0x3d,0x22,0x22,0x2c,0x69,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x7e,0x69,0x3b,0x69,0x2d,0x3d,0x31,0x29,0x74,0x3d,0x48,0x79,0x28,0x72,0x5b,0x69,0x5d,0x2c,0x65,0x29,0x2b,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x79,0x28,0x72,0x2c,0x65,0x29,0x7d,0x47,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x57,0x79,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4b,0x79,0x3d,0x78,0x28,0x28,0x73,0x24,0x2c,0x59,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x44,0x73,0x3d,0x22,0x2d,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x71,0x73,0x3d,0x22,0x2b,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x69,0x75,0x3d,0x22,0x2e,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x62,0x4f,0x3d,0x22,0x65,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x77,0x4f,0x3d,0x22,0x45,0x22,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x4f,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x2c,0x74,0x3b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x71,0x73,0x7c,0x7c,0x65,0x3d,0x3d,0x3d,0x44,0x73,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x2c,0x74,0x3e,0x3d,0x34,0x38,0x26,0x26,0x74,0x3c,0x3d,0x35,0x37,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x76,0x61,0x72,0x20,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x32,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x69,0x75,0x26,0x26,0x69,0x3e,0x3d,0x34,0x38,0x26,0x26,0x69,0x3c,0x3d,0x35,0x37,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x69,0x75,0x3f,0x28,0x74,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x2c,0x74,0x3e,0x3d,0x34,0x38,0x26,0x26,0x74,0x3c,0x3d,0x35,0x37,0x29,0x3a,0x65,0x3e,0x3d,0x34,0x38,0x26,0x26,0x65,0x3c,0x3d,0x35,0x37,0x7d,0x59,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x76,0x61,0x72,0x20,0x65,0x3d,0x30,0x2c,0x74,0x3d,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x69,0x2c,0x6e,0x2c,0x61,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x21,0x76,0x4f,0x28,0x72,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x28,0x69,0x3d,0x3d,0x3d,0x71,0x73,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x44,0x73,0x29,0x26,0x26,0x65,0x2b,0x2b,0x3b,0x65,0x3c,0x74,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x21,0x28,0x69,0x3c,0x34,0x38,0x7c,0x7c,0x69,0x3e,0x35,0x37,0x29,0x29,0x3b,0x29,0x65,0x2b,0x3d,0x31,0x3b,0x69,0x66,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x2b,0x31,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x69,0x75,0x26,0x26,0x6e,0x3e,0x3d,0x34,0x38,0x26,0x26,0x6e,0x3c,0x3d,0x35,0x37,0x29,0x66,0x6f,0x72,0x28,0x65,0x2b,0x3d,0x32,0x3b,0x65,0x3c,0x74,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x21,0x28,0x69,0x3c,0x34,0x38,0x7c,0x7c,0x69,0x3e,0x35,0x37,0x29,0x29,0x3b,0x29,0x65,0x2b,0x3d,0x31,0x3b,0x69,0x66,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x2b,0x31,0x29,0x2c,0x61,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x2b,0x32,0x29,0x2c,0x28,0x69,0x3d,0x3d,0x3d,0x62,0x4f,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x77,0x4f,0x29,0x26,0x26,0x28,0x6e,0x3e,0x3d,0x34,0x38,0x26,0x26,0x6e,0x3c,0x3d,0x35,0x37,0x7c,0x7c,0x28,0x6e,0x3d,0x3d,0x3d,0x71,0x73,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x44,0x73,0x29,0x26,0x26,0x61,0x3e,0x3d,0x34,0x38,0x26,0x26,0x61,0x3c,0x3d,0x35,0x37,0x29,0x29,0x66,0x6f,0x72,0x28,0x65,0x2b,0x3d,0x6e,0x3d,0x3d,0x3d,0x71,0x73,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x44,0x73,0x3f,0x33,0x3a,0x32,0x3b,0x65,0x3c,0x74,0x26,0x26,0x28,0x69,0x3d,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x65,0x29,0x2c,0x21,0x28,0x69,0x3c,0x34,0x38,0x7c,0x7c,0x69,0x3e,0x35,0x37,0x29,0x29,0x3b,0x29,0x65,0x2b,0x3d,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x6e,0x75,0x6d,0x62,0x65,0x72,0x3a,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x65,0x29,0x2c,0x75,0x6e,0x69,0x74,0x3a,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x65,0x29,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x24,0x73,0x3d,0x78,0x28,0x28,0x61,0x24,0x2c,0x5a,0x79,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x4f,0x3d,0x7a,0x79,0x28,0x29,0x2c,0x58,0x79,0x3d,0x56,0x79,0x28,0x29,0x2c,0x4a,0x79,0x3d,0x51,0x79,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x4e,0x74,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x78,0x4f,0x28,0x72,0x29,0x2c,0x74,0x68,0x69,0x73,0x29,0x3a,0x6e,0x65,0x77,0x20,0x4e,0x74,0x28,0x72,0x29,0x7d,0x4e,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3f,0x4a,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3a,0x22,0x22,0x7d,0x3b,0x4e,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x2c,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x58,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x72,0x2c,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x7d,0x3b,0x4e,0x74,0x2e,0x75,0x6e,0x69,0x74,0x3d,0x4b,0x79,0x28,0x29,0x3b,0x4e,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x3d,0x58,0x79,0x3b,0x4e,0x74,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x3d,0x4a,0x79,0x3b,0x5a,0x79,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4e,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x62,0x3d,0x78,0x28,0x28,0x6f,0x24,0x2c,0x69,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x7b,0x6c,0x69,0x73,0x74,0x3a,0x6b,0x4f,0x7d,0x3d,0x24,0x65,0x28,0x29,0x2c,0x65,0x62,0x3d,0x24,0x73,0x28,0x29,0x2c,0x53,0x4f,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x74,0x62,0x3d,0x4c,0x69,0x28,0x29,0x2c,0x72,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3d,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x5d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x65,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x2c,0x6e,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x5d,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6c,0x65,0x56,0x65,0x6e,0x64,0x6f,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x65,0x29,0x2c,0x6f,0x3d,0x73,0x7c,0x7c,0x61,0x26,0x26,0x61,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x7c,0x7c,0x5b,0x5d,0x2c,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x63,0x3d,0x6c,0x2e,0x6d,0x61,0x70,0x28,0x68,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x68,0x29,0x29,0x2c,0x66,0x3d,0x5b,0x5d,0x3b,0x69,0x66,0x28,0x63,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x68,0x3d,0x3e,0x68,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x6c,0x29,0x7b,0x69,0x66,0x28,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x68,0x29,0x2c,0x6e,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x22,0x2d,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x6e,0x5d,0x3b,0x69,0x66,0x28,0x21,0x28,0x21,0x62,0x7c,0x7c,0x21,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x29,0x66,0x6f,0x72,0x28,0x69,0x20,0x6f,0x66,0x20,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x7b,0x69,0x66,0x28,0x73,0x26,0x26,0x21,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x79,0x3d,0x3e,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x79,0x29,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x6e,0x2c,0x69,0x29,0x3b,0x76,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x26,0x26,0x21,0x63,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x76,0x29,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x6e,0x2c,0x69,0x29,0x7c,0x7c,0x66,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x6e,0x2c,0x76,0x2c,0x68,0x29,0x29,0x29,0x7d,0x7d,0x6c,0x3d,0x6c,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x66,0x29,0x3b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6c,0x29,0x2c,0x70,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x46,0x72,0x6f,0x6d,0x55,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x6c,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x29,0x3b,0x69,0x66,0x28,0x6f,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x60,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x24,0x7b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x7d,0x60,0x2c,0x70,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x70,0x29,0x2c,0x6f,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x6f,0x2d,0x22,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x46,0x72,0x6f,0x6d,0x55,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x6c,0x2c,0x22,0x2d,0x6f,0x2d,0x22,0x29,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x60,0x2d,0x6f,0x2d,0x24,0x7b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x7d,0x60,0x2c,0x68,0x29,0x7d,0x66,0x6f,0x72,0x28,0x69,0x20,0x6f,0x66,0x20,0x6f,0x29,0x69,0x66,0x28,0x69,0x21,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x69,0x21,0x3d,0x3d,0x22,0x2d,0x6f,0x2d,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x68,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x4f,0x74,0x68,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x6c,0x2c,0x69,0x29,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x69,0x2b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x68,0x29,0x7d,0x64,0x21,0x3d,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x21,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x64,0x29,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x68,0x65,0x63,0x6b,0x46,0x6f,0x72,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x28,0x74,0x2c,0x65,0x29,0x2c,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x29,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x64,0x29,0x7d,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x2f,0x5e,0x5c,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x74,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x5d,0x6f,0x66,0x20,0x65,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x29,0x69,0x66,0x28,0x69,0x21,0x3d,0x3d,0x30,0x26,0x26,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6e,0x3d,0x3e,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x26,0x26,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x69,0x29,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7c,0x7c,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x74,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x69,0x7d,0x29,0x7d,0x63,0x68,0x65,0x63,0x6b,0x46,0x6f,0x72,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x70,0x72,0x6f,0x70,0x21,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x21,0x31,0x2c,0x6e,0x3d,0x21,0x31,0x3b,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x65,0x61,0x63,0x68,0x28,0x61,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x61,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x7c,0x7c,0x61,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x22,0x29,0x21,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x6b,0x4f,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x7b,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x6f,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x6f,0x5d,0x3b,0x6c,0x26,0x26,0x6c,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x6c,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x28,0x69,0x3d,0x21,0x30,0x29,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x6e,0x7c,0x7c,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x2c,0x21,0x31,0x7d,0x29,0x2c,0x69,0x26,0x26,0x6e,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x65,0x2c,0x22,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x74,0x6f,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x61,0x6e,0x79,0x20,0x63,0x61,0x73,0x65,0x73,0x20,0x6f,0x66,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x61,0x6e,0x64,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x2a,0x22,0x29,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x74,0x3d,0x74,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x73,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x73,0x29,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x6f,0x7c,0x7c,0x21,0x6f,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x69,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x69,0x66,0x28,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x7b,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x73,0x3d,0x3e,0x73,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x70,0x26,0x26,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x69,0x29,0x2c,0x61,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x73,0x3d,0x3e,0x73,0x21,0x3d,0x3d,0x65,0x26,0x26,0x73,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x70,0x26,0x26,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x69,0x66,0x28,0x6e,0x7c,0x7c,0x61,0x29,0x7b,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x69,0x7d,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x62,0x28,0x65,0x29,0x2c,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x2c,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x26,0x26,0x28,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x2c,0x6e,0x3d,0x5b,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x2c,0x69,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x29,0x7d,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x22,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x5b,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x76,0x28,0x65,0x29,0x29,0x2c,0x74,0x3d,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x5b,0x30,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x2c,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x28,0x74,0x3d,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x32,0x2b,0x31,0x7c,0x7c,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x29,0x2c,0x65,0x62,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x74,0x7d,0x29,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x5b,0x5d,0x2c,0x61,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x69,0x29,0x21,0x61,0x26,0x26,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x65,0x3f,0x28,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x74,0x7d,0x29,0x2c,0x61,0x3d,0x21,0x30,0x29,0x3a,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x64,0x69,0x76,0x28,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x29,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x69,0x76,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2c,0x22,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x22,0x20,0x22,0x7d,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x4f,0x74,0x68,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x69,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x22,0x22,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x74,0x7d,0x29,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x46,0x72,0x6f,0x6d,0x55,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x61,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3d,0x3d,0x3d,0x74,0x29,0x2e,0x6d,0x61,0x70,0x28,0x61,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x61,0x29,0x29,0x2c,0x6e,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x61,0x29,0x2c,0x6f,0x3d,0x74,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x73,0x29,0x3b,0x21,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x73,0x29,0x26,0x26,0x28,0x6f,0x3d,0x3d,0x3d,0x74,0x7c,0x7c,0x6f,0x3d,0x3d,0x3d,0x22,0x22,0x29,0x26,0x26,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x5d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x7c,0x7c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x2d,0x32,0x30,0x30,0x39,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x32,0x30,0x30,0x39,0x22,0x29,0x7d,0x7d,0x72,0x75,0x6c,0x65,0x56,0x65,0x6e,0x64,0x6f,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x74,0x7d,0x3d,0x65,0x3b,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x21,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x2d,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x53,0x4f,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6e,0x3d,0x3e,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x22,0x2b,0x6e,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x3f,0x69,0x3a,0x21,0x31,0x7d,0x7d,0x3b,0x69,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x72,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x72,0x3d,0x78,0x28,0x28,0x6c,0x24,0x2c,0x61,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x73,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x69,0x7c,0x7c,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x3d,0x6e,0x7c,0x7c,0x41,0x4f,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x74,0x29,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x29,0x3f,0x21,0x21,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x29,0x3a,0x21,0x31,0x7d,0x7d,0x3b,0x61,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x73,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x65,0x3d,0x78,0x28,0x28,0x75,0x24,0x2c,0x6c,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x43,0x4f,0x3d,0x77,0x72,0x28,0x29,0x2c,0x5f,0x4f,0x3d,0x78,0x72,0x28,0x29,0x2c,0x45,0x4f,0x3d,0x4c,0x69,0x28,0x29,0x2c,0x4f,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x6f,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x43,0x4f,0x7b,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x73,0x61,0x76,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x6e,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x69,0x6e,0x20,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x61,0x5d,0x3b,0x69,0x66,0x28,0x73,0x3d,0x3d,0x3d,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x2c,0x6c,0x3d,0x45,0x4f,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x69,0x29,0x3b,0x69,0x66,0x28,0x6c,0x3d,0x3d,0x3d,0x22,0x2d,0x70,0x69,0x65,0x2d,0x22,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x6c,0x3d,0x3d,0x3d,0x61,0x29,0x7b,0x6f,0x3d,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x73,0x2c,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x63,0x3d,0x65,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x69,0x2c,0x61,0x29,0x2c,0x66,0x3d,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x69,0x66,0x28,0x21,0x66,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x62,0x3d,0x3e,0x62,0x2e,0x70,0x72,0x6f,0x70,0x21,0x3d,0x3d,0x63,0x29,0x29,0x7b,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x64,0x3d,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x2c,0x22,0x20,0x22,0x29,0x3b,0x69,0x66,0x28,0x66,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x62,0x3d,0x3e,0x62,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x2e,0x70,0x72,0x6f,0x70,0x26,0x26,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x2c,0x22,0x20,0x22,0x29,0x3d,0x3d,0x3d,0x64,0x29,0x29,0x7b,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x6c,0x65,0x74,0x20,0x68,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x74,0x2c,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x73,0x7d,0x29,0x3b,0x6f,0x3d,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x74,0x2c,0x68,0x29,0x2c,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x3f,0x21,0x21,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x29,0x3a,0x21,0x31,0x7d,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x3d,0x4f,0x4f,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x2c,0x60,0x24,0x31,0x24,0x7b,0x74,0x7d,0x24,0x32,0x60,0x29,0x7d,0x76,0x61,0x6c,0x75,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x26,0x26,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3f,0x65,0x2e,0x72,0x61,0x77,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x61,0x77,0x3a,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x7c,0x7c,0x28,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x74,0x5d,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x28,0x65,0x29,0x2c,0x6e,0x3b,0x64,0x6f,0x20,0x69,0x66,0x28,0x6e,0x3d,0x69,0x2c,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x69,0x2c,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x77,0x68,0x69,0x6c,0x65,0x28,0x69,0x21,0x3d,0x3d,0x6e,0x29,0x3b,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x74,0x5d,0x3d,0x69,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x5f,0x4f,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x65,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x7d,0x7d,0x3b,0x6c,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6f,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x42,0x74,0x3d,0x78,0x28,0x28,0x66,0x24,0x2c,0x75,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x75,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x75,0x3d,0x78,0x28,0x28,0x63,0x24,0x2c,0x70,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x66,0x62,0x3d,0x24,0x73,0x28,0x29,0x2c,0x54,0x4f,0x3d,0x48,0x65,0x28,0x29,0x2c,0x52,0x4f,0x3d,0x42,0x74,0x28,0x29,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x41,0x72,0x65,0x61,0x73,0x2c,0x50,0x4f,0x3d,0x2f,0x28,0x5e,0x7c,0x5b,0x5e,0x2d,0x5d,0x29,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x5c,0x28,0x5c,0x73,0x2a,0x28,0x74,0x6f,0x70,0x7c,0x6c,0x65,0x66,0x74,0x7c,0x72,0x69,0x67,0x68,0x74,0x7c,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x29,0x2f,0x69,0x2c,0x49,0x4f,0x3d,0x2f,0x28,0x5e,0x7c,0x5b,0x5e,0x2d,0x5d,0x29,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x5c,0x28,0x5c,0x73,0x2a,0x5c,0x64,0x2b,0x28,0x5c,0x77,0x2a,0x7c,0x25,0x29,0x5c,0x73,0x2b,0x5c,0x64,0x2b,0x28,0x5c,0x77,0x2a,0x7c,0x25,0x29,0x5c,0x73,0x2a,0x2c,0x2f,0x69,0x2c,0x44,0x4f,0x3d,0x2f,0x28,0x21,0x5c,0x73,0x2a,0x29,0x3f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x3a,0x5c,0x73,0x2a,0x69,0x67,0x6e,0x6f,0x72,0x65,0x5c,0x73,0x2b,0x6e,0x65,0x78,0x74,0x2f,0x69,0x2c,0x71,0x4f,0x3d,0x2f,0x28,0x21,0x5c,0x73,0x2a,0x29,0x3f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x5c,0x73,0x2a,0x67,0x72,0x69,0x64,0x3a,0x5c,0x73,0x2a,0x28,0x6f,0x6e,0x7c,0x6f,0x66,0x66,0x7c,0x28,0x6e,0x6f,0x2d,0x29,0x3f,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x29,0x2f,0x69,0x2c,0x24,0x4f,0x3d,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x5d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x75,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x65,0x3d,0x3e,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x7c,0x7c,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x61,0x72,0x65,0x61,0x73,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x4f,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x69,0x3d,0x3e,0x69,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x29,0x2c,0x74,0x3d,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x69,0x3d,0x3e,0x69,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x26,0x26,0x74,0x7d,0x76,0x61,0x72,0x20,0x63,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x65,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x40,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x5d,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x40,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x5d,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x5d,0x3b,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x6e,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x26,0x26,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x21,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x26,0x26,0x66,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x29,0x26,0x26,0x21,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x26,0x26,0x69,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x29,0x7d,0x29,0x2c,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x64,0x3d,0x3e,0x64,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x2c,0x74,0x29,0x29,0x7d,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x28,0x66,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x64,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x64,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x70,0x3d,0x64,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x2f,0x28,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x29,0x3f,0x67,0x72,0x69,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x68,0x3d,0x64,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x29,0x2c,0x62,0x3d,0x2f,0x5e,0x67,0x72,0x69,0x64,0x2d,0x28,0x5b,0x41,0x2d,0x7a,0x5d,0x2b,0x2d,0x29,0x3f,0x67,0x61,0x70,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x64,0x2e,0x70,0x72,0x6f,0x70,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x7c,0x7c,0x68,0x7c,0x7c,0x62,0x7d,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x28,0x66,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x64,0x3d,0x3e,0x64,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x2f,0x28,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x29,0x3f,0x66,0x6c,0x65,0x78,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x7d,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x65,0x2c,0x74,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x72,0x65,0x61,0x22,0x5d,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x72,0x65,0x61,0x22,0x5d,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x44,0x65,0x63,0x6c,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x70,0x3d,0x66,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x68,0x3d,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x70,0x61,0x6e,0x22,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x70,0x61,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x70,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x47,0x72,0x69,0x64,0x20,0x4c,0x61,0x79,0x6f,0x75,0x74,0x2e,0x20,0x55,0x73,0x65,0x20,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x70,0x61,0x6e,0x22,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x70,0x61,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x70,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x47,0x72,0x69,0x64,0x20,0x4c,0x61,0x79,0x6f,0x75,0x74,0x2e,0x20,0x55,0x73,0x65,0x20,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x68,0x3d,0x3d,0x3d,0x22,0x62,0x6f,0x78,0x22,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x59,0x6f,0x75,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x77,0x72,0x69,0x74,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x66,0x6c,0x65,0x78,0x20,0x62,0x79,0x20,0x66,0x69,0x6e,0x61,0x6c,0x20,0x73,0x70,0x65,0x63,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6f,0x78,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x29,0x28,0x68,0x3d,0x3d,0x3d,0x22,0x75,0x6e,0x64,0x65,0x72,0x22,0x7c,0x7c,0x68,0x3d,0x3d,0x3d,0x22,0x6f,0x76,0x65,0x72,0x22,0x29,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x59,0x6f,0x75,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x75,0x73,0x65,0x20,0x32,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x65,0x78,0x74,0x2d,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x60,0x75,0x6e,0x64,0x65,0x72,0x20,0x6c,0x65,0x66,0x74,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x6a,0x75,0x73,0x74,0x20,0x60,0x75,0x6e,0x64,0x65,0x72,0x60,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x2f,0x5e,0x28,0x61,0x6c,0x69,0x67,0x6e,0x7c,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x7c,0x70,0x6c,0x61,0x63,0x65,0x29,0x2d,0x28,0x69,0x74,0x65,0x6d,0x73,0x7c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x29,0x26,0x26,0x6c,0x28,0x66,0x29,0x29,0x28,0x68,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7c,0x7c,0x68,0x3d,0x3d,0x3d,0x22,0x65,0x6e,0x64,0x22,0x29,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x24,0x7b,0x68,0x7d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x68,0x61,0x73,0x20,0x6d,0x69,0x78,0x65,0x64,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x66,0x6c,0x65,0x78,0x2d,0x24,0x7b,0x68,0x7d,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x60,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x22,0x26,0x26,0x68,0x3d,0x3d,0x3d,0x22,0x69,0x6e,0x6b,0x22,0x29,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x3a,0x20,0x69,0x6e,0x6b,0x20,0x74,0x6f,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x2d,0x69,0x6e,0x6b,0x3a,0x20,0x61,0x75,0x74,0x6f,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x73,0x70,0x65,0x63,0x20,0x68,0x61,0x64,0x20,0x62,0x65,0x65,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x69,0x66,0x28,0x63,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x2c,0x74,0x29,0x29,0x69,0x66,0x28,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x75,0x62,0x67,0x72,0x69,0x64,0x22,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x49,0x45,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x73,0x75,0x62,0x67,0x72,0x69,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x2c,0x2f,0x5e,0x28,0x61,0x6c,0x69,0x67,0x6e,0x7c,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x7c,0x70,0x6c,0x61,0x63,0x65,0x29,0x2d,0x69,0x74,0x65,0x6d,0x73,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x29,0x26,0x26,0x6f,0x28,0x66,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x70,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x2d,0x73,0x65,0x6c,0x66,0x22,0x29,0x3b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x49,0x45,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x24,0x7b,0x70,0x7d,0x20,0x6f,0x6e,0x20,0x67,0x72,0x69,0x64,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x73,0x2e,0x20,0x54,0x72,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x24,0x7b,0x76,0x7d,0x20,0x6f,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x3a,0x20,0x24,0x7b,0x66,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x7d,0x20,0x3e,0x20,0x2a,0x20,0x7b,0x20,0x24,0x7b,0x76,0x7d,0x3a,0x20,0x24,0x7b,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x7d,0x60,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x2f,0x5e,0x28,0x61,0x6c,0x69,0x67,0x6e,0x7c,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x7c,0x70,0x6c,0x61,0x63,0x65,0x29,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x29,0x26,0x26,0x6f,0x28,0x66,0x29,0x29,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x49,0x45,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x24,0x7b,0x66,0x2e,0x70,0x72,0x6f,0x70,0x7d,0x20,0x6f,0x6e,0x20,0x67,0x72,0x69,0x64,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x73,0x60,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x22,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x64,0x6f,0x20,0x6e,0x6f,0x74,0x20,0x75,0x73,0x65,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x73,0x3b,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x68,0x61,0x76,0x65,0x20,0x67,0x72,0x69,0x64,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x67,0x61,0x70,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x2c,0x74,0x29,0x3b,0x76,0x3d,0x3d,0x3d,0x22,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x26,0x26,0x21,0x4c,0x4f,0x28,0x66,0x29,0x26,0x26,0x21,0x6e,0x75,0x28,0x66,0x29,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x67,0x61,0x70,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x77,0x6f,0x72,0x6b,0x73,0x20,0x69,0x66,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x28,0x2d,0x61,0x72,0x65,0x61,0x73,0x29,0x20,0x69,0x73,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x72,0x20,0x62,0x6f,0x74,0x68,0x20,0x72,0x6f,0x77,0x73,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x68,0x61,0x76,0x65,0x20,0x62,0x65,0x65,0x6e,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x63,0x65,0x6c,0x6c,0x73,0x20,0x68,0x61,0x76,0x65,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x65,0x6e,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x70,0x6c,0x61,0x63,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x67,0x72,0x69,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3a,0x28,0x76,0x3d,0x3d,0x3d,0x21,0x30,0x7c,0x7c,0x76,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x2d,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x29,0x26,0x26,0x21,0x6e,0x75,0x28,0x66,0x29,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x67,0x61,0x70,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x77,0x6f,0x72,0x6b,0x73,0x20,0x69,0x66,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x28,0x2d,0x61,0x72,0x65,0x61,0x73,0x29,0x20,0x69,0x73,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x45,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x22,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x45,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x64,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x77,0x3d,0x3e,0x77,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x29,0x2c,0x79,0x3d,0x64,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x77,0x3d,0x3e,0x77,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x29,0x3b,0x6e,0x75,0x28,0x66,0x29,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x45,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3a,0x68,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x64,0x65,0x6e,0x73,0x65,0x22,0x29,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x3a,0x20,0x64,0x65,0x6e,0x73,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x45,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3a,0x21,0x76,0x26,0x26,0x21,0x79,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x20,0x77,0x6f,0x72,0x6b,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x69,0x66,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x20,0x61,0x6e,0x64,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x61,0x72,0x65,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x72,0x75,0x6c,0x65,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x68,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x61,0x75,0x74,0x6f,0x2d,0x66,0x69,0x74,0x22,0x29,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x61,0x75,0x74,0x6f,0x2d,0x66,0x69,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x45,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x2c,0x77,0x6f,0x72,0x64,0x3a,0x22,0x61,0x75,0x74,0x6f,0x2d,0x66,0x69,0x74,0x22,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x68,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x61,0x75,0x74,0x6f,0x2d,0x66,0x69,0x6c,0x6c,0x22,0x29,0x29,0x7b,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x61,0x75,0x74,0x6f,0x2d,0x66,0x69,0x6c,0x6c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x45,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x2c,0x77,0x6f,0x72,0x64,0x3a,0x22,0x61,0x75,0x74,0x6f,0x2d,0x66,0x69,0x6c,0x6c,0x22,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x70,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x29,0x26,0x26,0x68,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x5b,0x22,0x29,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x20,0x54,0x72,0x79,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x61,0x72,0x65,0x61,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x2c,0x77,0x6f,0x72,0x64,0x3a,0x22,0x5b,0x22,0x7d,0x29,0x3b,0x69,0x66,0x28,0x68,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x29,0x29,0x69,0x66,0x28,0x49,0x4f,0x2e,0x74,0x65,0x73,0x74,0x28,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x47,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x6f,0x75,0x74,0x64,0x61,0x74,0x65,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x20,0x4e,0x65,0x77,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x20,0x69,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x60,0x63,0x6c,0x6f,0x73,0x65,0x73,0x74,0x2d,0x73,0x69,0x64,0x65,0x20,0x61,0x74,0x20,0x30,0x20,0x30,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x60,0x30,0x20,0x30,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x73,0x74,0x2d,0x73,0x69,0x64,0x65,0x60,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x66,0x62,0x28,0x68,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x79,0x20,0x6f,0x66,0x20,0x76,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x69,0x66,0x28,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x77,0x20,0x6f,0x66,0x20,0x79,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x77,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x28,0x77,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x76,0x65,0x72,0x22,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x47,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x6f,0x75,0x74,0x64,0x61,0x74,0x65,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x60,0x63,0x6f,0x76,0x65,0x72,0x60,0x20,0x74,0x6f,0x20,0x60,0x66,0x61,0x72,0x74,0x68,0x65,0x73,0x74,0x2d,0x63,0x6f,0x72,0x6e,0x65,0x72,0x60,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3a,0x77,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x47,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x6f,0x75,0x74,0x64,0x61,0x74,0x65,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x60,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x60,0x20,0x74,0x6f,0x20,0x60,0x63,0x6c,0x6f,0x73,0x65,0x73,0x74,0x2d,0x73,0x69,0x64,0x65,0x60,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x29,0x7d,0x68,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x29,0x26,0x26,0x50,0x4f,0x2e,0x74,0x65,0x73,0x74,0x28,0x68,0x29,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x47,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x6f,0x75,0x74,0x64,0x61,0x74,0x65,0x64,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x20,0x4e,0x65,0x77,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x20,0x69,0x73,0x20,0x6c,0x69,0x6b,0x65,0x20,0x60,0x74,0x6f,0x20,0x6c,0x65,0x66,0x74,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x60,0x72,0x69,0x67,0x68,0x74,0x60,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x7d,0x24,0x4f,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x29,0x26,0x26,0x28,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x29,0x7c,0x7c,0x28,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x29,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x20,0x74,0x6f,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x73,0x70,0x65,0x63,0x20,0x68,0x61,0x64,0x20,0x62,0x65,0x65,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x3a,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x69,0x6c,0x6c,0x22,0x29,0x26,0x26,0x66,0x62,0x28,0x68,0x29,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x79,0x3d,0x3e,0x79,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6c,0x6c,0x22,0x29,0x26,0x26,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x66,0x69,0x6c,0x6c,0x20,0x74,0x6f,0x20,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x73,0x70,0x65,0x63,0x20,0x68,0x61,0x64,0x20,0x62,0x65,0x65,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x66,0x7d,0x29,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3b,0x69,0x66,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x7c,0x7c,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x61,0x64,0x64,0x28,0x66,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x54,0x79,0x70,0x65,0x28,0x66,0x29,0x21,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x62,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x5d,0x2c,0x62,0x26,0x26,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x62,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x2c,0x74,0x29,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x62,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x5d,0x2c,0x62,0x26,0x26,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x2c,0x74,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x2c,0x74,0x29,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x62,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x5d,0x2c,0x62,0x26,0x26,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x2c,0x74,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x29,0x7b,0x69,0x66,0x28,0x62,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x5d,0x2c,0x62,0x26,0x26,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x66,0x2c,0x74,0x29,0x21,0x3d,0x3d,0x21,0x31,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x2c,0x74,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x62,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x61,0x64,0x64,0x5b,0x66,0x2e,0x70,0x72,0x6f,0x70,0x5d,0x2c,0x62,0x26,0x26,0x62,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x2c,0x74,0x29,0x7d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x65,0x2c,0x74,0x29,0x26,0x26,0x52,0x4f,0x28,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x2c,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x66,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x28,0x66,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x66,0x2e,0x70,0x72,0x6f,0x70,0x29,0x2c,0x70,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x22,0x61,0x64,0x64,0x22,0x2c,0x64,0x29,0x3b,0x69,0x66,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x68,0x20,0x6f,0x66,0x20,0x70,0x29,0x68,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x26,0x26,0x68,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x66,0x2c,0x74,0x29,0x3b,0x54,0x4f,0x2e,0x73,0x61,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2c,0x66,0x29,0x7d,0x29,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x22,0x40,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3b,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x41,0x74,0x52,0x75,0x6c,0x65,0x73,0x28,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3e,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x60,0x40,0x24,0x7b,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x5d,0x3f,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x6e,0x2c,0x74,0x29,0x7c,0x7c,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x29,0x3a,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6d,0x65,0x64,0x69,0x61,0x22,0x26,0x26,0x6e,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x29,0x26,0x26,0x69,0x26,0x26,0x69,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x28,0x6e,0x29,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x29,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x52,0x75,0x6c,0x65,0x73,0x28,0x28,0x61,0x2c,0x73,0x29,0x3d,0x3e,0x7b,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x28,0x61,0x29,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x61,0x2c,0x74,0x29,0x7c,0x7c,0x61,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x73,0x29,0x29,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x28,0x6e,0x2c,0x61,0x29,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x6e,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x29,0x3b,0x69,0x66,0x28,0x28,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x7c,0x7c,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x5d,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x5d,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x6e,0x29,0x2e,0x64,0x6f,0x77,0x6e,0x28,0x63,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x2e,0x70,0x72,0x6f,0x70,0x29,0x3d,0x3d,0x3d,0x6f,0x29,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x22,0x66,0x6c,0x65,0x78,0x2d,0x66,0x6c,0x6f,0x77,0x22,0x26,0x26,0x28,0x6c,0x3d,0x21,0x30,0x29,0x2c,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x21,0x30,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x66,0x6c,0x6f,0x77,0x22,0x3a,0x21,0x30,0x7d,0x3b,0x69,0x66,0x28,0x21,0x6e,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x66,0x3d,0x3e,0x63,0x5b,0x66,0x2e,0x70,0x72,0x6f,0x70,0x5d,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x69,0x66,0x28,0x6c,0x26,0x26,0x21,0x74,0x68,0x69,0x73,0x2e,0x77,0x69,0x74,0x68,0x48,0x61,0x63,0x6b,0x56,0x61,0x6c,0x75,0x65,0x28,0x6e,0x29,0x29,0x7b,0x6e,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x0a,0x60,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x53,0x70,0x61,0x63,0x65,0x73,0x28,0x6e,0x29,0x2c,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x22,0x72,0x65,0x6d,0x6f,0x76,0x65,0x22,0x2c,0x6f,0x29,0x29,0x7b,0x69,0x66,0x28,0x21,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x7c,0x7c,0x21,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x28,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x6c,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x6e,0x29,0x2e,0x64,0x6f,0x77,0x6e,0x28,0x66,0x3d,0x3e,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6f,0x29,0x29,0x29,0x7b,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x7d,0x7d,0x29,0x7d,0x77,0x69,0x74,0x68,0x48,0x61,0x63,0x6b,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x7d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x7c,0x7c,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3f,0x21,0x30,0x3a,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x65,0x2c,0x74,0x29,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x26,0x26,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x7c,0x7c,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x5d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x7c,0x7c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x70,0x72,0x65,0x76,0x28,0x29,0x3b,0x69,0x66,0x28,0x6e,0x26,0x26,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x26,0x26,0x44,0x4f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x2e,0x74,0x65,0x78,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x21,0x30,0x2c,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x53,0x65,0x6c,0x66,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x21,0x30,0x2c,0x21,0x30,0x7d,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x69,0x66,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x65,0x2e,0x65,0x61,0x63,0x68,0x28,0x61,0x3d,0x3e,0x7b,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x26,0x26,0x2f,0x28,0x21,0x5c,0x73,0x2a,0x29,0x3f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x3a,0x5c,0x73,0x2a,0x28,0x6f,0x66,0x66,0x7c,0x6f,0x6e,0x29,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x2e,0x74,0x65,0x78,0x74,0x29,0x26,0x26,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x53,0x65,0x63,0x6f,0x6e,0x64,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x77,0x61,0x73,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x2e,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x61,0x70,0x70,0x6c,0x69,0x65,0x73,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x77,0x68,0x6f,0x6c,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x6e,0x6f,0x74,0x20,0x74,0x6f,0x20,0x6e,0x65,0x78,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x61,0x7d,0x29,0x3a,0x6e,0x3d,0x2f,0x6f,0x6e,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x2e,0x74,0x65,0x78,0x74,0x29,0x29,0x7d,0x29,0x2c,0x6e,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x21,0x6e,0x29,0x7d,0x69,0x66,0x28,0x21,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x74,0x29,0x3b,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x53,0x65,0x6c,0x66,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x69,0x3d,0x21,0x31,0x3a,0x69,0x3d,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x3d,0x21,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x69,0x2c,0x69,0x7d,0x72,0x65,0x64,0x75,0x63,0x65,0x53,0x70,0x61,0x63,0x65,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x21,0x31,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x65,0x29,0x2e,0x75,0x70,0x28,0x28,0x29,0x3d,0x3e,0x28,0x74,0x3d,0x21,0x30,0x2c,0x21,0x30,0x29,0x29,0x2c,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x2c,0x6e,0x3d,0x69,0x5b,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x3d,0x21,0x31,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x67,0x72,0x6f,0x75,0x70,0x28,0x65,0x29,0x2e,0x64,0x6f,0x77,0x6e,0x28,0x73,0x3d,0x3e,0x7b,0x69,0x3d,0x73,0x2e,0x72,0x61,0x77,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x60,0x0a,0x60,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x3b,0x69,0x5b,0x6f,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x6e,0x26,0x26,0x28,0x61,0x3d,0x3d,0x3d,0x21,0x31,0x26,0x26,0x28,0x61,0x3d,0x69,0x5b,0x6f,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x6e,0x29,0x2c,0x69,0x5b,0x6f,0x5d,0x3d,0x69,0x5b,0x6f,0x5d,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2d,0x61,0x29,0x2c,0x73,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x69,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x0a,0x60,0x29,0x29,0x7d,0x29,0x7d,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x54,0x79,0x70,0x65,0x28,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x69,0x66,0x28,0x74,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x66,0x6c,0x65,0x78,0x22,0x3b,0x69,0x66,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x67,0x72,0x69,0x64,0x22,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x69,0x66,0x28,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x47,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x47,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x6e,0x75,0x6c,0x6c,0x3b,0x69,0x66,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x65,0x2e,0x65,0x61,0x63,0x68,0x28,0x61,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x22,0x26,0x26,0x71,0x4f,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x2e,0x74,0x65,0x78,0x74,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x2f,0x3a,0x5c,0x73,0x2a,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x2e,0x74,0x65,0x78,0x74,0x29,0x2c,0x6f,0x3d,0x2f,0x6e,0x6f,0x2d,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x2e,0x74,0x65,0x78,0x74,0x29,0x3b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6e,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x74,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x53,0x65,0x63,0x6f,0x6e,0x64,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x67,0x72,0x69,0x64,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x77,0x61,0x73,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x2e,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x61,0x70,0x70,0x6c,0x69,0x65,0x73,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x77,0x68,0x6f,0x6c,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x6e,0x6f,0x74,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x78,0x74,0x20,0x72,0x75,0x6c,0x65,0x73,0x2e,0x22,0x2c,0x7b,0x6e,0x6f,0x64,0x65,0x3a,0x61,0x7d,0x29,0x3a,0x73,0x3f,0x6e,0x3d,0x22,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x3a,0x6f,0x3f,0x6e,0x3d,0x21,0x30,0x3a,0x6e,0x3d,0x2f,0x6f,0x6e,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x61,0x2e,0x74,0x65,0x78,0x74,0x29,0x7d,0x7d,0x29,0x2c,0x6e,0x21,0x3d,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x26,0x26,0x28,0x69,0x3d,0x6e,0x29,0x7d,0x69,0x66,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3b,0x6e,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x26,0x26,0x6e,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x26,0x26,0x28,0x69,0x3d,0x21,0x31,0x29,0x7d,0x69,0x66,0x28,0x21,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x74,0x29,0x3b,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x53,0x65,0x6c,0x66,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x3d,0x3d,0x21,0x30,0x3f,0x69,0x3d,0x21,0x31,0x3a,0x69,0x3d,0x6e,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x72,0x69,0x64,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x72,0x69,0x64,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x41,0x55,0x54,0x4f,0x50,0x52,0x45,0x46,0x49,0x58,0x45,0x52,0x5f,0x47,0x52,0x49,0x44,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x3f,0x6d,0x2e,0x65,0x6e,0x76,0x2e,0x41,0x55,0x54,0x4f,0x50,0x52,0x45,0x46,0x49,0x58,0x45,0x52,0x5f,0x47,0x52,0x49,0x44,0x3d,0x3d,0x3d,0x22,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x3f,0x69,0x3d,0x22,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x3a,0x69,0x3d,0x21,0x30,0x3a,0x69,0x3d,0x21,0x31,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x47,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x3d,0x69,0x2c,0x69,0x7d,0x7d,0x3b,0x70,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x63,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x68,0x62,0x3d,0x78,0x28,0x28,0x70,0x24,0x2c,0x64,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x64,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x41,0x3a,0x7b,0x41,0x3a,0x7b,0x22,0x32,0x22,0x3a,0x22,0x4b,0x20,0x45,0x20,0x46,0x20,0x47,0x20,0x41,0x20,0x42,0x20,0x4a,0x43,0x22,0x7d,0x2c,0x42,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x43,0x20,0x4c,0x20,0x4d,0x20,0x48,0x20,0x4e,0x20,0x44,0x20,0x4f,0x20,0x50,0x20,0x51,0x20,0x52,0x20,0x53,0x20,0x54,0x20,0x55,0x20,0x56,0x20,0x57,0x20,0x58,0x20,0x59,0x20,0x5a,0x20,0x61,0x20,0x62,0x20,0x63,0x20,0x64,0x20,0x65,0x20,0x66,0x20,0x67,0x20,0x68,0x20,0x69,0x20,0x6a,0x20,0x6e,0x20,0x6f,0x20,0x70,0x20,0x71,0x20,0x72,0x20,0x73,0x20,0x74,0x20,0x75,0x20,0x76,0x20,0x77,0x20,0x78,0x20,0x79,0x20,0x7a,0x20,0x49,0x22,0x7d,0x2c,0x43,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x32,0x20,0x33,0x20,0x34,0x20,0x35,0x20,0x36,0x20,0x37,0x20,0x38,0x20,0x39,0x20,0x41,0x42,0x20,0x42,0x42,0x20,0x43,0x42,0x20,0x44,0x42,0x20,0x45,0x42,0x20,0x46,0x42,0x20,0x47,0x42,0x20,0x48,0x42,0x20,0x49,0x42,0x20,0x4a,0x42,0x20,0x4b,0x42,0x20,0x4c,0x42,0x20,0x4d,0x42,0x20,0x4e,0x42,0x20,0x4f,0x42,0x20,0x50,0x42,0x20,0x51,0x42,0x20,0x52,0x42,0x20,0x53,0x42,0x20,0x54,0x42,0x20,0x55,0x42,0x20,0x56,0x42,0x20,0x57,0x42,0x20,0x58,0x42,0x20,0x59,0x42,0x20,0x5a,0x42,0x20,0x61,0x42,0x20,0x62,0x42,0x20,0x63,0x42,0x20,0x30,0x42,0x20,0x64,0x42,0x20,0x31,0x42,0x20,0x65,0x42,0x20,0x66,0x42,0x20,0x67,0x42,0x20,0x68,0x42,0x20,0x69,0x42,0x20,0x6a,0x42,0x20,0x6b,0x42,0x20,0x6c,0x42,0x20,0x6d,0x42,0x20,0x6e,0x42,0x20,0x6f,0x42,0x20,0x6d,0x20,0x70,0x42,0x20,0x71,0x42,0x20,0x72,0x42,0x20,0x73,0x42,0x20,0x74,0x42,0x20,0x50,0x20,0x51,0x20,0x52,0x20,0x32,0x42,0x20,0x53,0x20,0x54,0x20,0x55,0x20,0x56,0x20,0x57,0x20,0x58,0x20,0x59,0x20,0x5a,0x20,0x61,0x20,0x62,0x20,0x63,0x20,0x64,0x20,0x65,0x20,0x66,0x20,0x67,0x20,0x68,0x20,0x69,0x20,0x6a,0x20,0x6e,0x20,0x6f,0x20,0x70,0x20,0x71,0x20,0x72,0x20,0x73,0x20,0x74,0x20,0x75,0x20,0x76,0x20,0x77,0x20,0x78,0x20,0x79,0x20,0x7a,0x20,0x49,0x20,0x75,0x42,0x20,0x33,0x42,0x20,0x34,0x42,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x30,0x20,0x31,0x20,0x4b,0x43,0x20,0x7a,0x42,0x20,0x4a,0x20,0x4b,0x20,0x45,0x20,0x46,0x20,0x47,0x20,0x41,0x20,0x42,0x20,0x43,0x20,0x4c,0x20,0x4d,0x20,0x48,0x20,0x4e,0x20,0x44,0x20,0x4f,0x20,0x6b,0x20,0x6c,0x20,0x4c,0x43,0x20,0x4d,0x43,0x22,0x7d,0x2c,0x44,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x38,0x20,0x39,0x20,0x41,0x42,0x20,0x42,0x42,0x20,0x43,0x42,0x20,0x44,0x42,0x20,0x45,0x42,0x20,0x46,0x42,0x20,0x47,0x42,0x20,0x48,0x42,0x20,0x49,0x42,0x20,0x4a,0x42,0x20,0x4b,0x42,0x20,0x4c,0x42,0x20,0x4d,0x42,0x20,0x4e,0x42,0x20,0x4f,0x42,0x20,0x50,0x42,0x20,0x51,0x42,0x20,0x52,0x42,0x20,0x53,0x42,0x20,0x54,0x42,0x20,0x55,0x42,0x20,0x56,0x42,0x20,0x57,0x42,0x20,0x58,0x42,0x20,0x59,0x42,0x20,0x5a,0x42,0x20,0x61,0x42,0x20,0x62,0x42,0x20,0x63,0x42,0x20,0x30,0x42,0x20,0x64,0x42,0x20,0x31,0x42,0x20,0x65,0x42,0x20,0x66,0x42,0x20,0x67,0x42,0x20,0x68,0x42,0x20,0x69,0x42,0x20,0x6a,0x42,0x20,0x6b,0x42,0x20,0x6c,0x42,0x20,0x6d,0x42,0x20,0x6e,0x42,0x20,0x6f,0x42,0x20,0x6d,0x20,0x70,0x42,0x20,0x71,0x42,0x20,0x72,0x42,0x20,0x73,0x42,0x20,0x74,0x42,0x20,0x50,0x20,0x51,0x20,0x52,0x20,0x53,0x20,0x54,0x20,0x55,0x20,0x56,0x20,0x57,0x20,0x58,0x20,0x59,0x20,0x5a,0x20,0x61,0x20,0x62,0x20,0x63,0x20,0x64,0x20,0x65,0x20,0x66,0x20,0x67,0x20,0x68,0x20,0x69,0x20,0x6a,0x20,0x6e,0x20,0x6f,0x20,0x70,0x20,0x71,0x20,0x72,0x20,0x73,0x20,0x74,0x20,0x75,0x20,0x76,0x20,0x77,0x20,0x78,0x20,0x79,0x20,0x7a,0x20,0x49,0x20,0x75,0x42,0x20,0x33,0x42,0x20,0x34,0x42,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x30,0x20,0x31,0x20,0x32,0x20,0x33,0x20,0x34,0x20,0x35,0x20,0x36,0x20,0x37,0x20,0x4a,0x20,0x4b,0x20,0x45,0x20,0x46,0x20,0x47,0x20,0x41,0x20,0x42,0x20,0x43,0x20,0x4c,0x20,0x4d,0x20,0x48,0x20,0x4e,0x20,0x44,0x20,0x4f,0x20,0x6b,0x20,0x6c,0x22,0x7d,0x2c,0x45,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x47,0x20,0x41,0x20,0x42,0x20,0x43,0x20,0x4c,0x20,0x4d,0x20,0x48,0x20,0x44,0x20,0x52,0x43,0x20,0x36,0x42,0x20,0x76,0x42,0x20,0x77,0x42,0x20,0x37,0x42,0x20,0x53,0x43,0x20,0x54,0x43,0x20,0x38,0x42,0x20,0x39,0x42,0x20,0x78,0x42,0x20,0x41,0x43,0x20,0x79,0x42,0x20,0x42,0x43,0x20,0x43,0x43,0x20,0x44,0x43,0x20,0x45,0x43,0x20,0x46,0x43,0x20,0x47,0x43,0x20,0x55,0x43,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x30,0x20,0x4a,0x20,0x4b,0x20,0x45,0x20,0x46,0x20,0x4e,0x43,0x20,0x35,0x42,0x20,0x4f,0x43,0x20,0x50,0x43,0x20,0x51,0x43,0x22,0x7d,0x2c,0x46,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x31,0x20,0x32,0x20,0x33,0x20,0x34,0x20,0x35,0x20,0x36,0x20,0x37,0x20,0x38,0x20,0x39,0x20,0x48,0x20,0x4e,0x20,0x44,0x20,0x4f,0x20,0x6b,0x20,0x6c,0x20,0x41,0x42,0x20,0x42,0x42,0x20,0x43,0x42,0x20,0x44,0x42,0x20,0x45,0x42,0x20,0x46,0x42,0x20,0x47,0x42,0x20,0x48,0x42,0x20,0x49,0x42,0x20,0x4a,0x42,0x20,0x4b,0x42,0x20,0x4c,0x42,0x20,0x4d,0x42,0x20,0x4e,0x42,0x20,0x4f,0x42,0x20,0x50,0x42,0x20,0x51,0x42,0x20,0x52,0x42,0x20,0x53,0x42,0x20,0x54,0x42,0x20,0x55,0x42,0x20,0x56,0x42,0x20,0x57,0x42,0x20,0x58,0x42,0x20,0x59,0x42,0x20,0x5a,0x42,0x20,0x61,0x42,0x20,0x62,0x42,0x20,0x63,0x42,0x20,0x64,0x42,0x20,0x65,0x42,0x20,0x66,0x42,0x20,0x67,0x42,0x20,0x68,0x42,0x20,0x69,0x42,0x20,0x6a,0x42,0x20,0x6b,0x42,0x20,0x6c,0x42,0x20,0x6d,0x42,0x20,0x6e,0x42,0x20,0x6f,0x42,0x20,0x6d,0x20,0x70,0x42,0x20,0x71,0x42,0x20,0x72,0x42,0x20,0x73,0x42,0x20,0x74,0x42,0x20,0x50,0x20,0x51,0x20,0x52,0x20,0x32,0x42,0x20,0x53,0x20,0x54,0x20,0x55,0x20,0x56,0x20,0x57,0x20,0x58,0x20,0x59,0x20,0x5a,0x20,0x61,0x20,0x62,0x20,0x63,0x20,0x64,0x20,0x65,0x20,0x66,0x20,0x67,0x20,0x68,0x20,0x69,0x20,0x6a,0x20,0x77,0x42,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x47,0x20,0x42,0x20,0x43,0x20,0x56,0x43,0x20,0x57,0x43,0x20,0x58,0x43,0x20,0x59,0x43,0x20,0x76,0x42,0x20,0x48,0x43,0x20,0x5a,0x43,0x22,0x7d,0x2c,0x47,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x44,0x20,0x66,0x43,0x20,0x67,0x43,0x20,0x68,0x43,0x20,0x69,0x43,0x20,0x6a,0x43,0x20,0x6b,0x43,0x20,0x6c,0x43,0x20,0x6d,0x43,0x20,0x6e,0x43,0x20,0x6f,0x43,0x20,0x70,0x43,0x20,0x71,0x43,0x20,0x72,0x43,0x20,0x73,0x43,0x20,0x74,0x43,0x20,0x38,0x42,0x20,0x39,0x42,0x20,0x78,0x42,0x20,0x41,0x43,0x20,0x79,0x42,0x20,0x42,0x43,0x20,0x43,0x43,0x20,0x44,0x43,0x20,0x45,0x43,0x20,0x46,0x43,0x20,0x47,0x43,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x46,0x20,0x35,0x42,0x20,0x61,0x43,0x20,0x49,0x43,0x20,0x62,0x43,0x20,0x63,0x43,0x20,0x64,0x43,0x20,0x65,0x43,0x22,0x7d,0x2c,0x48,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x75,0x43,0x22,0x7d,0x2c,0x49,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x49,0x20,0x7a,0x43,0x20,0x30,0x43,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x7a,0x42,0x20,0x4a,0x20,0x76,0x43,0x20,0x77,0x43,0x20,0x78,0x43,0x20,0x79,0x43,0x20,0x49,0x43,0x22,0x7d,0x2c,0x4a,0x3a,0x7b,0x22,0x32,0x22,0x3a,0x22,0x45,0x20,0x41,0x22,0x7d,0x2c,0x4b,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x6d,0x22,0x2c,0x22,0x32,0x22,0x3a,0x22,0x41,0x20,0x42,0x20,0x43,0x20,0x76,0x42,0x20,0x48,0x43,0x20,0x77,0x42,0x22,0x7d,0x2c,0x4c,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x49,0x22,0x7d,0x2c,0x4d,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x75,0x42,0x22,0x7d,0x2c,0x4e,0x3a,0x7b,0x22,0x32,0x22,0x3a,0x22,0x41,0x20,0x42,0x22,0x7d,0x2c,0x4f,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x78,0x42,0x22,0x7d,0x2c,0x50,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x4a,0x20,0x6b,0x20,0x6c,0x20,0x31,0x43,0x20,0x32,0x43,0x20,0x33,0x43,0x20,0x34,0x43,0x20,0x35,0x43,0x20,0x36,0x42,0x20,0x36,0x43,0x20,0x37,0x43,0x20,0x38,0x43,0x20,0x39,0x43,0x20,0x41,0x44,0x20,0x79,0x42,0x20,0x42,0x44,0x20,0x43,0x44,0x20,0x44,0x44,0x22,0x7d,0x2c,0x51,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x37,0x42,0x22,0x7d,0x2c,0x52,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x45,0x44,0x22,0x7d,0x2c,0x53,0x3a,0x7b,0x22,0x31,0x22,0x3a,0x22,0x46,0x44,0x20,0x47,0x44,0x22,0x7d,0x7d,0x2c,0x42,0x3a,0x34,0x2c,0x43,0x3a,0x22,0x43,0x53,0x53,0x20,0x46,0x65,0x61,0x74,0x75,0x72,0x65,0x20,0x51,0x75,0x65,0x72,0x69,0x65,0x73,0x22,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x62,0x62,0x3d,0x78,0x28,0x28,0x64,0x24,0x2c,0x79,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x62,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x5b,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x7d,0x76,0x61,0x72,0x20,0x67,0x62,0x3d,0x7b,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x5b,0x22,0x22,0x5d,0x2c,0x74,0x3d,0x5b,0x65,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x28,0x22,0x29,0x7b,0x65,0x3d,0x5b,0x22,0x22,0x5d,0x2c,0x6d,0x62,0x28,0x74,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x2c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x29,0x22,0x29,0x7b,0x74,0x2e,0x70,0x6f,0x70,0x28,0x29,0x2c,0x65,0x3d,0x6d,0x62,0x28,0x74,0x29,0x2c,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x22,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x65,0x5b,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2b,0x3d,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x5b,0x30,0x5d,0x7d,0x2c,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x7b,0x65,0x2b,0x3d,0x60,0x28,0x24,0x7b,0x67,0x62,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x29,0x7d,0x29,0x60,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x65,0x2b,0x3d,0x74,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x7d,0x3b,0x79,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x67,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x62,0x3d,0x78,0x28,0x28,0x68,0x24,0x2c,0x6b,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x4f,0x3d,0x68,0x62,0x28,0x29,0x2c,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x4e,0x4f,0x7d,0x3d,0x28,0x54,0x73,0x28,0x29,0x2c,0x4f,0x73,0x29,0x2c,0x7b,0x70,0x61,0x72,0x73,0x65,0x3a,0x42,0x4f,0x7d,0x3d,0x24,0x65,0x28,0x29,0x2c,0x46,0x4f,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x61,0x75,0x3d,0x62,0x62,0x28,0x29,0x2c,0x6a,0x4f,0x3d,0x48,0x65,0x28,0x29,0x2c,0x7a,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x77,0x62,0x3d,0x4e,0x4f,0x28,0x4d,0x4f,0x29,0x2c,0x76,0x62,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x72,0x20,0x69,0x6e,0x20,0x77,0x62,0x2e,0x73,0x74,0x61,0x74,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x77,0x62,0x2e,0x73,0x74,0x61,0x74,0x73,0x5b,0x72,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x69,0x6e,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x5b,0x74,0x5d,0x3b,0x2f,0x79,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x69,0x29,0x26,0x26,0x76,0x62,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x2b,0x22,0x20,0x22,0x2b,0x74,0x29,0x7d,0x7d,0x76,0x61,0x72,0x20,0x78,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x3d,0x74,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x3d,0x3e,0x76,0x62,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x69,0x29,0x29,0x2c,0x74,0x3d,0x6e,0x65,0x77,0x20,0x46,0x4f,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x64,0x61,0x74,0x61,0x2c,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x74,0x68,0x69,0x73,0x2e,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x64,0x61,0x74,0x61,0x2c,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x7d,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x3a,0x22,0x29,0x2c,0x69,0x3d,0x74,0x5b,0x30,0x5d,0x2c,0x6e,0x3d,0x74,0x5b,0x31,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x7c,0x7c,0x28,0x6e,0x3d,0x22,0x22,0x29,0x2c,0x5b,0x69,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x6e,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x5d,0x7d,0x76,0x69,0x72,0x74,0x75,0x61,0x6c,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x74,0x2c,0x69,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x2c,0x6e,0x3d,0x42,0x4f,0x28,0x22,0x61,0x7b,0x7d,0x22,0x29,0x2e,0x66,0x69,0x72,0x73,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x74,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x69,0x2c,0x72,0x61,0x77,0x73,0x3a,0x7b,0x62,0x65,0x66,0x6f,0x72,0x65,0x3a,0x22,0x22,0x7d,0x7d,0x29,0x2c,0x6e,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x72,0x74,0x75,0x61,0x6c,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7b,0x77,0x61,0x72,0x6e,0x3a,0x28,0x29,0x3d,0x3e,0x6e,0x75,0x6c,0x6c,0x7d,0x2c,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x28,0x29,0x2e,0x61,0x64,0x64,0x5b,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x2e,0x70,0x72,0x6f,0x70,0x5d,0x3b,0x6e,0x26,0x26,0x6e,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x26,0x26,0x6e,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x2c,0x69,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x28,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x22,0x61,0x64,0x64,0x22,0x2c,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x61,0x29,0x3b,0x6a,0x4f,0x2e,0x73,0x61,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2c,0x61,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x7d,0x69,0x73,0x4e,0x6f,0x74,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x2f,0x6e,0x6f,0x74,0x5c,0x73,0x2a,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x29,0x7d,0x69,0x73,0x4f,0x72,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x26,0x26,0x2f,0x5c,0x73,0x2a,0x6f,0x72,0x5c,0x73,0x2a,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x29,0x7d,0x69,0x73,0x50,0x72,0x6f,0x70,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x5b,0x30,0x5d,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x7d,0x69,0x73,0x48,0x61,0x63,0x6b,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x28,0x5c,0x5c,0x28,0x7c,0x5c,0x5c,0x73,0x29,0x24,0x7b,0x7a,0x4f,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x70,0x28,0x74,0x29,0x7d,0x3a,0x60,0x29,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x29,0x7d,0x74,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x5b,0x69,0x2c,0x6e,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x69,0x29,0x2c,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x65,0x72,0x28,0x29,0x3b,0x69,0x66,0x28,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x69,0x5d,0x26,0x26,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x69,0x5d,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x26,0x26,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x48,0x61,0x63,0x6b,0x28,0x74,0x2c,0x61,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x22,0x72,0x65,0x6d,0x6f,0x76,0x65,0x22,0x2c,0x61,0x29,0x29,0x69,0x66,0x28,0x6f,0x2e,0x63,0x68,0x65,0x63,0x6b,0x28,0x6e,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x30,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x69,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x4e,0x6f,0x74,0x28,0x65,0x5b,0x69,0x2d,0x31,0x5d,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x50,0x72,0x6f,0x70,0x28,0x65,0x5b,0x69,0x5d,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x4f,0x72,0x28,0x65,0x5b,0x69,0x2b,0x31,0x5d,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x74,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x5b,0x69,0x5d,0x5b,0x30,0x5d,0x2c,0x74,0x29,0x29,0x7b,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x32,0x29,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x69,0x2b,0x3d,0x32,0x3b,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x5b,0x69,0x5d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x28,0x65,0x5b,0x69,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x5b,0x69,0x5d,0x2c,0x74,0x29,0x29,0x2c,0x69,0x2b,0x3d,0x31,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x74,0x3a,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x5b,0x30,0x5d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x28,0x74,0x5b,0x30,0x5d,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x28,0x74,0x29,0x29,0x7d,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x22,0x22,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x60,0x24,0x7b,0x69,0x2e,0x70,0x72,0x6f,0x70,0x7d,0x3a,0x20,0x24,0x7b,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x5d,0x29,0x2c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x20,0x6f,0x72,0x20,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x5b,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x22,0x22,0x2c,0x74,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x21,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x69,0x66,0x28,0x65,0x3d,0x65,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x74,0x3d,0x3e,0x74,0x21,0x3d,0x3d,0x22,0x22,0x29,0x2c,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x5b,0x30,0x5d,0x3d,0x3d,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x5b,0x30,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x69,0x66,0x28,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x3a,0x22,0x29,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x74,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x61,0x75,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x29,0x5d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6d,0x61,0x70,0x28,0x74,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x29,0x29,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x50,0x72,0x6f,0x70,0x28,0x69,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x69,0x5b,0x30,0x5d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x3f,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x28,0x6e,0x29,0x3a,0x69,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x69,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3f,0x74,0x68,0x69,0x73,0x2e,0x61,0x64,0x64,0x28,0x69,0x2c,0x74,0x29,0x3a,0x69,0x7d,0x29,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x61,0x75,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x3b,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x29,0x2c,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x74,0x2c,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x2c,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x61,0x64,0x64,0x28,0x74,0x2c,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x2c,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x28,0x74,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x61,0x75,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x74,0x29,0x7d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x72,0x69,0x64,0x26,0x26,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x7c,0x7c,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x7c,0x7c,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x3d,0x3d,0x3d,0x21,0x31,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x5d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x7c,0x7c,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x7d,0x3b,0x6b,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x78,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5f,0x62,0x3d,0x78,0x28,0x28,0x6d,0x24,0x2c,0x43,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x3d,0x65,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x3d,0x65,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x3d,0x65,0x2e,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x28,0x29,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x5b,0x65,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x69,0x29,0x2c,0x65,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x69,0x29,0x5d,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x3d,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x52,0x65,0x67,0x65,0x78,0x70,0x3d,0x65,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x7d,0x69,0x73,0x48,0x61,0x63,0x6b,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2b,0x31,0x2c,0x69,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x3c,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x5b,0x74,0x5d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3b,0x69,0x66,0x28,0x21,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x6e,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x29,0x26,0x26,0x6e,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x52,0x65,0x67,0x65,0x78,0x70,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x5b,0x73,0x2c,0x6f,0x5d,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x29,0x69,0x66,0x28,0x6e,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x73,0x29,0x26,0x26,0x6e,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x6f,0x29,0x29,0x7b,0x61,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x66,0x28,0x21,0x61,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x74,0x2b,0x3d,0x31,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x28,0x21,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x29,0x7c,0x7c,0x21,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x48,0x61,0x63,0x6b,0x28,0x65,0x29,0x29,0x7d,0x7d,0x3b,0x43,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x41,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x72,0x3d,0x78,0x28,0x28,0x67,0x24,0x2c,0x4f,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x7b,0x6c,0x69,0x73,0x74,0x3a,0x55,0x4f,0x7d,0x3d,0x24,0x65,0x28,0x29,0x2c,0x56,0x4f,0x3d,0x5f,0x62,0x28,0x29,0x2c,0x48,0x4f,0x3d,0x77,0x72,0x28,0x29,0x2c,0x57,0x4f,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x47,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x45,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x48,0x4f,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x3f,0x21,0x21,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x29,0x3a,0x21,0x31,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x28,0x5c,0x57,0x2a,0x29,0x2f,0x2c,0x60,0x24,0x31,0x24,0x7b,0x65,0x7d,0x60,0x29,0x7d,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x3f,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3b,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x28,0x5e,0x7c,0x5b,0x5e,0x3a,0x22,0x27,0x3d,0x5d,0x29,0x24,0x7b,0x47,0x4f,0x2e,0x65,0x73,0x63,0x61,0x70,0x65,0x52,0x65,0x67,0x65,0x78,0x70,0x28,0x74,0x29,0x7d,0x60,0x2c,0x22,0x67,0x69,0x22,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x7d,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x57,0x4f,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x28,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x7d,0x65,0x6c,0x73,0x65,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x3d,0x7b,0x7d,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x7d,0x3b,0x69,0x66,0x28,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2c,0x22,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x55,0x4f,0x2e,0x63,0x6f,0x6d,0x6d,0x61,0x28,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x61,0x3d,0x3e,0x61,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x28,0x29,0x29,0x74,0x5b,0x61,0x5d,0x3d,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x73,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x2c,0x61,0x29,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x28,0x29,0x29,0x74,0x5b,0x69,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x3d,0x74,0x2c,0x65,0x2e,0x5f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x50,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x7d,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2d,0x31,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x6e,0x3e,0x3d,0x30,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x6e,0x5d,0x3b,0x69,0x66,0x28,0x61,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x72,0x75,0x6c,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x69,0x6e,0x20,0x74,0x5b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x5b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x5b,0x6f,0x5d,0x3b,0x69,0x66,0x28,0x61,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3d,0x3d,0x3d,0x6c,0x29,0x7b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x6f,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x73,0x3d,0x21,0x30,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x7d,0x69,0x66,0x28,0x21,0x73,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6e,0x2d,0x3d,0x31,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x2c,0x60,0x24,0x31,0x24,0x7b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x74,0x29,0x7d,0x60,0x29,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x73,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x28,0x65,0x2c,0x69,0x2c,0x74,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x2c,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x69,0x5b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x5b,0x74,0x5d,0x7d,0x29,0x3b,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x6e,0x29,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x56,0x4f,0x28,0x74,0x68,0x69,0x73,0x2c,0x65,0x29,0x7d,0x7d,0x3b,0x4f,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x45,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x62,0x3d,0x78,0x28,0x28,0x79,0x24,0x2c,0x52,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x4f,0x3d,0x77,0x72,0x28,0x29,0x2c,0x54,0x62,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x51,0x4f,0x7b,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2b,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x73,0x3d,0x3e,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x69,0x26,0x26,0x73,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x3d,0x3d,0x3d,0x65,0x2e,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x2c,0x7b,0x6e,0x61,0x6d,0x65,0x3a,0x69,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x61,0x29,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x29,0x28,0x21,0x74,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x69,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x61,0x64,0x64,0x28,0x65,0x2c,0x69,0x29,0x7d,0x7d,0x3b,0x52,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x54,0x62,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x44,0x62,0x3d,0x78,0x28,0x28,0x62,0x24,0x2c,0x49,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x59,0x4f,0x3d,0x6b,0x72,0x28,0x29,0x2c,0x6f,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x59,0x4f,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3f,0x22,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x75,0x6c,0x6c,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x22,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x66,0x75,0x6c,0x6c,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x3a,0x60,0x3a,0x24,0x7b,0x65,0x7d,0x66,0x75,0x6c,0x6c,0x73,0x63,0x72,0x65,0x65,0x6e,0x60,0x7d,0x7d,0x3b,0x6f,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x3a,0x66,0x75,0x6c,0x6c,0x73,0x63,0x72,0x65,0x65,0x6e,0x22,0x5d,0x3b,0x49,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6f,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x24,0x62,0x3d,0x78,0x28,0x28,0x77,0x24,0x2c,0x71,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4b,0x4f,0x3d,0x6b,0x72,0x28,0x29,0x2c,0x6c,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4b,0x4f,0x7b,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x28,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x5b,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x2c,0x22,0x2d,0x6d,0x73,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x5d,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3f,0x22,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x22,0x3a,0x3a,0x2d,0x6d,0x73,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x3f,0x22,0x3a,0x2d,0x6d,0x73,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x3f,0x22,0x3a,0x2d,0x6d,0x6f,0x7a,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x60,0x3a,0x3a,0x24,0x7b,0x65,0x7d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x60,0x7d,0x7d,0x3b,0x6c,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x3a,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x5d,0x3b,0x71,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6c,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x62,0x3d,0x78,0x28,0x28,0x76,0x24,0x2c,0x4c,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x58,0x4f,0x3d,0x6b,0x72,0x28,0x29,0x2c,0x75,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x58,0x4f,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x22,0x3a,0x2d,0x6d,0x73,0x2d,0x69,0x6e,0x70,0x75,0x74,0x2d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x22,0x3a,0x60,0x3a,0x24,0x7b,0x65,0x7d,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x73,0x68,0x6f,0x77,0x6e,0x60,0x7d,0x7d,0x3b,0x75,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x73,0x68,0x6f,0x77,0x6e,0x22,0x5d,0x3b,0x4c,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x75,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x42,0x62,0x3d,0x78,0x28,0x28,0x78,0x24,0x2c,0x4e,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4a,0x4f,0x3d,0x6b,0x72,0x28,0x29,0x2c,0x5a,0x4f,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x66,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4a,0x4f,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x5a,0x4f,0x2e,0x75,0x6e,0x69,0x71,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x29,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3f,0x22,0x3a,0x3a,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x69,0x6c,0x65,0x2d,0x75,0x70,0x6c,0x6f,0x61,0x64,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x3a,0x60,0x3a,0x3a,0x24,0x7b,0x65,0x7d,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x60,0x7d,0x7d,0x3b,0x66,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x3a,0x3a,0x66,0x69,0x6c,0x65,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2d,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x5d,0x3b,0x4e,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x65,0x3d,0x78,0x28,0x28,0x6b,0x24,0x2c,0x46,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x46,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x32,0x30,0x30,0x39,0x22,0x7c,0x7c,0x72,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x65,0x3d,0x32,0x30,0x30,0x39,0x3a,0x72,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x65,0x3d,0x32,0x30,0x31,0x32,0x3a,0x72,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x28,0x65,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x29,0x2c,0x72,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x32,0x30,0x30,0x39,0x22,0x26,0x26,0x28,0x72,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x2c,0x5b,0x65,0x2c,0x72,0x5d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x62,0x3d,0x78,0x28,0x28,0x53,0x24,0x2c,0x55,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6a,0x62,0x3d,0x24,0x65,0x28,0x29,0x2e,0x6c,0x69,0x73,0x74,0x2c,0x7a,0x62,0x3d,0x50,0x65,0x28,0x29,0x2c,0x65,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x53,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x65,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x7a,0x62,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x66,0x6c,0x65,0x78,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x66,0x6c,0x65,0x78,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7a,0x62,0x28,0x74,0x29,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6a,0x62,0x2e,0x73,0x70,0x61,0x63,0x65,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x5b,0x30,0x5d,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x53,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x6a,0x62,0x2e,0x73,0x70,0x61,0x63,0x65,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x33,0x26,0x26,0x6e,0x5b,0x32,0x5d,0x3d,0x3d,0x3d,0x22,0x30,0x22,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x32,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x22,0x30,0x70,0x78,0x22,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x53,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x66,0x6c,0x65,0x78,0x22,0x5d,0x3b,0x53,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x61,0x75,0x74,0x6f,0x3a,0x22,0x31,0x22,0x2c,0x6e,0x6f,0x6e,0x65,0x3a,0x22,0x30,0x22,0x7d,0x3b,0x55,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x53,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x47,0x62,0x3d,0x78,0x28,0x28,0x41,0x24,0x2c,0x57,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x62,0x3d,0x50,0x65,0x28,0x29,0x2c,0x74,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x63,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x74,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x48,0x62,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x3a,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6f,0x72,0x64,0x65,0x72,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x48,0x62,0x28,0x74,0x29,0x5b,0x30,0x5d,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x26,0x26,0x2f,0x5c,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3f,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x28,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2b,0x31,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x63,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x64,0x69,0x6e,0x61,0x6c,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x5d,0x3b,0x57,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x63,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x59,0x62,0x3d,0x78,0x28,0x28,0x43,0x24,0x2c,0x51,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x72,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x70,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x72,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x74,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x61,0x6c,0x70,0x68,0x61,0x28,0x22,0x29,0x26,0x26,0x21,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x44,0x58,0x49,0x6d,0x61,0x67,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2e,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x22,0x29,0x26,0x26,0x21,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x64,0x61,0x74,0x61,0x3a,0x69,0x6d,0x61,0x67,0x65,0x2f,0x73,0x76,0x67,0x2b,0x78,0x6d,0x6c,0x22,0x29,0x7d,0x7d,0x3b,0x70,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x5d,0x3b,0x51,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x70,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x58,0x62,0x3d,0x78,0x28,0x28,0x5f,0x24,0x2c,0x4b,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x64,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x69,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x2c,0x73,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x65,0x6e,0x64,0x24,0x2f,0x2c,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x29,0x2c,0x6f,0x3d,0x74,0x2b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x65,0x6e,0x64,0x24,0x2f,0x2c,0x22,0x73,0x70,0x61,0x6e,0x22,0x29,0x3b,0x69,0x66,0x28,0x21,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6c,0x3d,0x3e,0x6c,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x6f,0x29,0x29,0x7b,0x69,0x66,0x28,0x61,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x6f,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x73,0x70,0x61,0x6e,0x22,0x29,0x29,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x73,0x70,0x61,0x6e,0x5c,0x73,0x2f,0x69,0x2c,0x22,0x22,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x73,0x2c,0x63,0x3d,0x3e,0x7b,0x6c,0x3d,0x63,0x7d,0x29,0x2c,0x6c,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2d,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2b,0x22,0x22,0x3b,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x7d,0x65,0x6c,0x73,0x65,0x20,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x6e,0x2c,0x60,0x43,0x61,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x24,0x7b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x7d,0x20,0x28,0x24,0x7b,0x73,0x7d,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x29,0x60,0x29,0x7d,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x61,0x29,0x7d,0x7d,0x7d,0x3b,0x64,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x3b,0x4b,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x64,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5a,0x62,0x3d,0x78,0x28,0x28,0x45,0x24,0x2c,0x4a,0x62,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x68,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6e,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x74,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3d,0x3d,0x3d,0x22,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x7d,0x29,0x7d,0x7d,0x3b,0x68,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3b,0x4a,0x62,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x68,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x77,0x3d,0x78,0x28,0x28,0x4f,0x24,0x2c,0x65,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x54,0x3d,0x50,0x65,0x28,0x29,0x2c,0x61,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x6d,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x61,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x69,0x66,0x28,0x5b,0x6e,0x2c,0x74,0x5d,0x3d,0x73,0x54,0x28,0x74,0x29,0x2c,0x6e,0x21,0x3d,0x3d,0x32,0x30,0x30,0x39,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x64,0x3d,0x3e,0x64,0x21,0x3d,0x3d,0x22,0x77,0x72,0x61,0x70,0x22,0x26,0x26,0x64,0x21,0x3d,0x3d,0x22,0x6e,0x6f,0x77,0x72,0x61,0x70,0x22,0x26,0x26,0x22,0x77,0x72,0x61,0x70,0x2d,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x29,0x3b,0x69,0x66,0x28,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x64,0x3d,0x3e,0x64,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x7c,0x7c,0x64,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x61,0x5b,0x30,0x5d,0x2c,0x6c,0x3d,0x6f,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x6f,0x77,0x22,0x29,0x3f,0x22,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x22,0x3a,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x22,0x2c,0x63,0x3d,0x6f,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x29,0x3f,0x22,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x2c,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x2c,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x66,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x66,0x29,0x2c,0x66,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x2c,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x63,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x66,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x66,0x29,0x7d,0x7d,0x3b,0x6d,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x66,0x6c,0x6f,0x77,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x5d,0x3b,0x65,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6d,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x77,0x3d,0x78,0x28,0x28,0x54,0x24,0x2c,0x72,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x54,0x3d,0x50,0x65,0x28,0x29,0x2c,0x6c,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x67,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6c,0x54,0x7b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x66,0x6c,0x65,0x78,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x6f,0x54,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x66,0x6c,0x65,0x78,0x22,0x3a,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x67,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x67,0x72,0x6f,0x77,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x76,0x65,0x22,0x5d,0x3b,0x72,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x67,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x77,0x3d,0x78,0x28,0x28,0x52,0x24,0x2c,0x6e,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x75,0x54,0x3d,0x50,0x65,0x28,0x29,0x2c,0x66,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x79,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x66,0x54,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x75,0x54,0x28,0x74,0x29,0x5b,0x30,0x5d,0x21,0x3d,0x3d,0x32,0x30,0x30,0x39,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x79,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x77,0x72,0x61,0x70,0x22,0x5d,0x3b,0x6e,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x79,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x77,0x3d,0x78,0x28,0x28,0x50,0x24,0x2c,0x61,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x41,0x72,0x3d,0x42,0x74,0x28,0x29,0x2c,0x62,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x63,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x41,0x72,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x2c,0x5b,0x73,0x2c,0x6f,0x5d,0x3d,0x41,0x72,0x2e,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x61,0x2c,0x30,0x2c,0x32,0x29,0x2c,0x5b,0x6c,0x2c,0x63,0x5d,0x3d,0x41,0x72,0x2e,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x61,0x2c,0x31,0x2c,0x33,0x29,0x3b,0x5b,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x22,0x2c,0x73,0x5d,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x70,0x61,0x6e,0x22,0x2c,0x6f,0x5d,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x2c,0x6c,0x5d,0x2c,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x70,0x61,0x6e,0x22,0x2c,0x63,0x5d,0x5d,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x5b,0x66,0x2c,0x64,0x5d,0x29,0x3d,0x3e,0x7b,0x41,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x66,0x2c,0x64,0x29,0x7d,0x29,0x2c,0x41,0x72,0x2e,0x77,0x61,0x72,0x6e,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x4e,0x6f,0x74,0x46,0x6f,0x75,0x6e,0x64,0x28,0x65,0x2c,0x6e,0x29,0x2c,0x41,0x72,0x2e,0x77,0x61,0x72,0x6e,0x49,0x66,0x47,0x72,0x69,0x64,0x52,0x6f,0x77,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x45,0x78,0x69,0x73,0x74,0x73,0x28,0x65,0x2c,0x6e,0x29,0x7d,0x7d,0x3b,0x62,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x72,0x65,0x61,0x22,0x5d,0x3b,0x61,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x62,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x75,0x77,0x3d,0x78,0x28,0x28,0x49,0x24,0x2c,0x6c,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x4d,0x69,0x3d,0x42,0x74,0x28,0x29,0x2c,0x77,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x70,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x73,0x3d,0x3e,0x73,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x5b,0x5b,0x6e,0x2c,0x61,0x5d,0x5d,0x3d,0x4d,0x69,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x3b,0x61,0x3f,0x28,0x4d,0x69,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x6e,0x29,0x2c,0x4d,0x69,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x61,0x29,0x29,0x3a,0x28,0x4d,0x69,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x6e,0x29,0x2c,0x4d,0x69,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x6e,0x29,0x29,0x7d,0x7d,0x3b,0x77,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x70,0x6c,0x61,0x63,0x65,0x2d,0x73,0x65,0x6c,0x66,0x22,0x5d,0x3b,0x6c,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x77,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x77,0x3d,0x78,0x28,0x28,0x44,0x24,0x2c,0x66,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x64,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x76,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x64,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2f,0x22,0x29,0x7c,0x7c,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x73,0x70,0x61,0x6e,0x22,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x22,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x22,0x29,0x29,0x2c,0x69,0x7d,0x7d,0x3b,0x76,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x5d,0x3b,0x66,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x76,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x68,0x77,0x3d,0x78,0x28,0x28,0x71,0x24,0x2c,0x64,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x77,0x3d,0x50,0x65,0x28,0x29,0x2c,0x68,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x43,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x68,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x26,0x26,0x21,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x74,0x3d,0x3e,0x74,0x2e,0x70,0x72,0x6f,0x70,0x26,0x26,0x74,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x67,0x72,0x69,0x64,0x2d,0x22,0x29,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x70,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x70,0x77,0x28,0x74,0x29,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x43,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x43,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x69,0x74,0x65,0x6d,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x5d,0x3b,0x43,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x3b,0x64,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x43,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x67,0x77,0x3d,0x78,0x28,0x28,0x24,0x24,0x2c,0x6d,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6d,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x67,0x54,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x78,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6d,0x54,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x67,0x54,0x2e,0x75,0x6e,0x69,0x71,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x6e,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3a,0x6e,0x29,0x29,0x29,0x7d,0x7d,0x3b,0x78,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x22,0x5d,0x3b,0x6d,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x78,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x77,0x3d,0x78,0x28,0x28,0x4c,0x24,0x2c,0x62,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x79,0x77,0x3d,0x50,0x65,0x28,0x29,0x2c,0x79,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x6b,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x79,0x54,0x7b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x66,0x6c,0x65,0x78,0x2d,0x62,0x61,0x73,0x69,0x73,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x79,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x69,0x66,0x28,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x79,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x6b,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x62,0x61,0x73,0x69,0x73,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x2d,0x73,0x69,0x7a,0x65,0x22,0x5d,0x3b,0x62,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6b,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x77,0x3d,0x78,0x28,0x28,0x4d,0x24,0x2c,0x76,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x62,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x53,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x62,0x54,0x7b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x29,0x29,0x2c,0x69,0x7d,0x7d,0x3b,0x53,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x6c,0x69,0x63,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x75,0x74,0x73,0x65,0x74,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x73,0x6c,0x69,0x63,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x6f,0x75,0x74,0x73,0x65,0x74,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x78,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x5d,0x3b,0x76,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x53,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x77,0x3d,0x78,0x28,0x28,0x4e,0x24,0x2c,0x6b,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x6c,0x74,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x77,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x65,0x22,0x2c,0x61,0x3b,0x6e,0x3f,0x61,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x3a,0x61,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x6c,0x74,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x29,0x7c,0x7c,0x5b,0x5d,0x2c,0x61,0x3d,0x61,0x2e,0x6d,0x61,0x70,0x28,0x63,0x3d,0x3e,0x63,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x63,0x3d,0x3e,0x63,0x29,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6f,0x3b,0x69,0x66,0x28,0x73,0x26,0x26,0x28,0x6f,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x2c,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x61,0x2e,0x6d,0x61,0x70,0x28,0x63,0x3d,0x3e,0x6c,0x74,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x63,0x5d,0x7c,0x7c,0x63,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x2c,0x61,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x69,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x22,0x29,0x26,0x26,0x28,0x6f,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x3d,0x22,0x2c,0x20,0x78,0x6f,0x72,0x22,0x29,0x2c,0x6f,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x65,0x22,0x29,0x2c,0x6e,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x6f,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x6f,0x29,0x29,0x3a,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x6c,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x73,0x26,0x26,0x28,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x6c,0x74,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x2c,0x22,0x22,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x6c,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x6c,0x29,0x2c,0x73,0x3f,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x6f,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x6f,0x29,0x29,0x3a,0x65,0x7d,0x7d,0x3b,0x6c,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6d,0x61,0x73,0x6b,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x65,0x22,0x5d,0x3b,0x6c,0x74,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x61,0x64,0x64,0x3a,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x2d,0x6f,0x76,0x65,0x72,0x22,0x2c,0x73,0x75,0x62,0x74,0x72,0x61,0x63,0x74,0x3a,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x2d,0x6f,0x75,0x74,0x22,0x2c,0x69,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x3a,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x2d,0x69,0x6e,0x22,0x2c,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x3a,0x22,0x78,0x6f,0x72,0x22,0x7d,0x3b,0x6c,0x74,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x3d,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x5c,0x5c,0x73,0x2b,0x28,0x24,0x7b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x6c,0x74,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x7c,0x22,0x29,0x7d,0x29,0x5c,0x5c,0x62,0x28,0x3f,0x21,0x5c,0x5c,0x29,0x29,0x5c,0x5c,0x73,0x2a,0x28,0x3f,0x3d,0x5b,0x2c,0x5d,0x29,0x60,0x2c,0x22,0x69,0x67,0x22,0x29,0x3b,0x6b,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6c,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5f,0x77,0x3d,0x78,0x28,0x28,0x42,0x24,0x2c,0x43,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x77,0x3d,0x50,0x65,0x28,0x29,0x2c,0x76,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x5f,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x76,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x41,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x41,0x77,0x28,0x74,0x29,0x5b,0x30,0x5d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x29,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x5f,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x5f,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x73,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x5d,0x3b,0x5f,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x7d,0x3b,0x43,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5f,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x77,0x3d,0x78,0x28,0x28,0x46,0x24,0x2c,0x45,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x41,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x78,0x54,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x22,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x21,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x6c,0x22,0x26,0x26,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x7d,0x3b,0x41,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x5d,0x3b,0x45,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x41,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x50,0x77,0x3d,0x78,0x28,0x28,0x6a,0x24,0x2c,0x52,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x54,0x77,0x3d,0x50,0x65,0x28,0x29,0x2c,0x6b,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x43,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6b,0x54,0x7b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x54,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x69,0x66,0x28,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x54,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x43,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x68,0x72,0x69,0x6e,0x6b,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x22,0x5d,0x3b,0x52,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x43,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x44,0x77,0x3d,0x78,0x28,0x28,0x7a,0x24,0x2c,0x49,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x5f,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x53,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x24,0x7b,0x74,0x7d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x24,0x7b,0x65,0x7d,0x60,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x29,0x3f,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x3a,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x3f,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3a,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x76,0x6f,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x76,0x6f,0x69,0x64,0x2d,0x70,0x61,0x67,0x65,0x22,0x29,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x61,0x76,0x6f,0x69,0x64,0x22,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x21,0x3d,0x3d,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x69,0x66,0x28,0x21,0x28,0x2f,0x72,0x65,0x67,0x69,0x6f,0x6e,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7c,0x7c,0x2f,0x70,0x61,0x67,0x65,0x2f,0x69,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x7d,0x3b,0x5f,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x2c,0x22,0x70,0x61,0x67,0x65,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x69,0x6e,0x73,0x69,0x64,0x65,0x22,0x2c,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x70,0x61,0x67,0x65,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x70,0x61,0x67,0x65,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x5d,0x3b,0x49,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5f,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x24,0x77,0x3d,0x78,0x28,0x28,0x55,0x24,0x2c,0x71,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x41,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x45,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x41,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x22,0x70,0x72,0x69,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x7d,0x7d,0x3b,0x45,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x2c,0x22,0x70,0x72,0x69,0x6e,0x74,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x5d,0x3b,0x71,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x45,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x77,0x3d,0x78,0x28,0x28,0x56,0x24,0x2c,0x4c,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x43,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x45,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x43,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x2c,0x74,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x6e,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x22,0x6c,0x74,0x72,0x22,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x73,0x3d,0x3e,0x7b,0x73,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x72,0x74,0x6c,0x22,0x7c,0x7c,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x6c,0x74,0x72,0x22,0x29,0x26,0x26,0x28,0x61,0x3d,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x29,0x2c,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x45,0x72,0x2e,0x6d,0x73,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x61,0x5d,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x6e,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x7d,0x3b,0x45,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x5d,0x3b,0x45,0x72,0x2e,0x6d,0x73,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x6c,0x74,0x72,0x3a,0x7b,0x22,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x2d,0x74,0x62,0x22,0x3a,0x22,0x6c,0x72,0x2d,0x74,0x62,0x22,0x2c,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x72,0x6c,0x22,0x3a,0x22,0x74,0x62,0x2d,0x72,0x6c,0x22,0x2c,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x6c,0x72,0x22,0x3a,0x22,0x74,0x62,0x2d,0x6c,0x72,0x22,0x7d,0x2c,0x72,0x74,0x6c,0x3a,0x7b,0x22,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x2d,0x74,0x62,0x22,0x3a,0x22,0x72,0x6c,0x2d,0x74,0x62,0x22,0x2c,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x72,0x6c,0x22,0x3a,0x22,0x62,0x74,0x2d,0x72,0x6c,0x22,0x2c,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2d,0x6c,0x72,0x22,0x3a,0x22,0x62,0x74,0x2d,0x6c,0x72,0x22,0x7d,0x7d,0x3b,0x4c,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x45,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x42,0x77,0x3d,0x78,0x28,0x28,0x48,0x24,0x2c,0x4e,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x5f,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x4f,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x5f,0x54,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2b,0x66,0x69,0x6c,0x6c,0x28,0x5c,0x73,0x29,0x2f,0x2c,0x22,0x24,0x31,0x22,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x4f,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x5d,0x3b,0x4e,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4f,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x7a,0x77,0x3d,0x78,0x28,0x28,0x57,0x24,0x2c,0x6a,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x46,0x77,0x3d,0x50,0x65,0x28,0x29,0x2c,0x45,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x4f,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x45,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x46,0x77,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6c,0x69,0x6e,0x65,0x2d,0x70,0x61,0x63,0x6b,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x46,0x77,0x28,0x74,0x29,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x4f,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x4f,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x6c,0x69,0x6e,0x65,0x2d,0x70,0x61,0x63,0x6b,0x22,0x5d,0x3b,0x4f,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x3a,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x3a,0x22,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x7d,0x3b,0x6a,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4f,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x77,0x3d,0x78,0x28,0x28,0x47,0x24,0x2c,0x55,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x57,0x65,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4f,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x74,0x2b,0x28,0x57,0x65,0x2e,0x74,0x6f,0x4d,0x6f,0x7a,0x69,0x6c,0x6c,0x61,0x5b,0x65,0x5d,0x7c,0x7c,0x65,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x57,0x65,0x2e,0x74,0x6f,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x5b,0x65,0x5d,0x7c,0x7c,0x65,0x7d,0x7d,0x3b,0x57,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x22,0x5d,0x3b,0x57,0x65,0x2e,0x74,0x6f,0x4d,0x6f,0x7a,0x69,0x6c,0x6c,0x61,0x3d,0x7b,0x7d,0x3b,0x57,0x65,0x2e,0x74,0x6f,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x3d,0x7b,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x72,0x20,0x6f,0x66,0x5b,0x22,0x74,0x6f,0x70,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x5d,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x65,0x20,0x6f,0x66,0x5b,0x22,0x6c,0x65,0x66,0x74,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x5d,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x60,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x24,0x7b,0x72,0x7d,0x2d,0x24,0x7b,0x65,0x7d,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x60,0x2c,0x69,0x3d,0x60,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x2d,0x24,0x7b,0x72,0x7d,0x24,0x7b,0x65,0x7d,0x60,0x3b,0x57,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x29,0x2c,0x57,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x29,0x2c,0x57,0x65,0x2e,0x74,0x6f,0x4d,0x6f,0x7a,0x69,0x6c,0x6c,0x61,0x5b,0x74,0x5d,0x3d,0x69,0x2c,0x57,0x65,0x2e,0x74,0x6f,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x5b,0x69,0x5d,0x3d,0x74,0x7d,0x55,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x57,0x65,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x57,0x77,0x3d,0x78,0x28,0x28,0x51,0x24,0x2c,0x48,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x54,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x54,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x54,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x29,0x3f,0x74,0x2b,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x3a,0x74,0x2b,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x29,0x3f,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x29,0x3a,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x65,0x6e,0x64,0x22,0x29,0x7d,0x7d,0x3b,0x54,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x61,0x66,0x74,0x65,0x72,0x22,0x5d,0x3b,0x48,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x54,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x77,0x3d,0x78,0x28,0x28,0x59,0x24,0x2c,0x47,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x52,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x7b,0x70,0x61,0x72,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3a,0x50,0x54,0x2c,0x77,0x61,0x72,0x6e,0x4d,0x69,0x73,0x73,0x65,0x64,0x41,0x72,0x65,0x61,0x73,0x3a,0x49,0x54,0x2c,0x67,0x65,0x74,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x44,0x54,0x2c,0x77,0x61,0x72,0x6e,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x71,0x54,0x2c,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x24,0x54,0x7d,0x3d,0x42,0x74,0x28,0x29,0x2c,0x52,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x52,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x68,0x3d,0x3e,0x68,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x73,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x44,0x54,0x28,0x65,0x29,0x2c,0x73,0x3d,0x24,0x54,0x28,0x65,0x2c,0x61,0x29,0x2c,0x7b,0x72,0x6f,0x77,0x73,0x3a,0x6f,0x2c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x6c,0x2c,0x61,0x72,0x65,0x61,0x73,0x3a,0x63,0x7d,0x3d,0x50,0x54,0x28,0x7b,0x64,0x65,0x63,0x6c,0x3a,0x65,0x2c,0x67,0x61,0x70,0x3a,0x73,0x7c,0x7c,0x61,0x7d,0x29,0x2c,0x66,0x3d,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x63,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x2c,0x64,0x3d,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x6f,0x29,0x2c,0x70,0x3d,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x6c,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x71,0x54,0x28,0x7b,0x67,0x61,0x70,0x3a,0x61,0x2c,0x68,0x61,0x73,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x70,0x2c,0x64,0x65,0x63,0x6c,0x3a,0x65,0x2c,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x6e,0x7d,0x29,0x2c,0x49,0x54,0x28,0x63,0x2c,0x65,0x2c,0x6e,0x29,0x2c,0x28,0x64,0x26,0x26,0x70,0x7c,0x7c,0x66,0x29,0x26,0x26,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x22,0x2d,0x6d,0x73,0x2d,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6f,0x2c,0x72,0x61,0x77,0x73,0x3a,0x7b,0x7d,0x7d,0x29,0x2c,0x70,0x26,0x26,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x22,0x2d,0x6d,0x73,0x2d,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6c,0x2c,0x72,0x61,0x77,0x73,0x3a,0x7b,0x7d,0x7d,0x29,0x2c,0x65,0x7d,0x7d,0x3b,0x52,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x5d,0x3b,0x47,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x52,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4b,0x77,0x3d,0x78,0x28,0x28,0x4b,0x24,0x2c,0x59,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4c,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x50,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4c,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x22,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x6d,0x61,0x72,0x67,0x69,0x6e,0x7c,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x7c,0x62,0x6f,0x72,0x64,0x65,0x72,0x29,0x2d,0x28,0x73,0x74,0x61,0x72,0x74,0x7c,0x65,0x6e,0x64,0x29,0x2f,0x2c,0x22,0x24,0x31,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x24,0x32,0x22,0x29,0x7d,0x7d,0x3b,0x50,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x65,0x6e,0x64,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x65,0x6e,0x64,0x22,0x5d,0x3b,0x59,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x50,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4a,0x77,0x3d,0x78,0x28,0x28,0x58,0x24,0x2c,0x58,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4d,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x49,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4d,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x2d,0x22,0x29,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x7d,0x7d,0x3b,0x49,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x5d,0x3b,0x58,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x49,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x65,0x30,0x3d,0x78,0x28,0x28,0x4a,0x24,0x2c,0x5a,0x77,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4e,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x54,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4e,0x54,0x7b,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x74,0x7d,0x3d,0x65,0x3b,0x66,0x6f,0x72,0x28,0x3b,0x74,0x3b,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x72,0x75,0x6c,0x65,0x22,0x26,0x26,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x28,0x7b,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x74,0x7d,0x3d,0x74,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x33,0x64,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x54,0x72,0x2e,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x33,0x64,0x29,0x69,0x66,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x24,0x7b,0x74,0x7d,0x28,0x60,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x2c,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x72,0x6f,0x74,0x61,0x74,0x65,0x7a,0x2f,0x67,0x69,0x2c,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x22,0x29,0x29,0x2c,0x65,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x33,0x64,0x28,0x65,0x29,0x26,0x26,0x21,0x74,0x68,0x69,0x73,0x2e,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6f,0x2d,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x33,0x64,0x28,0x65,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x7d,0x3b,0x54,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x5d,0x3b,0x54,0x72,0x2e,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x33,0x64,0x3d,0x5b,0x22,0x6d,0x61,0x74,0x72,0x69,0x78,0x33,0x64,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x33,0x64,0x22,0x2c,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x5a,0x22,0x2c,0x22,0x73,0x63,0x61,0x6c,0x65,0x33,0x64,0x22,0x2c,0x22,0x73,0x63,0x61,0x6c,0x65,0x5a,0x22,0x2c,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x33,0x64,0x22,0x2c,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x58,0x22,0x2c,0x22,0x72,0x6f,0x74,0x61,0x74,0x65,0x59,0x22,0x2c,0x22,0x70,0x65,0x72,0x73,0x70,0x65,0x63,0x74,0x69,0x76,0x65,0x22,0x5d,0x3b,0x5a,0x77,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x54,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x30,0x3d,0x78,0x28,0x28,0x5a,0x24,0x2c,0x72,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x30,0x3d,0x50,0x65,0x28,0x29,0x2c,0x42,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x44,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x42,0x54,0x7b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x69,0x66,0x28,0x5b,0x6e,0x2c,0x74,0x5d,0x3d,0x74,0x30,0x28,0x74,0x29,0x2c,0x6e,0x21,0x3d,0x3d,0x32,0x30,0x30,0x39,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x66,0x3d,0x3e,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x7c,0x7c,0x66,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x6f,0x2c,0x6c,0x3b,0x73,0x3d,0x3d,0x3d,0x22,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x22,0x7c,0x7c,0x73,0x3d,0x3d,0x3d,0x22,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x22,0x7c,0x7c,0x73,0x3d,0x3d,0x3d,0x22,0x75,0x6e,0x73,0x65,0x74,0x22,0x3f,0x28,0x6f,0x3d,0x73,0x2c,0x6c,0x3d,0x73,0x29,0x3a,0x28,0x6f,0x3d,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x6f,0x77,0x22,0x29,0x3f,0x22,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x22,0x3a,0x22,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x22,0x2c,0x6c,0x3d,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x29,0x3f,0x22,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x22,0x3a,0x22,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x2c,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6f,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x63,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x63,0x29,0x2c,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x65,0x29,0x2c,0x63,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6c,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x63,0x61,0x64,0x65,0x28,0x65,0x29,0x26,0x26,0x28,0x63,0x2e,0x72,0x61,0x77,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x61,0x6c,0x63,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x69,0x2c,0x65,0x2c,0x74,0x29,0x29,0x2c,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x65,0x2c,0x63,0x29,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x74,0x30,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x5b,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x2c,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x6f,0x6c,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x44,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x22,0x5d,0x3b,0x72,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x44,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x73,0x30,0x3d,0x78,0x28,0x28,0x65,0x4c,0x2c,0x6e,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x46,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x71,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x46,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x70,0x69,0x78,0x65,0x6c,0x61,0x74,0x65,0x64,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x22,0x2d,0x6d,0x73,0x2d,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x3a,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x6e,0x65,0x61,0x72,0x65,0x73,0x74,0x2d,0x6e,0x65,0x69,0x67,0x68,0x62,0x6f,0x72,0x22,0x2c,0x65,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x69,0x6d,0x61,0x67,0x65,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x22,0x7d,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x71,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x69,0x6d,0x61,0x67,0x65,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x22,0x2c,0x22,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6d,0x6f,0x64,0x65,0x22,0x5d,0x3b,0x6e,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x71,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x30,0x3d,0x78,0x28,0x28,0x74,0x4c,0x2c,0x61,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6a,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x7a,0x54,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x24,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6a,0x54,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x7a,0x54,0x2e,0x75,0x6e,0x69,0x71,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x6e,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3a,0x6e,0x29,0x29,0x29,0x7d,0x7d,0x3b,0x24,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x5d,0x3b,0x61,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x24,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x75,0x30,0x3d,0x78,0x28,0x28,0x72,0x4c,0x2c,0x6c,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x55,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x56,0x54,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x4c,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x55,0x54,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3d,0x56,0x54,0x2e,0x75,0x6e,0x69,0x71,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x6e,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3a,0x6e,0x29,0x29,0x29,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x7d,0x7d,0x3b,0x4c,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x5d,0x3b,0x6c,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4c,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x30,0x3d,0x78,0x28,0x28,0x69,0x4c,0x2c,0x66,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x57,0x54,0x3d,0x5b,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x22,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x6f,0x76,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x2c,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x22,0x2c,0x22,0x62,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x22,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x22,0x2c,0x22,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x22,0x2c,0x22,0x75,0x6e,0x73,0x65,0x74,0x22,0x5d,0x2c,0x4d,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x48,0x54,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x74,0x3d,0x3e,0x21,0x57,0x54,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x74,0x29,0x29,0x7d,0x7d,0x3b,0x4d,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3b,0x66,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4d,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x68,0x30,0x3d,0x78,0x28,0x28,0x6e,0x4c,0x2c,0x64,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x30,0x3d,0x50,0x65,0x28,0x29,0x2c,0x47,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x52,0x72,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x47,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x69,0x2c,0x74,0x5d,0x3d,0x70,0x30,0x28,0x74,0x29,0x2c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x74,0x2b,0x22,0x62,0x6f,0x78,0x2d,0x70,0x61,0x63,0x6b,0x22,0x3a,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x2b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x61,0x63,0x6b,0x22,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x70,0x30,0x28,0x74,0x29,0x5b,0x30,0x5d,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x52,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x69,0x66,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x6e,0x2c,0x69,0x21,0x3d,0x3d,0x32,0x30,0x30,0x39,0x7c,0x7c,0x6e,0x21,0x3d,0x3d,0x22,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x52,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x70,0x61,0x63,0x6b,0x22,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x70,0x61,0x63,0x6b,0x22,0x5d,0x3b,0x52,0x72,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x3d,0x7b,0x22,0x66,0x6c,0x65,0x78,0x2d,0x65,0x6e,0x64,0x22,0x3a,0x22,0x65,0x6e,0x64,0x22,0x2c,0x22,0x66,0x6c,0x65,0x78,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3a,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x22,0x3a,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x22,0x2c,0x22,0x73,0x70,0x61,0x63,0x65,0x2d,0x61,0x72,0x6f,0x75,0x6e,0x64,0x22,0x3a,0x22,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x7d,0x3b,0x64,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x52,0x72,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x67,0x30,0x3d,0x78,0x28,0x28,0x73,0x4c,0x2c,0x6d,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x4e,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x51,0x54,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x21,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x20,0x22,0x29,0x26,0x26,0x69,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x26,0x26,0x69,0x21,0x3d,0x3d,0x22,0x63,0x6f,0x76,0x65,0x72,0x22,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2b,0x22,0x20,0x22,0x2b,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x4e,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x73,0x69,0x7a,0x65,0x22,0x5d,0x3b,0x6d,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4e,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x62,0x30,0x3d,0x78,0x28,0x28,0x61,0x4c,0x2c,0x79,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x59,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x42,0x75,0x3d,0x42,0x74,0x28,0x29,0x2c,0x46,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x59,0x54,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x42,0x75,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x65,0x29,0x2c,0x5b,0x61,0x2c,0x73,0x5d,0x3d,0x42,0x75,0x2e,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x6e,0x2c,0x30,0x2c,0x31,0x29,0x3b,0x6e,0x5b,0x30,0x5d,0x26,0x26,0x6e,0x5b,0x30,0x5d,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x73,0x70,0x61,0x6e,0x22,0x29,0x26,0x26,0x28,0x73,0x3d,0x6e,0x5b,0x30,0x5d,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x44,0x2f,0x67,0x2c,0x22,0x22,0x29,0x29,0x2c,0x5b,0x5b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2c,0x61,0x5d,0x2c,0x5b,0x60,0x24,0x7b,0x65,0x2e,0x70,0x72,0x6f,0x70,0x7d,0x2d,0x73,0x70,0x61,0x6e,0x60,0x2c,0x73,0x5d,0x5d,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x5b,0x6c,0x2c,0x63,0x5d,0x29,0x3d,0x3e,0x7b,0x42,0x75,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x44,0x65,0x63,0x6c,0x28,0x65,0x2c,0x6c,0x2c,0x63,0x29,0x7d,0x29,0x7d,0x7d,0x3b,0x46,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x22,0x5d,0x3b,0x79,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x46,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x30,0x3d,0x78,0x28,0x28,0x6f,0x4c,0x2c,0x76,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4b,0x54,0x3d,0x6a,0x28,0x29,0x2c,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x54,0x72,0x61,0x63,0x6b,0x50,0x72,0x6f,0x70,0x3a,0x77,0x30,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x54,0x72,0x61,0x63,0x6b,0x56,0x61,0x6c,0x75,0x65,0x3a,0x58,0x54,0x2c,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x47,0x72,0x69,0x64,0x49,0x74,0x65,0x6d,0x73,0x3a,0x4a,0x54,0x2c,0x67,0x65,0x74,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x5a,0x54,0x2c,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x65,0x52,0x7d,0x3d,0x42,0x74,0x28,0x29,0x2c,0x74,0x52,0x3d,0x73,0x75,0x28,0x29,0x2c,0x6a,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4b,0x54,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x3f,0x77,0x30,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x65,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x74,0x7d,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x67,0x72,0x69,0x64,0x2d,0x28,0x72,0x6f,0x77,0x73,0x7c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x29,0x2f,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x24,0x31,0x22,0x29,0x7d,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x7b,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x61,0x2c,0x70,0x72,0x6f,0x70,0x3a,0x73,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6f,0x7d,0x3d,0x65,0x2c,0x6c,0x3d,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x6f,0x77,0x73,0x22,0x29,0x2c,0x63,0x3d,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x29,0x2c,0x66,0x3d,0x61,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x6b,0x3d,0x3e,0x6b,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x7c,0x7c,0x6b,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x61,0x72,0x65,0x61,0x73,0x22,0x29,0x3b,0x69,0x66,0x28,0x66,0x26,0x26,0x6c,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x64,0x3d,0x6e,0x65,0x77,0x20,0x74,0x52,0x28,0x7b,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x7b,0x7d,0x7d,0x29,0x2c,0x70,0x3d,0x64,0x2e,0x67,0x72,0x69,0x64,0x53,0x74,0x61,0x74,0x75,0x73,0x28,0x61,0x2c,0x6e,0x29,0x2c,0x68,0x3d,0x5a,0x54,0x28,0x65,0x29,0x3b,0x68,0x3d,0x65,0x52,0x28,0x65,0x2c,0x68,0x29,0x7c,0x7c,0x68,0x3b,0x6c,0x65,0x74,0x20,0x62,0x3d,0x6c,0x3f,0x68,0x2e,0x72,0x6f,0x77,0x3a,0x68,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3b,0x28,0x70,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x2d,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x7c,0x7c,0x70,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x26,0x26,0x21,0x66,0x26,0x26,0x28,0x62,0x3d,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x6c,0x65,0x74,0x20,0x76,0x3d,0x58,0x54,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6f,0x2c,0x67,0x61,0x70,0x3a,0x62,0x7d,0x29,0x3b,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x77,0x30,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x73,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x74,0x7d,0x29,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x76,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x79,0x3d,0x61,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x6b,0x3d,0x3e,0x6b,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x66,0x6c,0x6f,0x77,0x22,0x29,0x2c,0x77,0x3d,0x22,0x72,0x6f,0x77,0x22,0x3b,0x69,0x66,0x28,0x79,0x26,0x26,0x21,0x64,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x79,0x2c,0x6e,0x29,0x26,0x26,0x28,0x77,0x3d,0x79,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x2c,0x70,0x3d,0x3d,0x3d,0x22,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6b,0x3d,0x61,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x45,0x3d,0x3e,0x45,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x29,0x3b,0x69,0x66,0x28,0x21,0x6b,0x26,0x26,0x66,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x69,0x66,0x28,0x21,0x6b,0x26,0x26,0x21,0x66,0x29,0x7b,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x6e,0x2c,0x22,0x41,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x77,0x6f,0x72,0x6b,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7d,0x21,0x61,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x45,0x3d,0x3e,0x45,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x29,0x26,0x26,0x21,0x66,0x26,0x26,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x6e,0x2c,0x22,0x41,0x75,0x74,0x6f,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x77,0x6f,0x72,0x6b,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x2c,0x63,0x26,0x26,0x21,0x66,0x26,0x26,0x4a,0x54,0x28,0x65,0x2c,0x6e,0x2c,0x68,0x2c,0x77,0x29,0x7d,0x7d,0x7d,0x3b,0x6a,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x5d,0x3b,0x76,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x6a,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x30,0x3d,0x78,0x28,0x28,0x6c,0x4c,0x2c,0x6b,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x72,0x52,0x3d,0x6a,0x28,0x29,0x2c,0x7a,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x72,0x52,0x7b,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x66,0x6c,0x65,0x78,0x2d,0x22,0x29,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x22,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x22,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x65,0x6c,0x66,0x22,0x7d,0x7d,0x3b,0x7a,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x22,0x5d,0x3b,0x6b,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7a,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x43,0x30,0x3d,0x78,0x28,0x28,0x75,0x4c,0x2c,0x41,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x52,0x3d,0x6a,0x28,0x29,0x2c,0x55,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x69,0x52,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x63,0x68,0x61,0x69,0x6e,0x69,0x6e,0x67,0x22,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x7d,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x75,0x74,0x6f,0x22,0x3f,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x63,0x68,0x61,0x69,0x6e,0x65,0x64,0x22,0x3a,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x7c,0x7c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x22,0x29,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x55,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6f,0x76,0x65,0x72,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x22,0x2c,0x22,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x2d,0x63,0x68,0x61,0x69,0x6e,0x69,0x6e,0x67,0x22,0x5d,0x3b,0x41,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x55,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x30,0x3d,0x78,0x28,0x28,0x66,0x4c,0x2c,0x45,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x52,0x3d,0x6a,0x28,0x29,0x2c,0x7b,0x70,0x61,0x72,0x73,0x65,0x47,0x72,0x69,0x64,0x41,0x72,0x65,0x61,0x73,0x3a,0x73,0x52,0x2c,0x77,0x61,0x72,0x6e,0x4d,0x69,0x73,0x73,0x65,0x64,0x41,0x72,0x65,0x61,0x73,0x3a,0x61,0x52,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x54,0x72,0x61,0x63,0x6b,0x50,0x72,0x6f,0x70,0x3a,0x6f,0x52,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x54,0x72,0x61,0x63,0x6b,0x56,0x61,0x6c,0x75,0x65,0x3a,0x5f,0x30,0x2c,0x67,0x65,0x74,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x6c,0x52,0x2c,0x77,0x61,0x72,0x6e,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x75,0x52,0x2c,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x47,0x72,0x69,0x64,0x47,0x61,0x70,0x3a,0x66,0x52,0x7d,0x3d,0x42,0x74,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x52,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5b,0x22,0x27,0x5d,0x5c,0x73,0x2a,0x5b,0x22,0x27,0x5d,0x3f,0x2f,0x67,0x29,0x7d,0x76,0x61,0x72,0x20,0x56,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6e,0x52,0x7b,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x6d,0x73,0x2d,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x21,0x31,0x2c,0x73,0x3d,0x21,0x31,0x2c,0x6f,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x6c,0x3d,0x6c,0x52,0x28,0x65,0x29,0x3b,0x6c,0x3d,0x66,0x52,0x28,0x65,0x2c,0x6c,0x29,0x7c,0x7c,0x6c,0x2c,0x6f,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x2f,0x2d,0x6d,0x73,0x2d,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x73,0x2f,0x2c,0x64,0x3d,0x3e,0x64,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x29,0x2c,0x6f,0x2e,0x77,0x61,0x6c,0x6b,0x44,0x65,0x63,0x6c,0x73,0x28,0x2f,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x28,0x72,0x6f,0x77,0x73,0x7c,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x29,0x2f,0x2c,0x64,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x64,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x29,0x7b,0x73,0x3d,0x21,0x30,0x3b,0x6c,0x65,0x74,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x70,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x68,0x7d,0x3d,0x64,0x3b,0x64,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x6f,0x52,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x70,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x3a,0x74,0x7d,0x29,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x5f,0x30,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x68,0x2c,0x67,0x61,0x70,0x3a,0x6c,0x2e,0x72,0x6f,0x77,0x7d,0x29,0x7d,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x61,0x3d,0x21,0x30,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x63,0x52,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x61,0x26,0x26,0x21,0x73,0x26,0x26,0x6c,0x2e,0x72,0x6f,0x77,0x26,0x26,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x31,0x26,0x26,0x65,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x7b,0x70,0x72,0x6f,0x70,0x3a,0x22,0x2d,0x6d,0x73,0x2d,0x67,0x72,0x69,0x64,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x5f,0x30,0x28,0x7b,0x76,0x61,0x6c,0x75,0x65,0x3a,0x60,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x24,0x7b,0x63,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x2c,0x20,0x61,0x75,0x74,0x6f,0x29,0x60,0x2c,0x67,0x61,0x70,0x3a,0x6c,0x2e,0x72,0x6f,0x77,0x7d,0x29,0x2c,0x72,0x61,0x77,0x73,0x3a,0x7b,0x7d,0x7d,0x29,0x2c,0x75,0x52,0x28,0x7b,0x67,0x61,0x70,0x3a,0x6c,0x2c,0x68,0x61,0x73,0x43,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x3a,0x61,0x2c,0x64,0x65,0x63,0x6c,0x3a,0x65,0x2c,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x6e,0x7d,0x29,0x3b,0x6c,0x65,0x74,0x20,0x66,0x3d,0x73,0x52,0x28,0x7b,0x72,0x6f,0x77,0x73,0x3a,0x63,0x2c,0x67,0x61,0x70,0x3a,0x6c,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x52,0x28,0x66,0x2c,0x65,0x2c,0x6e,0x29,0x2c,0x65,0x7d,0x7d,0x3b,0x56,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x61,0x72,0x65,0x61,0x73,0x22,0x5d,0x3b,0x45,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x56,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x52,0x30,0x3d,0x78,0x28,0x28,0x63,0x4c,0x2c,0x54,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x70,0x52,0x3d,0x6a,0x28,0x29,0x2c,0x48,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x70,0x52,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x28,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x73,0x2a,0x28,0x72,0x69,0x67,0x68,0x74,0x7c,0x6c,0x65,0x66,0x74,0x29,0x5c,0x73,0x2a,0x2f,0x69,0x2c,0x22,0x22,0x29,0x29,0x2c,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x48,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x65,0x6d,0x70,0x68,0x61,0x73,0x69,0x73,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3b,0x54,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x48,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x49,0x30,0x3d,0x78,0x28,0x28,0x70,0x4c,0x2c,0x50,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x64,0x52,0x3d,0x6a,0x28,0x29,0x2c,0x57,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x64,0x52,0x7b,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x2d,0x69,0x6e,0x6b,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x75,0x74,0x6f,0x22,0x3f,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x74,0x2b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x22,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x69,0x6e,0x6b,0x22,0x2c,0x65,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x57,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x2d,0x69,0x6e,0x6b,0x22,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x22,0x5d,0x3b,0x50,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x57,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x4e,0x30,0x3d,0x78,0x28,0x28,0x64,0x4c,0x2c,0x4d,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x4d,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x77,0x72,0x61,0x70,0x3a,0x44,0x30,0x2c,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x71,0x30,0x2c,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x24,0x30,0x2c,0x74,0x65,0x73,0x74,0x3a,0x47,0x75,0x2c,0x63,0x75,0x72,0x72,0x79,0x3a,0x68,0x52,0x2c,0x6e,0x61,0x6d,0x65,0x3a,0x4c,0x30,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x30,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x76,0x61,0x72,0x20,0x69,0x3d,0x65,0x2d,0x72,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x28,0x74,0x2d,0x72,0x29,0x25,0x69,0x2b,0x69,0x29,0x25,0x69,0x2b,0x72,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x30,0x28,0x72,0x2c,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x72,0x2c,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x65,0x2c,0x74,0x29,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x30,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x69,0x66,0x28,0x21,0x47,0x75,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x74,0x2b,0x22,0x20,0x69,0x73,0x20,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x20,0x6f,0x66,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x5b,0x22,0x2b,0x72,0x2b,0x22,0x2c,0x22,0x2b,0x65,0x2b,0x22,0x29,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x47,0x75,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x2c,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x28,0x74,0x3c,0x72,0x7c,0x7c,0x74,0x3e,0x65,0x7c,0x7c,0x6e,0x26,0x26,0x74,0x3d,0x3d,0x3d,0x65,0x7c,0x7c,0x69,0x26,0x26,0x74,0x3d,0x3d,0x3d,0x72,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4c,0x30,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x74,0x3f,0x22,0x28,0x22,0x3a,0x22,0x5b,0x22,0x29,0x2b,0x72,0x2b,0x22,0x2c,0x22,0x2b,0x65,0x2b,0x28,0x69,0x3f,0x22,0x29,0x22,0x3a,0x22,0x5d,0x22,0x29,0x7d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x52,0x28,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x76,0x61,0x72,0x20,0x6e,0x3d,0x4c,0x30,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x72,0x2c,0x65,0x2c,0x74,0x2c,0x69,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x77,0x72,0x61,0x70,0x3a,0x44,0x30,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x72,0x2c,0x65,0x29,0x2c,0x6c,0x69,0x6d,0x69,0x74,0x3a,0x71,0x30,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x72,0x2c,0x65,0x29,0x2c,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x24,0x30,0x28,0x72,0x2c,0x65,0x2c,0x61,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x2c,0x74,0x65,0x73,0x74,0x3a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x47,0x75,0x28,0x72,0x2c,0x65,0x2c,0x61,0x2c,0x74,0x2c,0x69,0x29,0x7d,0x2c,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3a,0x6e,0x2c,0x6e,0x61,0x6d,0x65,0x3a,0x6e,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6a,0x30,0x3d,0x78,0x28,0x28,0x68,0x4c,0x2c,0x46,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x51,0x75,0x3d,0x24,0x73,0x28,0x29,0x2c,0x6d,0x52,0x3d,0x4e,0x30,0x28,0x29,0x2c,0x67,0x52,0x3d,0x78,0x72,0x28,0x29,0x2c,0x79,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x62,0x52,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x42,0x30,0x3d,0x2f,0x74,0x6f,0x70,0x7c,0x6c,0x65,0x66,0x74,0x7c,0x72,0x69,0x67,0x68,0x74,0x7c,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2f,0x67,0x69,0x2c,0x77,0x74,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x79,0x52,0x7b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x51,0x75,0x28,0x65,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x69,0x66,0x28,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x69,0x66,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x29,0x7b,0x69,0x66,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x57,0x65,0x62,0x6b,0x69,0x74,0x28,0x6e,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x65,0x6c,0x73,0x65,0x20,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x2c,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x2b,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x69,0x72,0x73,0x74,0x28,0x65,0x2c,0x2e,0x2e,0x2e,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x3d,0x3e,0x6e,0x3d,0x3d,0x3d,0x22,0x20,0x22,0x3f,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6e,0x7d,0x3a,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6e,0x7d,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x55,0x6e,0x69,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x60,0x24,0x7b,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x65,0x29,0x2f,0x74,0x2a,0x33,0x36,0x30,0x7d,0x64,0x65,0x67,0x60,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x21,0x65,0x5b,0x30,0x5d,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x69,0x66,0x28,0x2f,0x2d,0x3f,0x5c,0x64,0x2b,0x28,0x2e,0x5c,0x64,0x2b,0x29,0x3f,0x67,0x72,0x61,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x55,0x6e,0x69,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x34,0x30,0x30,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x2f,0x2d,0x3f,0x5c,0x64,0x2b,0x28,0x2e,0x5c,0x64,0x2b,0x29,0x3f,0x72,0x61,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x55,0x6e,0x69,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x32,0x2a,0x4d,0x61,0x74,0x68,0x2e,0x50,0x49,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x2f,0x2d,0x3f,0x5c,0x64,0x2b,0x28,0x2e,0x5c,0x64,0x2b,0x29,0x3f,0x74,0x75,0x72,0x6e,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x55,0x6e,0x69,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x31,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x64,0x65,0x67,0x22,0x29,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x74,0x3d,0x6d,0x52,0x2e,0x77,0x72,0x61,0x70,0x28,0x30,0x2c,0x33,0x36,0x30,0x2c,0x74,0x29,0x2c,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x60,0x24,0x7b,0x74,0x7d,0x64,0x65,0x67,0x60,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x30,0x64,0x65,0x67,0x22,0x3f,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x69,0x72,0x73,0x74,0x28,0x65,0x2c,0x22,0x74,0x6f,0x22,0x2c,0x22,0x20,0x22,0x2c,0x22,0x74,0x6f,0x70,0x22,0x29,0x3a,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x39,0x30,0x64,0x65,0x67,0x22,0x3f,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x69,0x72,0x73,0x74,0x28,0x65,0x2c,0x22,0x74,0x6f,0x22,0x2c,0x22,0x20,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x29,0x3a,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x31,0x38,0x30,0x64,0x65,0x67,0x22,0x3f,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x69,0x72,0x73,0x74,0x28,0x65,0x2c,0x22,0x74,0x6f,0x22,0x2c,0x22,0x20,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x29,0x3a,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x32,0x37,0x30,0x64,0x65,0x67,0x22,0x26,0x26,0x28,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x46,0x69,0x72,0x73,0x74,0x28,0x65,0x2c,0x22,0x74,0x6f,0x22,0x2c,0x22,0x20,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x22,0x29,0x29,0x2c,0x65,0x7d,0x6e,0x65,0x77,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x6f,0x22,0x7c,0x7c,0x28,0x42,0x30,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x3d,0x30,0x2c,0x21,0x42,0x30,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3b,0x65,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x74,0x6f,0x22,0x7d,0x2c,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x20,0x22,0x7d,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x3d,0x32,0x3b,0x74,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x65,0x5b,0x74,0x5d,0x2e,0x74,0x79,0x70,0x65,0x21,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x3b,0x74,0x2b,0x2b,0x29,0x65,0x5b,0x74,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x28,0x65,0x5b,0x74,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x76,0x65,0x72,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x5b,0x74,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x7d,0x69,0x73,0x52,0x61,0x64,0x69,0x61,0x6c,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x26,0x26,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x74,0x3d,0x22,0x61,0x74,0x22,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x22,0x26,0x26,0x69,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x22,0x29,0x74,0x3d,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x61,0x66,0x74,0x65,0x72,0x22,0x26,0x26,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x69,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x74,0x3d,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x22,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x26,0x26,0x28,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x74,0x6f,0x22,0x3f,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x78,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x3a,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x64,0x65,0x67,0x22,0x29,0x3f,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x78,0x41,0x6e,0x67,0x6c,0x65,0x28,0x65,0x29,0x3a,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x52,0x61,0x64,0x69,0x61,0x6c,0x28,0x65,0x29,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x78,0x52,0x61,0x64,0x69,0x61,0x6c,0x28,0x65,0x29,0x29,0x2c,0x65,0x7d,0x66,0x69,0x78,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x32,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x7b,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x76,0x65,0x72,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x7d,0x7d,0x66,0x69,0x78,0x41,0x6e,0x67,0x6c,0x65,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x74,0x3d,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x74,0x29,0x2c,0x74,0x3d,0x4d,0x61,0x74,0x68,0x2e,0x61,0x62,0x73,0x28,0x34,0x35,0x30,0x2d,0x74,0x29,0x25,0x33,0x36,0x30,0x2c,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x72,0x6f,0x75,0x6e,0x64,0x46,0x6c,0x6f,0x61,0x74,0x28,0x74,0x2c,0x33,0x29,0x2c,0x65,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x60,0x24,0x7b,0x74,0x7d,0x64,0x65,0x67,0x60,0x7d,0x66,0x69,0x78,0x52,0x61,0x64,0x69,0x61,0x6c,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x2c,0x69,0x3d,0x5b,0x5d,0x2c,0x6e,0x2c,0x61,0x2c,0x73,0x2c,0x6f,0x2c,0x6c,0x3b,0x66,0x6f,0x72,0x28,0x6f,0x3d,0x30,0x3b,0x6f,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x32,0x3b,0x6f,0x2b,0x2b,0x29,0x69,0x66,0x28,0x6e,0x3d,0x65,0x5b,0x6f,0x5d,0x2c,0x61,0x3d,0x65,0x5b,0x6f,0x2b,0x31,0x5d,0x2c,0x73,0x3d,0x65,0x5b,0x6f,0x2b,0x32,0x5d,0x2c,0x6e,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x26,0x26,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x61,0x74,0x22,0x26,0x26,0x73,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x70,0x61,0x63,0x65,0x22,0x29,0x7b,0x6c,0x3d,0x6f,0x2b,0x33,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3b,0x66,0x6f,0x72,0x28,0x6f,0x3d,0x6c,0x3b,0x6f,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x6f,0x2b,0x2b,0x29,0x69,0x66,0x28,0x65,0x5b,0x6f,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x29,0x7b,0x63,0x3d,0x65,0x5b,0x6f,0x5d,0x3b,0x62,0x72,0x65,0x61,0x6b,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x5b,0x6f,0x5d,0x29,0x3b,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x6f,0x2c,0x2e,0x2e,0x2e,0x69,0x2c,0x63,0x2c,0x2e,0x2e,0x2e,0x74,0x29,0x7d,0x72,0x65,0x76,0x65,0x72,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x5d,0x7c,0x7c,0x65,0x7d,0x72,0x6f,0x75,0x6e,0x64,0x46,0x6c,0x6f,0x61,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x65,0x2e,0x74,0x6f,0x46,0x69,0x78,0x65,0x64,0x28,0x74,0x29,0x29,0x7d,0x6f,0x6c,0x64,0x57,0x65,0x62,0x6b,0x69,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x7b,0x6e,0x6f,0x64,0x65,0x73,0x3a,0x74,0x7d,0x3d,0x65,0x2c,0x69,0x3d,0x51,0x75,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x21,0x3d,0x3d,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x7c,0x7c,0x74,0x5b,0x30,0x5d,0x26,0x26,0x74,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x64,0x65,0x67,0x22,0x29,0x7c,0x7c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x70,0x78,0x22,0x29,0x7c,0x7c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x63,0x6f,0x72,0x6e,0x65,0x72,0x22,0x29,0x7c,0x7c,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x73,0x69,0x64,0x65,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x5b,0x5b,0x5d,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x74,0x29,0x6e,0x5b,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x29,0x2c,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x26,0x26,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x5d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x73,0x28,0x6e,0x29,0x2c,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x6e,0x29,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x3d,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x61,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x22,0x7d,0x2c,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x44,0x69,0x76,0x28,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x29,0x29,0x2c,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x21,0x30,0x7d,0x6f,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x44,0x69,0x76,0x28,0x65,0x5b,0x30,0x5d,0x29,0x3b,0x69,0x66,0x28,0x65,0x5b,0x30,0x5d,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x21,0x3d,0x3d,0x22,0x74,0x6f,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x77,0x74,0x2e,0x6f,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x7d,0x2c,0x74,0x5d,0x29,0x3b,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x61,0x20,0x6f,0x66,0x20,0x65,0x5b,0x30,0x5d,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x29,0x61,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x69,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x3b,0x69,0x3d,0x69,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x77,0x74,0x2e,0x6f,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x69,0x5d,0x7c,0x7c,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x5b,0x30,0x5d,0x3d,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6e,0x7d,0x2c,0x74,0x5d,0x2c,0x65,0x5b,0x30,0x5d,0x7d,0x7d,0x63,0x6c,0x6f,0x6e,0x65,0x44,0x69,0x76,0x28,0x65,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x65,0x29,0x69,0x66,0x28,0x74,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x64,0x69,0x76,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x22,0x2c,0x22,0x2c,0x61,0x66,0x74,0x65,0x72,0x3a,0x22,0x20,0x22,0x7d,0x7d,0x63,0x6f,0x6c,0x6f,0x72,0x53,0x74,0x6f,0x70,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x5b,0x5d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x2c,0x61,0x3d,0x65,0x5b,0x69,0x5d,0x2c,0x73,0x3b,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x30,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x51,0x75,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x61,0x5b,0x30,0x5d,0x29,0x3b,0x61,0x5b,0x31,0x5d,0x26,0x26,0x61,0x5b,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x3f,0x6e,0x3d,0x61,0x5b,0x31,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3a,0x61,0x5b,0x32,0x5d,0x26,0x26,0x61,0x5b,0x32,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x77,0x6f,0x72,0x64,0x22,0x26,0x26,0x28,0x6e,0x3d,0x61,0x5b,0x32,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6c,0x3b,0x69,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x28,0x21,0x6e,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x30,0x25,0x22,0x29,0x3f,0x6c,0x3d,0x60,0x66,0x72,0x6f,0x6d,0x28,0x24,0x7b,0x6f,0x7d,0x29,0x60,0x3a,0x69,0x3d,0x3d,0x3d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x26,0x26,0x28,0x21,0x6e,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x31,0x30,0x30,0x25,0x22,0x29,0x3f,0x6c,0x3d,0x60,0x74,0x6f,0x28,0x24,0x7b,0x6f,0x7d,0x29,0x60,0x3a,0x6e,0x3f,0x6c,0x3d,0x60,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x74,0x6f,0x70,0x28,0x24,0x7b,0x6e,0x7d,0x2c,0x20,0x24,0x7b,0x6f,0x7d,0x29,0x60,0x3a,0x6c,0x3d,0x60,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x74,0x6f,0x70,0x28,0x24,0x7b,0x6f,0x7d,0x29,0x60,0x3b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x61,0x5b,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3b,0x65,0x5b,0x69,0x5d,0x3d,0x5b,0x7b,0x74,0x79,0x70,0x65,0x3a,0x22,0x77,0x6f,0x72,0x64,0x22,0x2c,0x76,0x61,0x6c,0x75,0x65,0x3a,0x6c,0x7d,0x5d,0x2c,0x63,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x76,0x22,0x26,0x26,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x22,0x2c,0x22,0x26,0x26,0x28,0x73,0x3d,0x65,0x5b,0x69,0x5d,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x29,0x29,0x2c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7b,0x69,0x66,0x28,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x3f,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x22,0x3a,0x22,0x72,0x61,0x64,0x69,0x61,0x6c,0x22,0x2c,0x69,0x3d,0x22,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x6e,0x3d,0x62,0x52,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x60,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x28,0x24,0x7b,0x74,0x7d,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x7c,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x5c,0x5c,0x28,0x5c,0x5c,0x73,0x2a,0x24,0x7b,0x74,0x7d,0x29,0x60,0x2c,0x21,0x31,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x67,0x52,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x65,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x69,0x2c,0x6e,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3b,0x69,0x66,0x28,0x69,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6d,0x61,0x73,0x6b,0x22,0x29,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x69,0x3d,0x3d,0x3d,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x7c,0x7c,0x69,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x29,0x7b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x6f,0x6c,0x64,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x77,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x2c,0x22,0x72,0x65,0x70,0x65,0x61,0x74,0x69,0x6e,0x67,0x2d,0x72,0x61,0x64,0x69,0x61,0x6c,0x2d,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x22,0x5d,0x3b,0x77,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x7b,0x74,0x6f,0x70,0x3a,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x6c,0x65,0x66,0x74,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x22,0x74,0x6f,0x70,0x22,0x2c,0x72,0x69,0x67,0x68,0x74,0x3a,0x22,0x6c,0x65,0x66,0x74,0x22,0x7d,0x3b,0x77,0x74,0x2e,0x6f,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x7b,0x74,0x6f,0x70,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x6c,0x65,0x66,0x74,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x72,0x69,0x67,0x68,0x74,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x22,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x22,0x74,0x6f,0x70,0x20,0x6c,0x65,0x66,0x74,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3a,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x6c,0x65,0x66,0x74,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x74,0x6f,0x70,0x22,0x2c,0x22,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3a,0x22,0x72,0x69,0x67,0x68,0x74,0x20,0x74,0x6f,0x70,0x2c,0x20,0x6c,0x65,0x66,0x74,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x7d,0x3b,0x46,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x77,0x74,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x30,0x3d,0x78,0x28,0x28,0x6d,0x4c,0x2c,0x55,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x52,0x3d,0x78,0x72,0x28,0x29,0x2c,0x76,0x52,0x3d,0x48,0x65,0x28,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x30,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x60,0x28,0x5e,0x7c,0x5b,0x5c,0x5c,0x73,0x2c,0x28,0x5d,0x29,0x28,0x24,0x7b,0x72,0x7d,0x28,0x24,0x7c,0x5b,0x5c,0x5c,0x73,0x29,0x2c,0x5d,0x29,0x29,0x60,0x2c,0x22,0x67,0x69,0x22,0x29,0x7d,0x76,0x61,0x72,0x20,0x59,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x76,0x52,0x7b,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x7c,0x7c,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x3d,0x7a,0x30,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x43,0x61,0x63,0x68,0x65,0x7d,0x69,0x73,0x53,0x74,0x72,0x65,0x74,0x63,0x68,0x28,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6c,0x6c,0x22,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x53,0x74,0x72,0x65,0x74,0x63,0x68,0x28,0x29,0x3f,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x2c,0x22,0x24,0x31,0x2d,0x6d,0x6f,0x7a,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x24,0x33,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x53,0x74,0x72,0x65,0x74,0x63,0x68,0x28,0x29,0x3f,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x2c,0x22,0x24,0x31,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x24,0x33,0x22,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x53,0x74,0x72,0x65,0x74,0x63,0x68,0x28,0x29,0x26,0x26,0x28,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x74,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x28,0x74,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x29,0x29,0x2c,0x6e,0x65,0x77,0x20,0x77,0x52,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x74,0x2c,0x74,0x2c,0x7a,0x30,0x28,0x74,0x29,0x29,0x7d,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x69,0x66,0x28,0x21,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x26,0x26,0x74,0x21,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x65,0x72,0x2e,0x61,0x64,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x59,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x6d,0x61,0x78,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x66,0x69,0x6c,0x6c,0x22,0x2c,0x22,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x2c,0x22,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x22,0x5d,0x3b,0x55,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x59,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x47,0x30,0x3d,0x78,0x28,0x28,0x67,0x4c,0x2c,0x57,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x48,0x30,0x3d,0x78,0x72,0x28,0x29,0x2c,0x78,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x4b,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x78,0x52,0x7b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3f,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x2c,0x22,0x24,0x31,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x29,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x67,0x65,0x78,0x70,0x28,0x29,0x2c,0x22,0x24,0x31,0x2d,0x6d,0x6f,0x7a,0x2d,0x63,0x72,0x69,0x73,0x70,0x2d,0x65,0x64,0x67,0x65,0x73,0x22,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x3f,0x6e,0x65,0x77,0x20,0x48,0x30,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74,0x22,0x29,0x3a,0x65,0x3d,0x3d,0x3d,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x22,0x3f,0x6e,0x65,0x77,0x20,0x48,0x30,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x22,0x2d,0x6d,0x6f,0x7a,0x2d,0x63,0x72,0x69,0x73,0x70,0x2d,0x65,0x64,0x67,0x65,0x73,0x22,0x29,0x3a,0x73,0x75,0x70,0x65,0x72,0x2e,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7d,0x7d,0x3b,0x4b,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x70,0x69,0x78,0x65,0x6c,0x61,0x74,0x65,0x64,0x22,0x5d,0x3b,0x57,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4b,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x59,0x30,0x3d,0x78,0x28,0x28,0x79,0x4c,0x2c,0x51,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x58,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x6b,0x52,0x7b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x73,0x75,0x70,0x65,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x28,0x69,0x3d,0x69,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x28,0x22,0x5b,0x5e,0x22,0x5d,0x2b,0x22,0x7c,0x27,0x5b,0x5e,0x27,0x5d,0x2b,0x27,0x29,0x28,0x5c,0x73,0x2b,0x5c,0x64,0x2b,0x5c,0x77,0x29,0x2f,0x67,0x69,0x2c,0x22,0x75,0x72,0x6c,0x28,0x24,0x31,0x29,0x24,0x32,0x22,0x29,0x29,0x2c,0x69,0x7d,0x7d,0x3b,0x58,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x69,0x6d,0x61,0x67,0x65,0x2d,0x73,0x65,0x74,0x22,0x5d,0x3b,0x51,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x58,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x58,0x30,0x3d,0x78,0x28,0x28,0x62,0x4c,0x2c,0x4b,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x53,0x52,0x3d,0x24,0x65,0x28,0x29,0x2e,0x6c,0x69,0x73,0x74,0x2c,0x41,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x4a,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x41,0x52,0x7b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x52,0x2e,0x73,0x70,0x61,0x63,0x65,0x28,0x65,0x29,0x2e,0x6d,0x61,0x70,0x28,0x69,0x3d,0x3e,0x7b,0x69,0x66,0x28,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x31,0x29,0x21,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2b,0x22,0x28,0x22,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x69,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x29,0x22,0x29,0x2c,0x61,0x3d,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6e,0x2b,0x31,0x29,0x2c,0x73,0x3d,0x69,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x31,0x2c,0x6e,0x29,0x3b,0x69,0x66,0x28,0x74,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x73,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x5c,0x64,0x2a,0x2e,0x3f,0x5c,0x64,0x2b,0x25,0x3f,0x2f,0x29,0x3b,0x6f,0x3f,0x28,0x73,0x3d,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x6f,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x73,0x2b,0x3d,0x60,0x2c,0x20,0x24,0x7b,0x6f,0x5b,0x30,0x5d,0x7d,0x60,0x29,0x3a,0x73,0x2b,0x3d,0x22,0x2c,0x20,0x30,0x2e,0x35,0x22,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x2b,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2b,0x22,0x28,0x22,0x2b,0x73,0x2b,0x22,0x29,0x22,0x2b,0x61,0x7d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x7d,0x7d,0x3b,0x4a,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x63,0x72,0x6f,0x73,0x73,0x2d,0x66,0x61,0x64,0x65,0x22,0x5d,0x3b,0x4b,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4a,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x5a,0x30,0x3d,0x78,0x28,0x28,0x77,0x4c,0x2c,0x4a,0x30,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x43,0x52,0x3d,0x50,0x65,0x28,0x29,0x2c,0x5f,0x52,0x3d,0x78,0x72,0x28,0x29,0x2c,0x45,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x5a,0x75,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x45,0x52,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x29,0x3b,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2d,0x66,0x6c,0x65,0x78,0x22,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x66,0x6c,0x65,0x78,0x22,0x29,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x2c,0x69,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x74,0x2c,0x65,0x5d,0x3d,0x43,0x52,0x28,0x65,0x29,0x2c,0x74,0x3d,0x3d,0x3d,0x32,0x30,0x30,0x39,0x3f,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x6c,0x65,0x78,0x22,0x3f,0x69,0x3d,0x22,0x62,0x6f,0x78,0x22,0x3a,0x69,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6f,0x78,0x22,0x3a,0x74,0x3d,0x3d,0x3d,0x32,0x30,0x31,0x32,0x3f,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x6c,0x65,0x78,0x22,0x3f,0x69,0x3d,0x22,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x22,0x3a,0x69,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x22,0x3a,0x74,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6e,0x61,0x6c,0x22,0x26,0x26,0x28,0x69,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x2c,0x65,0x2b,0x69,0x7d,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x74,0x29,0x7d,0x6f,0x6c,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x3b,0x69,0x66,0x28,0x21,0x21,0x74,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x5f,0x52,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x74,0x29,0x7d,0x7d,0x3b,0x5a,0x75,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2d,0x66,0x6c,0x65,0x78,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x66,0x6c,0x65,0x78,0x22,0x5d,0x3b,0x4a,0x30,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x5a,0x75,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x74,0x76,0x3d,0x78,0x28,0x28,0x76,0x4c,0x2c,0x65,0x76,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4f,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x65,0x66,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x4f,0x52,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x29,0x3b,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2d,0x67,0x72,0x69,0x64,0x22,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x67,0x72,0x69,0x64,0x22,0x29,0x7d,0x63,0x68,0x65,0x63,0x6b,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x26,0x26,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3d,0x3d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x7d,0x3b,0x65,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2d,0x67,0x72,0x69,0x64,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x67,0x72,0x69,0x64,0x22,0x5d,0x3b,0x65,0x76,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x65,0x66,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x69,0x76,0x3d,0x78,0x28,0x28,0x78,0x4c,0x2c,0x72,0x76,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x54,0x52,0x3d,0x48,0x65,0x28,0x29,0x2c,0x74,0x66,0x3d,0x63,0x6c,0x61,0x73,0x73,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x54,0x52,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x29,0x7b,0x73,0x75,0x70,0x65,0x72,0x28,0x65,0x2c,0x74,0x29,0x3b,0x65,0x3d,0x3d,0x3d,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x74,0x68,0x69,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x29,0x7d,0x7d,0x3b,0x74,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x3d,0x5b,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x3b,0x72,0x76,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x74,0x66,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6f,0x76,0x3d,0x78,0x28,0x28,0x6b,0x4c,0x2c,0x61,0x76,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x76,0x3d,0x4c,0x69,0x28,0x29,0x2c,0x7a,0x3d,0x6a,0x28,0x29,0x2c,0x73,0x76,0x3d,0x46,0x79,0x28,0x29,0x2c,0x52,0x52,0x3d,0x6e,0x62,0x28,0x29,0x2c,0x50,0x52,0x3d,0x73,0x75,0x28,0x29,0x2c,0x49,0x52,0x3d,0x53,0x62,0x28,0x29,0x2c,0x72,0x66,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x50,0x72,0x3d,0x6b,0x72,0x28,0x29,0x2c,0x44,0x52,0x3d,0x50,0x62,0x28,0x29,0x2c,0x75,0x74,0x3d,0x48,0x65,0x28,0x29,0x2c,0x49,0x72,0x3d,0x5f,0x65,0x28,0x29,0x2c,0x71,0x52,0x3d,0x44,0x62,0x28,0x29,0x2c,0x24,0x52,0x3d,0x24,0x62,0x28,0x29,0x2c,0x4c,0x52,0x3d,0x4d,0x62,0x28,0x29,0x2c,0x4d,0x52,0x3d,0x42,0x62,0x28,0x29,0x2c,0x4e,0x52,0x3d,0x56,0x62,0x28,0x29,0x2c,0x42,0x52,0x3d,0x47,0x62,0x28,0x29,0x2c,0x46,0x52,0x3d,0x59,0x62,0x28,0x29,0x2c,0x6a,0x52,0x3d,0x58,0x62,0x28,0x29,0x2c,0x7a,0x52,0x3d,0x5a,0x62,0x28,0x29,0x2c,0x55,0x52,0x3d,0x74,0x77,0x28,0x29,0x2c,0x56,0x52,0x3d,0x69,0x77,0x28,0x29,0x2c,0x48,0x52,0x3d,0x73,0x77,0x28,0x29,0x2c,0x57,0x52,0x3d,0x6f,0x77,0x28,0x29,0x2c,0x47,0x52,0x3d,0x75,0x77,0x28,0x29,0x2c,0x51,0x52,0x3d,0x63,0x77,0x28,0x29,0x2c,0x59,0x52,0x3d,0x68,0x77,0x28,0x29,0x2c,0x4b,0x52,0x3d,0x67,0x77,0x28,0x29,0x2c,0x58,0x52,0x3d,0x77,0x77,0x28,0x29,0x2c,0x4a,0x52,0x3d,0x78,0x77,0x28,0x29,0x2c,0x5a,0x52,0x3d,0x53,0x77,0x28,0x29,0x2c,0x65,0x35,0x3d,0x5f,0x77,0x28,0x29,0x2c,0x74,0x35,0x3d,0x4f,0x77,0x28,0x29,0x2c,0x72,0x35,0x3d,0x50,0x77,0x28,0x29,0x2c,0x69,0x35,0x3d,0x44,0x77,0x28,0x29,0x2c,0x6e,0x35,0x3d,0x24,0x77,0x28,0x29,0x2c,0x73,0x35,0x3d,0x4d,0x77,0x28,0x29,0x2c,0x61,0x35,0x3d,0x42,0x77,0x28,0x29,0x2c,0x6f,0x35,0x3d,0x7a,0x77,0x28,0x29,0x2c,0x6c,0x35,0x3d,0x56,0x77,0x28,0x29,0x2c,0x75,0x35,0x3d,0x57,0x77,0x28,0x29,0x2c,0x66,0x35,0x3d,0x51,0x77,0x28,0x29,0x2c,0x63,0x35,0x3d,0x4b,0x77,0x28,0x29,0x2c,0x70,0x35,0x3d,0x4a,0x77,0x28,0x29,0x2c,0x64,0x35,0x3d,0x65,0x30,0x28,0x29,0x2c,0x68,0x35,0x3d,0x69,0x30,0x28,0x29,0x2c,0x6d,0x35,0x3d,0x73,0x30,0x28,0x29,0x2c,0x67,0x35,0x3d,0x6f,0x30,0x28,0x29,0x2c,0x79,0x35,0x3d,0x75,0x30,0x28,0x29,0x2c,0x62,0x35,0x3d,0x63,0x30,0x28,0x29,0x2c,0x77,0x35,0x3d,0x68,0x30,0x28,0x29,0x2c,0x76,0x35,0x3d,0x67,0x30,0x28,0x29,0x2c,0x78,0x35,0x3d,0x62,0x30,0x28,0x29,0x2c,0x6b,0x35,0x3d,0x78,0x30,0x28,0x29,0x2c,0x53,0x35,0x3d,0x53,0x30,0x28,0x29,0x2c,0x41,0x35,0x3d,0x43,0x30,0x28,0x29,0x2c,0x43,0x35,0x3d,0x4f,0x30,0x28,0x29,0x2c,0x5f,0x35,0x3d,0x52,0x30,0x28,0x29,0x2c,0x45,0x35,0x3d,0x49,0x30,0x28,0x29,0x2c,0x4f,0x35,0x3d,0x6a,0x30,0x28,0x29,0x2c,0x54,0x35,0x3d,0x56,0x30,0x28,0x29,0x2c,0x52,0x35,0x3d,0x47,0x30,0x28,0x29,0x2c,0x50,0x35,0x3d,0x59,0x30,0x28,0x29,0x2c,0x49,0x35,0x3d,0x58,0x30,0x28,0x29,0x2c,0x44,0x35,0x3d,0x5a,0x30,0x28,0x29,0x2c,0x71,0x35,0x3d,0x74,0x76,0x28,0x29,0x2c,0x24,0x35,0x3d,0x69,0x76,0x28,0x29,0x3b,0x50,0x72,0x2e,0x68,0x61,0x63,0x6b,0x28,0x71,0x52,0x29,0x3b,0x50,0x72,0x2e,0x68,0x61,0x63,0x6b,0x28,0x24,0x52,0x29,0x3b,0x50,0x72,0x2e,0x68,0x61,0x63,0x6b,0x28,0x4c,0x52,0x29,0x3b,0x50,0x72,0x2e,0x68,0x61,0x63,0x6b,0x28,0x4d,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x4e,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x42,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x46,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x6a,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x7a,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x55,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x56,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x48,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x57,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x47,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x51,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x59,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x4b,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x58,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x4a,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x5a,0x52,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x65,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x74,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x72,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x69,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x6e,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x73,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x61,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x6f,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x6c,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x75,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x66,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x63,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x70,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x64,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x68,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x6d,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x67,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x79,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x62,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x77,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x76,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x78,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x6b,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x53,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x41,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x43,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x5f,0x35,0x29,0x3b,0x7a,0x2e,0x68,0x61,0x63,0x6b,0x28,0x45,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x4f,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x54,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x52,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x50,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x49,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x44,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x71,0x35,0x29,0x3b,0x75,0x74,0x2e,0x68,0x61,0x63,0x6b,0x28,0x24,0x35,0x29,0x3b,0x76,0x61,0x72,0x20,0x6e,0x66,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x2c,0x4e,0x69,0x3d,0x63,0x6c,0x61,0x73,0x73,0x7b,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2c,0x74,0x2c,0x69,0x3d,0x7b,0x7d,0x29,0x7b,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x3d,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3d,0x74,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3d,0x69,0x2c,0x5b,0x74,0x68,0x69,0x73,0x2e,0x61,0x64,0x64,0x2c,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5d,0x3d,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3d,0x6e,0x65,0x77,0x20,0x52,0x52,0x28,0x74,0x68,0x69,0x73,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x3d,0x6e,0x65,0x77,0x20,0x50,0x52,0x28,0x74,0x68,0x69,0x73,0x29,0x7d,0x63,0x6c,0x65,0x61,0x6e,0x65,0x72,0x28,0x29,0x7b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x6e,0x65,0x77,0x20,0x72,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x64,0x61,0x74,0x61,0x2c,0x5b,0x5d,0x29,0x3b,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x3d,0x6e,0x65,0x77,0x20,0x4e,0x69,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x2c,0x65,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x7d,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x61,0x64,0x64,0x3a,0x7b,0x7d,0x2c,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3a,0x7b,0x7d,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x69,0x6e,0x20,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x65,0x5b,0x69,0x5d,0x2c,0x61,0x3d,0x6e,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x6c,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x20,0x22,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x3a,0x60,0x24,0x7b,0x63,0x5b,0x30,0x5d,0x7d,0x20,0x24,0x7b,0x63,0x5b,0x31,0x5d,0x7d,0x60,0x2c,0x6e,0x6f,0x74,0x65,0x3a,0x63,0x5b,0x32,0x5d,0x7d,0x7d,0x29,0x2c,0x73,0x3d,0x61,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6c,0x3d,0x3e,0x6c,0x2e,0x6e,0x6f,0x74,0x65,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x60,0x24,0x7b,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x6c,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x29,0x7d,0x20,0x24,0x7b,0x6c,0x2e,0x6e,0x6f,0x74,0x65,0x7d,0x60,0x29,0x3b,0x73,0x3d,0x49,0x72,0x2e,0x75,0x6e,0x69,0x71,0x28,0x73,0x29,0x2c,0x61,0x3d,0x61,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6c,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x69,0x73,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x28,0x6c,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x6c,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x2e,0x6e,0x6f,0x74,0x65,0x3f,0x60,0x24,0x7b,0x63,0x7d,0x20,0x24,0x7b,0x6c,0x2e,0x6e,0x6f,0x74,0x65,0x7d,0x60,0x3a,0x63,0x7d,0x29,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x49,0x72,0x2e,0x75,0x6e,0x69,0x71,0x28,0x61,0x29,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x66,0x6c,0x65,0x78,0x62,0x6f,0x78,0x3d,0x3d,0x3d,0x22,0x6e,0x6f,0x2d,0x32,0x30,0x30,0x39,0x22,0x26,0x26,0x28,0x61,0x3d,0x61,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6c,0x3d,0x3e,0x21,0x6c,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x32,0x30,0x30,0x39,0x22,0x29,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x6e,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x3d,0x3e,0x74,0x68,0x69,0x73,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x28,0x6c,0x29,0x29,0x3b,0x6e,0x2e,0x6d,0x69,0x73,0x74,0x61,0x6b,0x65,0x73,0x26,0x26,0x28,0x6f,0x3d,0x6f,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x6e,0x2e,0x6d,0x69,0x73,0x74,0x61,0x6b,0x65,0x73,0x29,0x29,0x2c,0x6f,0x3d,0x6f,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x73,0x29,0x2c,0x6f,0x3d,0x49,0x72,0x2e,0x75,0x6e,0x69,0x71,0x28,0x6f,0x29,0x2c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3f,0x28,0x74,0x2e,0x61,0x64,0x64,0x5b,0x69,0x5d,0x3d,0x61,0x2c,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x26,0x26,0x28,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x69,0x5d,0x3d,0x6f,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6c,0x3d,0x3e,0x21,0x61,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6c,0x29,0x29,0x29,0x29,0x3a,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x69,0x5d,0x3d,0x6f,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x7d,0x73,0x6f,0x72,0x74,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x74,0x2c,0x69,0x29,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x6e,0x3d,0x49,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x74,0x65,0x28,0x74,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x61,0x3d,0x49,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x74,0x65,0x28,0x69,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x3d,0x3d,0x61,0x3f,0x69,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x61,0x2d,0x6e,0x7d,0x29,0x7d,0x70,0x72,0x65,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x5b,0x5d,0x2c,0x22,0x40,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x22,0x3a,0x6e,0x65,0x77,0x20,0x49,0x52,0x28,0x4e,0x69,0x2c,0x74,0x68,0x69,0x73,0x29,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x69,0x6e,0x20,0x65,0x2e,0x61,0x64,0x64,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x61,0x64,0x64,0x5b,0x6e,0x5d,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x40,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x29,0x74,0x5b,0x6e,0x5d,0x3d,0x6e,0x65,0x77,0x20,0x44,0x52,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x68,0x69,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x40,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x29,0x74,0x5b,0x6e,0x5d,0x3d,0x6e,0x65,0x77,0x20,0x73,0x76,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x68,0x69,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x5b,0x6e,0x5d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x74,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x50,0x72,0x2e,0x6c,0x6f,0x61,0x64,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x68,0x69,0x73,0x29,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x5b,0x6e,0x5d,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x69,0x66,0x28,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x75,0x74,0x2e,0x6c,0x6f,0x61,0x64,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x68,0x69,0x73,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x73,0x29,0x74,0x5b,0x6c,0x5d,0x7c,0x7c,0x28,0x74,0x5b,0x6c,0x5d,0x3d,0x7b,0x76,0x61,0x6c,0x75,0x65,0x73,0x3a,0x5b,0x5d,0x7d,0x29,0x2c,0x74,0x5b,0x6c,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x29,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x74,0x5b,0x6e,0x5d,0x26,0x26,0x74,0x5b,0x6e,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x7c,0x7c,0x5b,0x5d,0x3b,0x74,0x5b,0x6e,0x5d,0x3d,0x7a,0x2e,0x6c,0x6f,0x61,0x64,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x68,0x69,0x73,0x29,0x2c,0x74,0x5b,0x6e,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x6f,0x7d,0x7d,0x7d,0x6c,0x65,0x74,0x20,0x69,0x3d,0x7b,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x3a,0x5b,0x5d,0x7d,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x69,0x6e,0x20,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x5b,0x6e,0x5d,0x3b,0x69,0x66,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x5b,0x6e,0x5d,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x50,0x72,0x2e,0x6c,0x6f,0x61,0x64,0x28,0x6e,0x2c,0x61,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x69,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x2e,0x6f,0x6c,0x64,0x28,0x6f,0x29,0x29,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x40,0x6b,0x65,0x79,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x7c,0x7c,0x6e,0x3d,0x3d,0x3d,0x22,0x40,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x60,0x40,0x24,0x7b,0x73,0x7d,0x24,0x7b,0x6e,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x7d,0x60,0x3b,0x69,0x5b,0x6f,0x5d,0x3d,0x7b,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3a,0x21,0x30,0x7d,0x7d,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x40,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x22,0x29,0x69,0x5b,0x6e,0x5d,0x3d,0x6e,0x65,0x77,0x20,0x73,0x76,0x28,0x6e,0x2c,0x61,0x2c,0x74,0x68,0x69,0x73,0x29,0x3b,0x65,0x6c,0x73,0x65,0x7b,0x6c,0x65,0x74,0x20,0x73,0x3d,0x74,0x68,0x69,0x73,0x2e,0x64,0x61,0x74,0x61,0x5b,0x6e,0x5d,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x69,0x66,0x28,0x73,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6f,0x3d,0x75,0x74,0x2e,0x6c,0x6f,0x61,0x64,0x28,0x6e,0x2c,0x5b,0x5d,0x2c,0x74,0x68,0x69,0x73,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x6f,0x66,0x20,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x6f,0x2e,0x6f,0x6c,0x64,0x28,0x6c,0x29,0x3b,0x69,0x66,0x28,0x63,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x66,0x20,0x6f,0x66,0x20,0x73,0x29,0x69,0x5b,0x66,0x5d,0x7c,0x7c,0x28,0x69,0x5b,0x66,0x5d,0x3d,0x7b,0x7d,0x29,0x2c,0x69,0x5b,0x66,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x7c,0x7c,0x28,0x69,0x5b,0x66,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3d,0x5b,0x5d,0x29,0x2c,0x69,0x5b,0x66,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x29,0x7d,0x7d,0x65,0x6c,0x73,0x65,0x20,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6f,0x20,0x6f,0x66,0x20,0x61,0x29,0x7b,0x6c,0x65,0x74,0x20,0x6c,0x3d,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x63,0x6c,0x28,0x6e,0x29,0x2e,0x6f,0x6c,0x64,0x28,0x6e,0x2c,0x6f,0x29,0x3b,0x69,0x66,0x28,0x6e,0x3d,0x3d,0x3d,0x22,0x61,0x6c,0x69,0x67,0x6e,0x2d,0x73,0x65,0x6c,0x66,0x22,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x5b,0x6e,0x5d,0x26,0x26,0x74,0x5b,0x6e,0x5d,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3b,0x69,0x66,0x28,0x63,0x29,0x7b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x32,0x30,0x30,0x39,0x22,0x26,0x26,0x63,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x22,0x26,0x26,0x63,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x77,0x65,0x62,0x6b,0x69,0x74,0x2d,0x20,0x32,0x30,0x30,0x39,0x22,0x29,0x29,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x7d,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x63,0x20,0x6f,0x66,0x20,0x6c,0x29,0x69,0x5b,0x63,0x5d,0x7c,0x7c,0x28,0x69,0x5b,0x63,0x5d,0x3d,0x7b,0x7d,0x29,0x2c,0x69,0x5b,0x63,0x5d,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3d,0x21,0x30,0x7d,0x7d,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x5b,0x74,0x2c,0x69,0x5d,0x7d,0x64,0x65,0x63,0x6c,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x66,0x2e,0x68,0x61,0x73,0x28,0x65,0x29,0x7c,0x7c,0x6e,0x66,0x2e,0x73,0x65,0x74,0x28,0x65,0x2c,0x7a,0x2e,0x6c,0x6f,0x61,0x64,0x28,0x65,0x29,0x29,0x2c,0x6e,0x66,0x2e,0x67,0x65,0x74,0x28,0x65,0x29,0x7d,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x76,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3d,0x3d,0x3d,0x22,0x66,0x6c,0x65,0x78,0x2d,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x26,0x26,0x28,0x74,0x3d,0x22,0x66,0x6c,0x65,0x78,0x2d,0x66,0x6c,0x6f,0x77,0x22,0x29,0x2c,0x74,0x7d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x63,0x6c,0x28,0x65,0x29,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x65,0x29,0x7d,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x3d,0x6e,0x76,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x29,0x2c,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x63,0x6c,0x28,0x65,0x29,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2c,0x74,0x29,0x7d,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x65,0x2c,0x74,0x29,0x7b,0x6c,0x65,0x74,0x20,0x69,0x3d,0x74,0x68,0x69,0x73,0x5b,0x65,0x5d,0x2c,0x6e,0x3d,0x69,0x5b,0x22,0x2a,0x22,0x5d,0x26,0x26,0x69,0x5b,0x22,0x2a,0x22,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x2c,0x61,0x3d,0x69,0x5b,0x74,0x5d,0x26,0x26,0x69,0x5b,0x74,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x26,0x26,0x61,0x3f,0x49,0x72,0x2e,0x75,0x6e,0x69,0x71,0x28,0x6e,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x61,0x29,0x29,0x3a,0x6e,0x7c,0x7c,0x61,0x7c,0x7c,0x5b,0x5d,0x7d,0x67,0x72,0x6f,0x75,0x70,0x28,0x65,0x29,0x7b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x69,0x3d,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x28,0x65,0x29,0x2c,0x7b,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x6e,0x7d,0x3d,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x61,0x3d,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x29,0x2c,0x73,0x3d,0x28,0x6f,0x2c,0x6c,0x29,0x3d,0x3e,0x7b,0x66,0x6f,0x72,0x28,0x69,0x2b,0x3d,0x6f,0x3b,0x69,0x3e,0x3d,0x30,0x26,0x26,0x69,0x3c,0x6e,0x3b,0x29,0x7b,0x6c,0x65,0x74,0x20,0x63,0x3d,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x69,0x66,0x28,0x63,0x2e,0x74,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x22,0x64,0x65,0x63,0x6c,0x22,0x29,0x7b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x2d,0x31,0x26,0x26,0x63,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x61,0x26,0x26,0x21,0x72,0x66,0x2e,0x77,0x69,0x74,0x68,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x7c,0x7c,0x74,0x68,0x69,0x73,0x2e,0x75,0x6e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x28,0x63,0x2e,0x70,0x72,0x6f,0x70,0x29,0x21,0x3d,0x3d,0x61,0x29,0x62,0x72,0x65,0x61,0x6b,0x3b,0x69,0x66,0x28,0x6c,0x28,0x63,0x29,0x3d,0x3d,0x3d,0x21,0x30,0x29,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x30,0x3b,0x69,0x66,0x28,0x6f,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x63,0x2e,0x70,0x72,0x6f,0x70,0x3d,0x3d,0x3d,0x61,0x26,0x26,0x21,0x72,0x66,0x2e,0x77,0x69,0x74,0x68,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x62,0x72,0x65,0x61,0x6b,0x7d,0x69,0x2b,0x3d,0x6f,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x21,0x31,0x7d,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x75,0x70,0x28,0x6f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x28,0x2d,0x31,0x2c,0x6f,0x29,0x7d,0x2c,0x64,0x6f,0x77,0x6e,0x28,0x6f,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x28,0x31,0x2c,0x6f,0x29,0x7d,0x7d,0x7d,0x7d,0x3b,0x61,0x76,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x4e,0x69,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x75,0x76,0x3d,0x78,0x28,0x28,0x53,0x4c,0x2c,0x6c,0x76,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x6c,0x76,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x22,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x62,0x61,0x63,0x6b,0x64,0x72,0x6f,0x70,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x73,0x61,0x66,0x61,0x72,0x69,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x20,0x31,0x31,0x34,0x22,0x5d,0x7d,0x2c,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x3a,0x7b,0x6d,0x69,0x73,0x74,0x61,0x6b,0x65,0x73,0x3a,0x5b,0x22,0x2d,0x6b,0x68,0x74,0x6d,0x6c,0x2d,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x75,0x73,0x65,0x72,0x2d,0x73,0x65,0x6c,0x65,0x63,0x74,0x2d,0x6e,0x6f,0x6e,0x65,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x73,0x61,0x66,0x61,0x72,0x69,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6c,0x69,0x70,0x2d,0x74,0x65,0x78,0x74,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x68,0x79,0x70,0x68,0x65,0x6e,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x73,0x61,0x66,0x61,0x72,0x69,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x66,0x69,0x6c,0x6c,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x69,0x6e,0x74,0x72,0x69,0x6e,0x73,0x69,0x63,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x66,0x69,0x6c,0x6c,0x2d,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x22,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x69,0x6e,0x74,0x72,0x69,0x6e,0x73,0x69,0x63,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x69,0x6e,0x74,0x72,0x69,0x6e,0x73,0x69,0x63,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x20,0x31,0x31,0x34,0x22,0x5d,0x7d,0x2c,0x22,0x66,0x69,0x74,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x2c,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x69,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x6d,0x61,0x78,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x72,0x6f,0x77,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x73,0x22,0x2c,0x22,0x67,0x72,0x69,0x64,0x2d,0x61,0x75,0x74,0x6f,0x2d,0x72,0x6f,0x77,0x73,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x69,0x6e,0x74,0x72,0x69,0x6e,0x73,0x69,0x63,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x66,0x69,0x72,0x65,0x66,0x6f,0x78,0x20,0x31,0x31,0x34,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x6c,0x69,0x6e,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x73,0x6b,0x69,0x70,0x2d,0x69,0x6e,0x6b,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x74,0x65,0x78,0x74,0x2d,0x73,0x69,0x7a,0x65,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x74,0x65,0x78,0x74,0x2d,0x73,0x69,0x7a,0x65,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x63,0x6c,0x69,0x70,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x65,0x70,0x65,0x61,0x74,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x6d,0x61,0x73,0x6b,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x73,0x69,0x7a,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x6f,0x75,0x74,0x73,0x65,0x74,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x77,0x69,0x64,0x74,0x68,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x6c,0x69,0x63,0x65,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x6d,0x61,0x73,0x6b,0x73,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x63,0x6c,0x69,0x70,0x2d,0x70,0x61,0x74,0x68,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x63,0x6c,0x69,0x70,0x2d,0x70,0x61,0x74,0x68,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x62,0x6f,0x78,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x62,0x72,0x65,0x61,0x6b,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x62,0x6f,0x78,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x62,0x72,0x65,0x61,0x6b,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x66,0x61,0x72,0x69,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x61,0x70,0x70,0x65,0x61,0x72,0x61,0x6e,0x63,0x65,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x69,0x6d,0x61,0x67,0x65,0x2d,0x73,0x65,0x74,0x22,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x63,0x75,0x72,0x73,0x6f,0x72,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x69,0x6d,0x61,0x67,0x65,0x2d,0x73,0x65,0x74,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x22,0x63,0x72,0x6f,0x73,0x73,0x2d,0x66,0x61,0x64,0x65,0x22,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x22,0x2c,0x22,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x22,0x6c,0x69,0x73,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x2c,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x2c,0x22,0x6d,0x61,0x73,0x6b,0x2d,0x69,0x6d,0x61,0x67,0x65,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x63,0x72,0x6f,0x73,0x73,0x2d,0x66,0x61,0x64,0x65,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x61,0x6e,0x64,0x5f,0x63,0x68,0x72,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x61,0x6e,0x64,0x5f,0x75,0x63,0x20,0x31,0x35,0x2e,0x35,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x2c,0x22,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x20,0x32,0x31,0x22,0x5d,0x7d,0x2c,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x3a,0x7b,0x70,0x72,0x6f,0x70,0x73,0x3a,0x5b,0x22,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2d,0x62,0x69,0x64,0x69,0x22,0x5d,0x2c,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2d,0x62,0x69,0x64,0x69,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x31,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x33,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x34,0x22,0x2c,0x22,0x69,0x6f,0x73,0x5f,0x73,0x61,0x66,0x20,0x31,0x36,0x2e,0x35,0x22,0x2c,0x22,0x73,0x61,0x66,0x61,0x72,0x69,0x20,0x31,0x36,0x2e,0x35,0x22,0x5d,0x7d,0x2c,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x3a,0x7b,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x3a,0x22,0x63,0x73,0x73,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x22,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x5b,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x30,0x39,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x33,0x22,0x2c,0x22,0x63,0x68,0x72,0x6f,0x6d,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x65,0x64,0x67,0x65,0x20,0x31,0x31,0x34,0x22,0x2c,0x22,0x6f,0x70,0x65,0x72,0x61,0x20,0x39,0x39,0x22,0x5d,0x7d,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x63,0x76,0x3d,0x78,0x28,0x28,0x41,0x4c,0x2c,0x66,0x76,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x66,0x76,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x7b,0x7d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6d,0x76,0x3d,0x78,0x28,0x28,0x43,0x4c,0x2c,0x68,0x76,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x76,0x61,0x72,0x20,0x4c,0x35,0x3d,0x47,0x6c,0x28,0x29,0x2c,0x7b,0x61,0x67,0x65,0x6e,0x74,0x73,0x3a,0x4d,0x35,0x7d,0x3d,0x28,0x54,0x73,0x28,0x29,0x2c,0x4f,0x73,0x29,0x2c,0x73,0x66,0x3d,0x5f,0x79,0x28,0x29,0x2c,0x4e,0x35,0x3d,0x4d,0x74,0x28,0x29,0x2c,0x42,0x35,0x3d,0x6f,0x76,0x28,0x29,0x2c,0x46,0x35,0x3d,0x75,0x76,0x28,0x29,0x2c,0x6a,0x35,0x3d,0x63,0x76,0x28,0x29,0x2c,0x70,0x76,0x3d,0x7b,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x4d,0x35,0x2c,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x3a,0x46,0x35,0x7d,0x2c,0x64,0x76,0x3d,0x60,0x0a,0x20,0x20,0x52,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x5c,0x60,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x5c,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x0a,0x20,0x20,0x55,0x73,0x65,0x20,0x5c,0x60,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x5c,0x60,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x5c,0x60,0x70,0x61,0x63,0x6b,0x61,0x67,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x5c,0x60,0x20,0x6f,0x72,0x20,0x5c,0x60,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x72,0x63,0x5c,0x60,0x20,0x66,0x69,0x6c,0x65,0x2e,0x0a,0x0a,0x20,0x20,0x55,0x73,0x69,0x6e,0x67,0x20,0x5c,0x60,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x5c,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6e,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x2e,0x20,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x63,0x61,0x6e,0x0a,0x20,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x42,0x61,0x62,0x65,0x6c,0x2c,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x2c,0x20,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x20,0x61,0x6e,0x64,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x74,0x6f,0x6f,0x6c,0x73,0x2e,0x0a,0x0a,0x20,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x72,0x65,0x61,0x6c,0x6c,0x79,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x72,0x65,0x6e,0x61,0x6d,0x65,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x5c,0x60,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x5c,0x60,0x2e,0x0a,0x0a,0x20,0x20,0x4c,0x65,0x61,0x72,0x6e,0x20,0x6d,0x6f,0x72,0x65,0x20,0x61,0x74,0x3a,0x0a,0x20,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x2f,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x23,0x72,0x65,0x61,0x64,0x6d,0x65,0x0a,0x20,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x77,0x69,0x74,0x74,0x65,0x72,0x2e,0x63,0x6f,0x6d,0x2f,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x0a,0x0a,0x60,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7a,0x35,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x61,0x70,0x70,0x6c,0x79,0x28,0x72,0x29,0x3d,0x3d,0x3d,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x5d,0x22,0x7d,0x76,0x61,0x72,0x20,0x61,0x66,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x55,0x35,0x28,0x72,0x2c,0x65,0x29,0x7b,0x65,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x21,0x3d,0x3d,0x30,0x26,0x26,0x28,0x65,0x2e,0x61,0x64,0x64,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x30,0x7c,0x7c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x65,0x2e,0x61,0x64,0x64,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3e,0x32,0x7c,0x7c,0x72,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x20,0x64,0x6f,0x20,0x6e,0x6f,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x61,0x6e,0x79,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x59,0x6f,0x75,0x20,0x64,0x6f,0x20,0x6e,0x6f,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x20,0x61,0x6e,0x79,0x6d,0x6f,0x72,0x65,0x2e,0x0a,0x43,0x68,0x65,0x63,0x6b,0x20,0x79,0x6f,0x75,0x72,0x20,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x79,0x6f,0x75,0x72,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x73,0x65,0x74,0x20,0x75,0x70,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x2e,0x0a,0x0a,0x20,0x20,0x4c,0x65,0x61,0x72,0x6e,0x20,0x6d,0x6f,0x72,0x65,0x20,0x61,0x74,0x3a,0x0a,0x20,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x2f,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x23,0x72,0x65,0x61,0x64,0x6d,0x65,0x0a,0x20,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x2f,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x23,0x72,0x65,0x61,0x64,0x6d,0x65,0x0a,0x0a,0x60,0x29,0x29,0x7d,0x68,0x76,0x2e,0x65,0x78,0x70,0x6f,0x72,0x74,0x73,0x3d,0x44,0x72,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x44,0x72,0x28,0x2e,0x2e,0x2e,0x72,0x29,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3b,0x69,0x66,0x28,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x7a,0x35,0x28,0x72,0x5b,0x30,0x5d,0x29,0x3f,0x28,0x65,0x3d,0x72,0x5b,0x30,0x5d,0x2c,0x72,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x3a,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x30,0x7c,0x7c,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x21,0x72,0x5b,0x30,0x5d,0x3f,0x72,0x3d,0x76,0x6f,0x69,0x64,0x20,0x30,0x3a,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3c,0x3d,0x32,0x26,0x26,0x28,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x5b,0x30,0x5d,0x29,0x7c,0x7c,0x21,0x72,0x5b,0x30,0x5d,0x29,0x3f,0x28,0x65,0x3d,0x72,0x5b,0x31,0x5d,0x2c,0x72,0x3d,0x72,0x5b,0x30,0x5d,0x29,0x3a,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x5b,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2d,0x31,0x5d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x28,0x65,0x3d,0x72,0x2e,0x70,0x6f,0x70,0x28,0x29,0x29,0x2c,0x65,0x7c,0x7c,0x28,0x65,0x3d,0x7b,0x7d,0x29,0x2c,0x65,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x43,0x68,0x61,0x6e,0x67,0x65,0x20,0x60,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x60,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x60,0x20,0x69,0x6e,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x22,0x29,0x3b,0x69,0x66,0x28,0x65,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x29,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x22,0x43,0x68,0x61,0x6e,0x67,0x65,0x20,0x60,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x60,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x60,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x60,0x20,0x69,0x6e,0x20,0x41,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x22,0x29,0x3b,0x65,0x2e,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x3f,0x72,0x3d,0x65,0x2e,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x6c,0x69,0x73,0x74,0x3a,0x65,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x26,0x26,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x21,0x3d,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x26,0x26,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x26,0x26,0x28,0x73,0x66,0x2e,0x72,0x65,0x64,0x3f,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x73,0x66,0x2e,0x72,0x65,0x64,0x28,0x64,0x76,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x60,0x5b,0x5e,0x60,0x5d,0x2b,0x60,0x2f,0x67,0x2c,0x6e,0x3d,0x3e,0x73,0x66,0x2e,0x79,0x65,0x6c,0x6c,0x6f,0x77,0x28,0x6e,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x2d,0x31,0x29,0x29,0x29,0x29,0x29,0x3a,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x64,0x76,0x29,0x29,0x2c,0x72,0x3d,0x65,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x29,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x7b,0x69,0x67,0x6e,0x6f,0x72,0x65,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x3a,0x65,0x2e,0x69,0x67,0x6e,0x6f,0x72,0x65,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x2c,0x73,0x74,0x61,0x74,0x73,0x3a,0x65,0x2e,0x73,0x74,0x61,0x74,0x73,0x2c,0x65,0x6e,0x76,0x3a,0x65,0x2e,0x65,0x6e,0x76,0x7d,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x28,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x70,0x76,0x2c,0x73,0x3d,0x6e,0x65,0x77,0x20,0x4e,0x35,0x28,0x61,0x2e,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x2c,0x72,0x2c,0x6e,0x2c,0x74,0x29,0x2c,0x6f,0x3d,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x2b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x65,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x66,0x2e,0x68,0x61,0x73,0x28,0x6f,0x29,0x7c,0x7c,0x61,0x66,0x2e,0x73,0x65,0x74,0x28,0x6f,0x2c,0x6e,0x65,0x77,0x20,0x42,0x35,0x28,0x61,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2c,0x73,0x2c,0x65,0x29,0x29,0x2c,0x61,0x66,0x2e,0x67,0x65,0x74,0x28,0x6f,0x29,0x7d,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x50,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x22,0x61,0x75,0x74,0x6f,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x72,0x22,0x2c,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x28,0x6e,0x29,0x7b,0x6c,0x65,0x74,0x20,0x61,0x3d,0x69,0x28,0x7b,0x66,0x72,0x6f,0x6d,0x3a,0x6e,0x2e,0x6f,0x70,0x74,0x73,0x2e,0x66,0x72,0x6f,0x6d,0x2c,0x65,0x6e,0x76,0x3a,0x65,0x2e,0x65,0x6e,0x76,0x7d,0x29,0x3b,0x72,0x65,0x74,0x75,0x72,0x6e,0x7b,0x4f,0x6e,0x63,0x65,0x45,0x78,0x69,0x74,0x28,0x73,0x29,0x7b,0x55,0x35,0x28,0x6e,0x2c,0x61,0x29,0x2c,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x73,0x2c,0x6e,0x29,0x2c,0x65,0x2e,0x61,0x64,0x64,0x21,0x3d,0x3d,0x21,0x31,0x26,0x26,0x61,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x6f,0x72,0x2e,0x61,0x64,0x64,0x28,0x73,0x2c,0x6e,0x29,0x7d,0x7d,0x7d,0x2c,0x69,0x6e,0x66,0x6f,0x28,0x6e,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x3d,0x6e,0x7c,0x7c,0x7b,0x7d,0x2c,0x6e,0x2e,0x66,0x72,0x6f,0x6d,0x3d,0x6e,0x2e,0x66,0x72,0x6f,0x6d,0x7c,0x7c,0x6d,0x2e,0x63,0x77,0x64,0x28,0x29,0x2c,0x6a,0x35,0x28,0x69,0x28,0x6e,0x29,0x29,0x7d,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x65,0x2c,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x73,0x3a,0x72,0x7d,0x7d,0x44,0x72,0x2e,0x70,0x6f,0x73,0x74,0x63,0x73,0x73,0x3d,0x21,0x30,0x3b,0x44,0x72,0x2e,0x64,0x61,0x74,0x61,0x3d,0x70,0x76,0x3b,0x44,0x72,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3d,0x4c,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3b,0x44,0x72,0x2e,0x69,0x6e,0x66,0x6f,0x3d,0x28,0x29,0x3d,0x3e,0x44,0x72,0x28,0x29,0x2e,0x69,0x6e,0x66,0x6f,0x28,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x67,0x76,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x67,0x76,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x56,0x35,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x56,0x35,0x2c,0x79,0x76,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x56,0x35,0x3d,0x5b,0x5d,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x77,0x76,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x77,0x76,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x48,0x35,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x62,0x76,0x2c,0x48,0x35,0x2c,0x76,0x76,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x59,0x69,0x28,0x29,0x3b,0x62,0x76,0x3d,0x70,0x65,0x28,0x65,0x6e,0x28,0x29,0x29,0x2c,0x48,0x35,0x3d,0x53,0x74,0x28,0x62,0x76,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x74,0x68,0x65,0x6d,0x65,0x29,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x6b,0x76,0x3d,0x7b,0x7d,0x3b,0x47,0x65,0x28,0x6b,0x76,0x2c,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x28,0x29,0x3d,0x3e,0x57,0x35,0x7d,0x29,0x3b,0x76,0x61,0x72,0x20,0x78,0x76,0x2c,0x57,0x35,0x2c,0x53,0x76,0x3d,0x52,0x28,0x28,0x29,0x3d,0x3e,0x7b,0x75,0x28,0x29,0x3b,0x59,0x69,0x28,0x29,0x3b,0x78,0x76,0x3d,0x70,0x65,0x28,0x65,0x6e,0x28,0x29,0x29,0x2c,0x57,0x35,0x3d,0x53,0x74,0x28,0x78,0x76,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x7d,0x29,0x3b,0x75,0x28,0x29,0x3b,0x22,0x75,0x73,0x65,0x20,0x73,0x74,0x72,0x69,0x63,0x74,0x22,0x3b,0x76,0x61,0x72,0x20,0x47,0x35,0x3d,0x76,0x74,0x28,0x41,0x79,0x28,0x29,0x29,0x2c,0x51,0x35,0x3d,0x76,0x74,0x28,0x24,0x65,0x28,0x29,0x29,0x2c,0x59,0x35,0x3d,0x76,0x74,0x28,0x6d,0x76,0x28,0x29,0x29,0x2c,0x4b,0x35,0x3d,0x76,0x74,0x28,0x28,0x79,0x76,0x28,0x29,0x2c,0x67,0x76,0x29,0x29,0x2c,0x58,0x35,0x3d,0x76,0x74,0x28,0x28,0x76,0x76,0x28,0x29,0x2c,0x77,0x76,0x29,0x29,0x2c,0x4a,0x35,0x3d,0x76,0x74,0x28,0x28,0x53,0x76,0x28,0x29,0x2c,0x6b,0x76,0x29,0x29,0x2c,0x5a,0x35,0x3d,0x76,0x74,0x28,0x28,0x7a,0x73,0x28,0x29,0x2c,0x41,0x66,0x29,0x29,0x2c,0x65,0x50,0x3d,0x76,0x74,0x28,0x28,0x6e,0x6c,0x28,0x29,0x2c,0x69,0x6c,0x29,0x29,0x2c,0x74,0x50,0x3d,0x76,0x74,0x28,0x28,0x69,0x61,0x28,0x29,0x2c,0x69,0x63,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x74,0x28,0x72,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x26,0x26,0x72,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3f,0x72,0x3a,0x7b,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x72,0x7d,0x7d,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x22,0x63,0x64,0x6e,0x2e,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x54,0x6f,0x20,0x75,0x73,0x65,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x53,0x53,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x20,0x69,0x74,0x20,0x61,0x73,0x20,0x61,0x20,0x50,0x6f,0x73,0x74,0x43,0x53,0x53,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x6f,0x72,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x54,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x43,0x4c,0x49,0x3a,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x63,0x6f,0x6d,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x22,0x29,0x3b,0x76,0x61,0x72,0x20,0x4c,0x73,0x3d,0x22,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x22,0x2c,0x6f,0x66,0x3d,0x22,0x74,0x65,0x78,0x74,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x22,0x2c,0x41,0x76,0x3d,0x22,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x59,0x74,0x2c,0x43,0x76,0x3d,0x21,0x30,0x2c,0x5f,0x76,0x3d,0x30,0x2c,0x6c,0x66,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x2c,0x75,0x66,0x2c,0x45,0x76,0x3d,0x22,0x22,0x2c,0x4f,0x76,0x3d,0x28,0x72,0x3d,0x21,0x31,0x29,0x3d,0x3e,0x28,0x7b,0x67,0x65,0x74,0x28,0x65,0x2c,0x74,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x28,0x21,0x72,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x22,0x29,0x26,0x26,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x5b,0x74,0x5d,0x3d,0x3d,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x26,0x26,0x65,0x5b,0x74,0x5d,0x21,0x3d,0x3d,0x6e,0x75,0x6c,0x6c,0x3f,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x65,0x5b,0x74,0x5d,0x2c,0x4f,0x76,0x28,0x29,0x29,0x3a,0x65,0x5b,0x74,0x5d,0x7d,0x2c,0x73,0x65,0x74,0x28,0x65,0x2c,0x74,0x2c,0x69,0x29,0x7b,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x5b,0x74,0x5d,0x3d,0x69,0x2c,0x28,0x21,0x72,0x7c,0x7c,0x74,0x3d,0x3d,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x22,0x29,0x26,0x26,0x66,0x66,0x28,0x21,0x30,0x29,0x2c,0x21,0x30,0x7d,0x7d,0x29,0x3b,0x77,0x69,0x6e,0x64,0x6f,0x77,0x5b,0x4c,0x73,0x5d,0x3d,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x7b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x7b,0x7d,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x54,0x68,0x65,0x6d,0x65,0x3a,0x58,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x4a,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x73,0x3a,0x5a,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x70,0x6c,0x75,0x67,0x69,0x6e,0x3a,0x65,0x50,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x74,0x50,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x7d,0x2c,0x4f,0x76,0x28,0x21,0x30,0x29,0x29,0x3b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x54,0x76,0x28,0x72,0x29,0x7b,0x75,0x66,0x2e,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x28,0x72,0x2c,0x7b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x3a,0x21,0x30,0x2c,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x3a,0x5b,0x22,0x74,0x79,0x70,0x65,0x22,0x5d,0x2c,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x44,0x61,0x74,0x61,0x3a,0x21,0x30,0x2c,0x73,0x75,0x62,0x74,0x72,0x65,0x65,0x3a,0x21,0x30,0x2c,0x63,0x68,0x69,0x6c,0x64,0x4c,0x69,0x73,0x74,0x3a,0x21,0x30,0x7d,0x29,0x7d,0x6e,0x65,0x77,0x20,0x4d,0x75,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x28,0x61,0x73,0x79,0x6e,0x63,0x20,0x72,0x3d,0x3e,0x7b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x21,0x31,0x3b,0x69,0x66,0x28,0x21,0x75,0x66,0x29,0x7b,0x75,0x66,0x3d,0x6e,0x65,0x77,0x20,0x4d,0x75,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x28,0x61,0x73,0x79,0x6e,0x63,0x28,0x29,0x3d,0x3e,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x66,0x28,0x21,0x30,0x29,0x29,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x41,0x6c,0x6c,0x28,0x60,0x73,0x74,0x79,0x6c,0x65,0x5b,0x74,0x79,0x70,0x65,0x3d,0x22,0x24,0x7b,0x6f,0x66,0x7d,0x22,0x5d,0x60,0x29,0x29,0x54,0x76,0x28,0x74,0x29,0x7d,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x74,0x20,0x6f,0x66,0x20,0x72,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x74,0x2e,0x61,0x64,0x64,0x65,0x64,0x4e,0x6f,0x64,0x65,0x73,0x29,0x69,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x3d,0x3d,0x3d,0x31,0x26,0x26,0x69,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x3d,0x3d,0x3d,0x22,0x53,0x54,0x59,0x4c,0x45,0x22,0x26,0x26,0x69,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x74,0x79,0x70,0x65,0x22,0x29,0x3d,0x3d,0x3d,0x6f,0x66,0x26,0x26,0x28,0x54,0x76,0x28,0x69,0x29,0x2c,0x65,0x3d,0x21,0x30,0x29,0x3b,0x61,0x77,0x61,0x69,0x74,0x20,0x66,0x66,0x28,0x65,0x29,0x7d,0x29,0x2e,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x28,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x7b,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x3a,0x21,0x30,0x2c,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x3a,0x5b,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x5d,0x2c,0x63,0x68,0x69,0x6c,0x64,0x4c,0x69,0x73,0x74,0x3a,0x21,0x30,0x2c,0x73,0x75,0x62,0x74,0x72,0x65,0x65,0x3a,0x21,0x30,0x7d,0x29,0x3b,0x61,0x73,0x79,0x6e,0x63,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x66,0x28,0x72,0x3d,0x21,0x31,0x29,0x7b,0x72,0x26,0x26,0x28,0x5f,0x76,0x2b,0x2b,0x2c,0x6c,0x66,0x2e,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x29,0x3b,0x6c,0x65,0x74,0x20,0x65,0x3d,0x22,0x22,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x41,0x6c,0x6c,0x28,0x60,0x73,0x74,0x79,0x6c,0x65,0x5b,0x74,0x79,0x70,0x65,0x3d,0x22,0x24,0x7b,0x6f,0x66,0x7d,0x22,0x5d,0x60,0x29,0x29,0x65,0x2b,0x3d,0x69,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x6c,0x65,0x74,0x20,0x74,0x3d,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x3b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x41,0x6c,0x6c,0x28,0x22,0x5b,0x63,0x6c,0x61,0x73,0x73,0x5d,0x22,0x29,0x29,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x69,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x29,0x6c,0x66,0x2e,0x68,0x61,0x73,0x28,0x6e,0x29,0x7c,0x7c,0x74,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x3b,0x69,0x66,0x28,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x26,0x26,0x28,0x43,0x76,0x7c,0x7c,0x74,0x2e,0x73,0x69,0x7a,0x65,0x3e,0x30,0x7c,0x7c,0x65,0x21,0x3d,0x3d,0x45,0x76,0x7c,0x7c,0x21,0x59,0x74,0x7c,0x7c,0x21,0x59,0x74,0x2e,0x69,0x73,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x29,0x7b,0x66,0x6f,0x72,0x28,0x6c,0x65,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x74,0x29,0x6c,0x66,0x2e,0x61,0x64,0x64,0x28,0x6e,0x29,0x3b,0x43,0x76,0x3d,0x21,0x31,0x2c,0x45,0x76,0x3d,0x65,0x2c,0x73,0x65,0x6c,0x66,0x5b,0x41,0x76,0x5d,0x3d,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x74,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x3b,0x6c,0x65,0x74,0x7b,0x63,0x73,0x73,0x3a,0x69,0x7d,0x3d,0x61,0x77,0x61,0x69,0x74,0x28,0x30,0x2c,0x51,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x5b,0x28,0x30,0x2c,0x47,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x7b,0x2e,0x2e,0x2e,0x77,0x69,0x6e,0x64,0x6f,0x77,0x5b,0x4c,0x73,0x5d,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x5f,0x68,0x61,0x73,0x68,0x3a,0x5f,0x76,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x7b,0x66,0x69,0x6c,0x65,0x73,0x3a,0x5b,0x41,0x76,0x5d,0x2c,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x3a,0x7b,0x68,0x74,0x6d,0x6c,0x3a,0x6e,0x3d,0x3e,0x6e,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x20,0x22,0x29,0x7d,0x7d,0x2c,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x5b,0x2e,0x2e,0x2e,0x4b,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x2e,0x2e,0x2e,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x5b,0x4c,0x73,0x5d,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x29,0x3f,0x77,0x69,0x6e,0x64,0x6f,0x77,0x5b,0x4c,0x73,0x5d,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x6c,0x75,0x67,0x69,0x6e,0x73,0x3a,0x5b,0x5d,0x5d,0x7d,0x29,0x2c,0x28,0x30,0x2c,0x59,0x35,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x28,0x7b,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3a,0x21,0x31,0x7d,0x29,0x5d,0x29,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x60,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x62,0x61,0x73,0x65,0x3b,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3b,0x40,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x3b,0x24,0x7b,0x65,0x7d,0x60,0x29,0x3b,0x28,0x21,0x59,0x74,0x7c,0x7c,0x21,0x59,0x74,0x2e,0x69,0x73,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x26,0x26,0x28,0x59,0x74,0x3d,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x2c,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x68,0x65,0x61,0x64,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x28,0x59,0x74,0x29,0x29,0x2c,0x59,0x74,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x69,0x7d,0x7d,0x7d,0x29,0x28,0x29,0x3b,0x0a,0x2f,0x2a,0x21,0x0a,0x20,0x2a,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x61,0x6e,0x67,0x65,0x20,0x3c,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6a,0x6f,0x6e,0x73,0x63,0x68,0x6c,0x69,0x6e,0x6b,0x65,0x72,0x74,0x2f,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x61,0x6e,0x67,0x65,0x3e,0x0a,0x20,0x2a,0x0a,0x20,0x2a,0x20,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x34,0x2d,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x2c,0x20,0x4a,0x6f,0x6e,0x20,0x53,0x63,0x68,0x6c,0x69,0x6e,0x6b,0x65,0x72,0x74,0x2e,0x0a,0x20,0x2a,0x20,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x64,0x20,0x75,0x6e,0x64,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x4d,0x49,0x54,0x20,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x2e,0x0a,0x20,0x2a,0x2f,0x0a,0x2f,0x2a,0x21,0x0a,0x20,0x2a,0x20,0x69,0x73,0x2d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x3c,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6a,0x6f,0x6e,0x73,0x63,0x68,0x6c,0x69,0x6e,0x6b,0x65,0x72,0x74,0x2f,0x69,0x73,0x2d,0x6e,0x75,0x6d,0x62,0x65,0x72,0x3e,0x0a,0x20,0x2a,0x0a,0x20,0x2a,0x20,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x34,0x2d,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x2c,0x20,0x4a,0x6f,0x6e,0x20,0x53,0x63,0x68,0x6c,0x69,0x6e,0x6b,0x65,0x72,0x74,0x2e,0x0a,0x20,0x2a,0x20,0x52,0x65,0x6c,0x65,0x61,0x73,0x65,0x64,0x20,0x75,0x6e,0x64,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x4d,0x49,0x54,0x20,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x2e,0x0a,0x20,0x2a,0x2f,0x0a,0x2f,0x2a,0x21,0x0a,0x20,0x2a,0x20,0x74,0x6f,0x2d,0x72,0x65,0x67,0x65,0x78,0x2d,0x72,0x61,0x6e,0x67,0x65,0x20,0x3c,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x6d,0x69,0x63,0x72,0x6f,0x6d,0x61,0x74,0x63,0x68,0x2f,0x74,0x6f,0x2d,0x72,0x65,0x67,0x65,0x78,0x2d,0x72,0x61,0x6e,0x67,0x65,0x3e,0x0a,0x20,0x2a,0x0a,0x20,0x2a,0x20,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x35,0x2d,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x2c,0x20,0x4a,0x6f,0x6e,0x20,0x53,0x63,0x68,0x6c,0x69,0x6e,0x6b,0x65,0x72,0x74,0x2e,0x0a,0x20,0x2a,0x20,0x52,0x65,0x6c,0x65,0x61,0x73,0x65,0x64,0x20,0x75,0x6e,0x64,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x4d,0x49,0x54,0x20,0x4c,0x69,0x63,0x65,0x6e,0x73,0x65,0x2e,0x0a,0x20,0x2a,0x2f,0x0a,0x2f,0x2a,0x21,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x6d,0x74,0x68,0x73,0x2e,0x62,0x65,0x2f,0x63,0x73,0x73,0x65,0x73,0x63,0x20,0x76,0x33,0x2e,0x30,0x2e,0x30,0x20,0x62,0x79,0x20,0x40,0x6d,0x61,0x74,0x68,0x69,0x61,0x73,0x20,0x2a,0x2f,0x0a,0x0a,}; +unsigned int deps_tailwindcss_js_len = 405834; diff --git a/llama.cpp/build/examples/server/deps_vue.esm-browser.js.hpp b/llama.cpp/build/examples/server/deps_vue.esm-browser.js.hpp new file mode 100644 index 0000000000000000000000000000000000000000..c075ec826f6dc3baf50740cab2086404b577b629 --- /dev/null +++ b/llama.cpp/build/examples/server/deps_vue.esm-browser.js.hpp @@ -0,0 +1,2 @@ +unsigned char deps_vue_esm_browser_js[] = {0x2f,0x2a,0x2a,0x0a,0x2a,0x20,0x76,0x75,0x65,0x20,0x76,0x33,0x2e,0x35,0x2e,0x31,0x32,0x0a,0x2a,0x20,0x28,0x63,0x29,0x20,0x32,0x30,0x31,0x38,0x2d,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x20,0x59,0x75,0x78,0x69,0x20,0x28,0x45,0x76,0x61,0x6e,0x29,0x20,0x59,0x6f,0x75,0x20,0x61,0x6e,0x64,0x20,0x56,0x75,0x65,0x20,0x63,0x6f,0x6e,0x74,0x72,0x69,0x62,0x75,0x74,0x6f,0x72,0x73,0x0a,0x2a,0x20,0x40,0x6c,0x69,0x63,0x65,0x6e,0x73,0x65,0x20,0x4d,0x49,0x54,0x0a,0x2a,0x2a,0x2f,0x0a,0x2f,0x2a,0x21,0x20,0x23,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x0a,0x2f,0x2f,0x20,0x40,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x6f,0x66,0x20,0x73,0x74,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x29,0x20,0x6d,0x61,0x70,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x76,0x61,0x6c,0x20,0x69,0x6e,0x20,0x6d,0x61,0x70,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x65,0x65,0x7a,0x65,0x28,0x7b,0x7d,0x29,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x65,0x65,0x7a,0x65,0x28,0x5b,0x5d,0x29,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4e,0x4f,0x4f,0x50,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4e,0x4f,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4f,0x6e,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x31,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x30,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x6c,0x65,0x74,0x74,0x65,0x72,0x0a,0x28,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x32,0x29,0x20,0x3e,0x20,0x31,0x32,0x32,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x32,0x29,0x20,0x3c,0x20,0x39,0x37,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x61,0x73,0x73,0x69,0x67,0x6e,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x28,0x61,0x72,0x72,0x2c,0x20,0x65,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x61,0x72,0x72,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3e,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x72,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x24,0x31,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x24,0x31,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x76,0x61,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x61,0x70,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x4d,0x61,0x70,0x5d,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x65,0x74,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x53,0x65,0x74,0x5d,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x44,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x44,0x61,0x74,0x65,0x5d,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x65,0x67,0x45,0x78,0x70,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x5d,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x76,0x61,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x2e,0x74,0x68,0x65,0x6e,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x2e,0x63,0x61,0x74,0x63,0x68,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x52,0x61,0x77,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x38,0x2c,0x20,0x2d,0x31,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x50,0x6c,0x61,0x69,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x6f,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x5d,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x4b,0x65,0x79,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x4e,0x61,0x4e,0x22,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x2d,0x22,0x20,0x26,0x26,0x20,0x22,0x22,0x20,0x2b,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x31,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x6c,0x65,0x61,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x20,0x69,0x73,0x20,0x69,0x6e,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x73,0x6f,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x22,0x22,0x20,0x69,0x73,0x20,0x61,0x6c,0x73,0x6f,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x64,0x0a,0x20,0x20,0x22,0x2c,0x6b,0x65,0x79,0x2c,0x72,0x65,0x66,0x2c,0x72,0x65,0x66,0x5f,0x66,0x6f,0x72,0x2c,0x72,0x65,0x66,0x5f,0x6b,0x65,0x79,0x2c,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x2c,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x2c,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x2c,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x22,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x22,0x62,0x69,0x6e,0x64,0x2c,0x63,0x6c,0x6f,0x61,0x6b,0x2c,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x2c,0x65,0x6c,0x73,0x65,0x2c,0x66,0x6f,0x72,0x2c,0x68,0x74,0x6d,0x6c,0x2c,0x69,0x66,0x2c,0x6d,0x6f,0x64,0x65,0x6c,0x2c,0x6f,0x6e,0x2c,0x6f,0x6e,0x63,0x65,0x2c,0x70,0x72,0x65,0x2c,0x73,0x68,0x6f,0x77,0x2c,0x73,0x6c,0x6f,0x74,0x2c,0x74,0x65,0x78,0x74,0x2c,0x6d,0x65,0x6d,0x6f,0x22,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x66,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x69,0x74,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x73,0x74,0x72,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x69,0x74,0x20,0x7c,0x7c,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x5b,0x73,0x74,0x72,0x5d,0x20,0x3d,0x20,0x66,0x6e,0x28,0x73,0x74,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x52,0x45,0x20,0x3d,0x20,0x2f,0x2d,0x28,0x5c,0x77,0x29,0x2f,0x67,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x52,0x45,0x2c,0x20,0x28,0x5f,0x2c,0x20,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x20,0x3f,0x20,0x63,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3a,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x42,0x28,0x5b,0x41,0x2d,0x5a,0x5d,0x29,0x2f,0x67,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x52,0x45,0x2c,0x20,0x22,0x2d,0x24,0x31,0x22,0x29,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x30,0x29,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x2b,0x20,0x73,0x74,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3b,0x0a,0x7d,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x20,0x3d,0x20,0x73,0x74,0x72,0x20,0x3f,0x20,0x60,0x6f,0x6e,0x24,0x7b,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x74,0x72,0x29,0x7d,0x60,0x20,0x3a,0x20,0x60,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x69,0x73,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x20,0x3d,0x20,0x28,0x66,0x6e,0x73,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x66,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x73,0x5b,0x69,0x5d,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x20,0x3d,0x20,0x28,0x6f,0x62,0x6a,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6f,0x62,0x6a,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x4e,0x61,0x4e,0x28,0x6e,0x29,0x20,0x3f,0x20,0x76,0x61,0x6c,0x20,0x3a,0x20,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3f,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x76,0x61,0x6c,0x29,0x20,0x3a,0x20,0x4e,0x61,0x4e,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x4e,0x61,0x4e,0x28,0x6e,0x29,0x20,0x3f,0x20,0x76,0x61,0x6c,0x20,0x3a,0x20,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x5f,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x7c,0x7c,0x20,0x28,0x5f,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x20,0x3a,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x65,0x6c,0x66,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x73,0x65,0x6c,0x66,0x20,0x3a,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x3a,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x3a,0x20,0x7b,0x7d,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x2b,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x28,0x5f,0x2c,0x20,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x3f,0x20,0x76,0x61,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x20,0x3a,0x20,0x76,0x61,0x6c,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5b,0x31,0x5d,0x3a,0x20,0x60,0x54,0x45,0x58,0x54,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x5d,0x3a,0x20,0x60,0x43,0x4c,0x41,0x53,0x53,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x5d,0x3a,0x20,0x60,0x53,0x54,0x59,0x4c,0x45,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x38,0x5d,0x3a,0x20,0x60,0x50,0x52,0x4f,0x50,0x53,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x36,0x5d,0x3a,0x20,0x60,0x46,0x55,0x4c,0x4c,0x5f,0x50,0x52,0x4f,0x50,0x53,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x32,0x5d,0x3a,0x20,0x60,0x4e,0x45,0x45,0x44,0x5f,0x48,0x59,0x44,0x52,0x41,0x54,0x49,0x4f,0x4e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x34,0x5d,0x3a,0x20,0x60,0x53,0x54,0x41,0x42,0x4c,0x45,0x5f,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x32,0x38,0x5d,0x3a,0x20,0x60,0x4b,0x45,0x59,0x45,0x44,0x5f,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x35,0x36,0x5d,0x3a,0x20,0x60,0x55,0x4e,0x4b,0x45,0x59,0x45,0x44,0x5f,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x31,0x32,0x5d,0x3a,0x20,0x60,0x4e,0x45,0x45,0x44,0x5f,0x50,0x41,0x54,0x43,0x48,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x30,0x32,0x34,0x5d,0x3a,0x20,0x60,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x53,0x4c,0x4f,0x54,0x53,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x30,0x34,0x38,0x5d,0x3a,0x20,0x60,0x44,0x45,0x56,0x5f,0x52,0x4f,0x4f,0x54,0x5f,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x2d,0x31,0x5d,0x3a,0x20,0x60,0x48,0x4f,0x49,0x53,0x54,0x45,0x44,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x2d,0x32,0x5d,0x3a,0x20,0x60,0x42,0x41,0x49,0x4c,0x60,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5b,0x31,0x5d,0x3a,0x20,0x22,0x53,0x54,0x41,0x42,0x4c,0x45,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x5d,0x3a,0x20,0x22,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x5d,0x3a,0x20,0x22,0x46,0x4f,0x52,0x57,0x41,0x52,0x44,0x45,0x44,0x22,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x47,0x4c,0x4f,0x42,0x41,0x4c,0x53,0x5f,0x41,0x4c,0x4c,0x4f,0x57,0x45,0x44,0x20,0x3d,0x20,0x22,0x49,0x6e,0x66,0x69,0x6e,0x69,0x74,0x79,0x2c,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x2c,0x4e,0x61,0x4e,0x2c,0x69,0x73,0x46,0x69,0x6e,0x69,0x74,0x65,0x2c,0x69,0x73,0x4e,0x61,0x4e,0x2c,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x2c,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x2c,0x64,0x65,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x2c,0x64,0x65,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x65,0x6e,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x2c,0x65,0x6e,0x63,0x6f,0x64,0x65,0x55,0x52,0x49,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x4d,0x61,0x74,0x68,0x2c,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x44,0x61,0x74,0x65,0x2c,0x41,0x72,0x72,0x61,0x79,0x2c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x2c,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x52,0x65,0x67,0x45,0x78,0x70,0x2c,0x4d,0x61,0x70,0x2c,0x53,0x65,0x74,0x2c,0x4a,0x53,0x4f,0x4e,0x2c,0x49,0x6e,0x74,0x6c,0x2c,0x42,0x69,0x67,0x49,0x6e,0x74,0x2c,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2c,0x45,0x72,0x72,0x6f,0x72,0x2c,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x6c,0x79,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x47,0x4c,0x4f,0x42,0x41,0x4c,0x53,0x5f,0x41,0x4c,0x4c,0x4f,0x57,0x45,0x44,0x29,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x46,0x72,0x61,0x6d,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x30,0x2c,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x30,0x2c,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x65,0x6e,0x64,0x2c,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3e,0x20,0x65,0x6e,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x28,0x5c,0x72,0x3f,0x5c,0x6e,0x29,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5f,0x2c,0x20,0x69,0x64,0x78,0x29,0x20,0x3d,0x3e,0x20,0x69,0x64,0x78,0x20,0x25,0x20,0x32,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x5f,0x2c,0x20,0x69,0x64,0x78,0x29,0x20,0x3d,0x3e,0x20,0x69,0x64,0x78,0x20,0x25,0x20,0x32,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x28,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x5b,0x69,0x5d,0x20,0x26,0x26,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3e,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6a,0x20,0x3d,0x20,0x69,0x20,0x2d,0x20,0x72,0x61,0x6e,0x67,0x65,0x3b,0x20,0x6a,0x20,0x3c,0x3d,0x20,0x69,0x20,0x2b,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x7c,0x7c,0x20,0x65,0x6e,0x64,0x20,0x3e,0x20,0x63,0x6f,0x75,0x6e,0x74,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x6a,0x20,0x3e,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x6a,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x6c,0x69,0x6e,0x65,0x7d,0x24,0x7b,0x22,0x20,0x22,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x33,0x20,0x2d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6c,0x69,0x6e,0x65,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x30,0x29,0x29,0x7d,0x7c,0x20,0x20,0x24,0x7b,0x6c,0x69,0x6e,0x65,0x73,0x5b,0x6a,0x5d,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x73,0x5b,0x6a,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x4c,0x69,0x6e,0x65,0x53,0x65,0x71,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x5b,0x6a,0x5d,0x20,0x26,0x26,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x5b,0x6a,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x2d,0x20,0x28,0x6c,0x69,0x6e,0x65,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x6e,0x65,0x77,0x4c,0x69,0x6e,0x65,0x53,0x65,0x71,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x20,0x3e,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3f,0x20,0x6c,0x69,0x6e,0x65,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x70,0x61,0x64,0x20,0x3a,0x20,0x65,0x6e,0x64,0x20,0x2d,0x20,0x73,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x20,0x20,0x7c,0x20,0x20,0x60,0x20,0x2b,0x20,0x22,0x20,0x22,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x70,0x61,0x64,0x29,0x20,0x2b,0x20,0x22,0x5e,0x22,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6a,0x20,0x3e,0x20,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6e,0x64,0x20,0x3e,0x20,0x63,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x65,0x6e,0x64,0x20,0x2d,0x20,0x63,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6c,0x69,0x6e,0x65,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x20,0x20,0x7c,0x20,0x20,0x60,0x20,0x2b,0x20,0x22,0x5e,0x22,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x6c,0x69,0x6e,0x65,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x6e,0x65,0x77,0x4c,0x69,0x6e,0x65,0x53,0x65,0x71,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x5c,0x6e,0x22,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x74,0x65,0x6d,0x29,0x20,0x3f,0x20,0x70,0x61,0x72,0x73,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x53,0x74,0x79,0x6c,0x65,0x28,0x69,0x74,0x65,0x6d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x28,0x69,0x74,0x65,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x73,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x3b,0x28,0x3f,0x21,0x5b,0x5e,0x28,0x5d,0x2a,0x5c,0x29,0x29,0x2f,0x67,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x3a,0x28,0x5b,0x5e,0x5d,0x2b,0x29,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x2f,0x5c,0x2a,0x5b,0x5e,0x5d,0x2a,0x3f,0x5c,0x2a,0x5c,0x2f,0x2f,0x67,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x53,0x74,0x79,0x6c,0x65,0x28,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x52,0x45,0x2c,0x20,0x22,0x22,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x6c,0x69,0x73,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x52,0x45,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x69,0x74,0x65,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x74,0x65,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6d,0x70,0x20,0x3d,0x20,0x69,0x74,0x65,0x6d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6d,0x70,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x20,0x26,0x26,0x20,0x28,0x72,0x65,0x74,0x5b,0x74,0x6d,0x70,0x5b,0x30,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x5d,0x20,0x3d,0x20,0x74,0x6d,0x70,0x5b,0x31,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x60,0x2d,0x2d,0x60,0x29,0x20,0x3f,0x20,0x6b,0x65,0x79,0x20,0x3a,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x2b,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x7d,0x3a,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x3b,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x2b,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x2b,0x20,0x22,0x20,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x2b,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x22,0x20,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x63,0x6c,0x61,0x73,0x73,0x3a,0x20,0x6b,0x6c,0x61,0x73,0x73,0x2c,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x6c,0x61,0x73,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x6c,0x61,0x73,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x28,0x6b,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x79,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x53,0x20,0x3d,0x20,0x22,0x68,0x74,0x6d,0x6c,0x2c,0x62,0x6f,0x64,0x79,0x2c,0x62,0x61,0x73,0x65,0x2c,0x68,0x65,0x61,0x64,0x2c,0x6c,0x69,0x6e,0x6b,0x2c,0x6d,0x65,0x74,0x61,0x2c,0x73,0x74,0x79,0x6c,0x65,0x2c,0x74,0x69,0x74,0x6c,0x65,0x2c,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x2c,0x61,0x72,0x74,0x69,0x63,0x6c,0x65,0x2c,0x61,0x73,0x69,0x64,0x65,0x2c,0x66,0x6f,0x6f,0x74,0x65,0x72,0x2c,0x68,0x65,0x61,0x64,0x65,0x72,0x2c,0x68,0x67,0x72,0x6f,0x75,0x70,0x2c,0x68,0x31,0x2c,0x68,0x32,0x2c,0x68,0x33,0x2c,0x68,0x34,0x2c,0x68,0x35,0x2c,0x68,0x36,0x2c,0x6e,0x61,0x76,0x2c,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x64,0x69,0x76,0x2c,0x64,0x64,0x2c,0x64,0x6c,0x2c,0x64,0x74,0x2c,0x66,0x69,0x67,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x2c,0x66,0x69,0x67,0x75,0x72,0x65,0x2c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x2c,0x68,0x72,0x2c,0x69,0x6d,0x67,0x2c,0x6c,0x69,0x2c,0x6d,0x61,0x69,0x6e,0x2c,0x6f,0x6c,0x2c,0x70,0x2c,0x70,0x72,0x65,0x2c,0x75,0x6c,0x2c,0x61,0x2c,0x62,0x2c,0x61,0x62,0x62,0x72,0x2c,0x62,0x64,0x69,0x2c,0x62,0x64,0x6f,0x2c,0x62,0x72,0x2c,0x63,0x69,0x74,0x65,0x2c,0x63,0x6f,0x64,0x65,0x2c,0x64,0x61,0x74,0x61,0x2c,0x64,0x66,0x6e,0x2c,0x65,0x6d,0x2c,0x69,0x2c,0x6b,0x62,0x64,0x2c,0x6d,0x61,0x72,0x6b,0x2c,0x71,0x2c,0x72,0x70,0x2c,0x72,0x74,0x2c,0x72,0x75,0x62,0x79,0x2c,0x73,0x2c,0x73,0x61,0x6d,0x70,0x2c,0x73,0x6d,0x61,0x6c,0x6c,0x2c,0x73,0x70,0x61,0x6e,0x2c,0x73,0x74,0x72,0x6f,0x6e,0x67,0x2c,0x73,0x75,0x62,0x2c,0x73,0x75,0x70,0x2c,0x74,0x69,0x6d,0x65,0x2c,0x75,0x2c,0x76,0x61,0x72,0x2c,0x77,0x62,0x72,0x2c,0x61,0x72,0x65,0x61,0x2c,0x61,0x75,0x64,0x69,0x6f,0x2c,0x6d,0x61,0x70,0x2c,0x74,0x72,0x61,0x63,0x6b,0x2c,0x76,0x69,0x64,0x65,0x6f,0x2c,0x65,0x6d,0x62,0x65,0x64,0x2c,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x70,0x61,0x72,0x61,0x6d,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x63,0x61,0x6e,0x76,0x61,0x73,0x2c,0x73,0x63,0x72,0x69,0x70,0x74,0x2c,0x6e,0x6f,0x73,0x63,0x72,0x69,0x70,0x74,0x2c,0x64,0x65,0x6c,0x2c,0x69,0x6e,0x73,0x2c,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x2c,0x63,0x6f,0x6c,0x2c,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x2c,0x74,0x61,0x62,0x6c,0x65,0x2c,0x74,0x68,0x65,0x61,0x64,0x2c,0x74,0x62,0x6f,0x64,0x79,0x2c,0x74,0x64,0x2c,0x74,0x68,0x2c,0x74,0x72,0x2c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x2c,0x64,0x61,0x74,0x61,0x6c,0x69,0x73,0x74,0x2c,0x66,0x69,0x65,0x6c,0x64,0x73,0x65,0x74,0x2c,0x66,0x6f,0x72,0x6d,0x2c,0x69,0x6e,0x70,0x75,0x74,0x2c,0x6c,0x61,0x62,0x65,0x6c,0x2c,0x6c,0x65,0x67,0x65,0x6e,0x64,0x2c,0x6d,0x65,0x74,0x65,0x72,0x2c,0x6f,0x70,0x74,0x67,0x72,0x6f,0x75,0x70,0x2c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2c,0x6f,0x75,0x74,0x70,0x75,0x74,0x2c,0x70,0x72,0x6f,0x67,0x72,0x65,0x73,0x73,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x2c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x2c,0x64,0x69,0x61,0x6c,0x6f,0x67,0x2c,0x6d,0x65,0x6e,0x75,0x2c,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x2c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x2c,0x69,0x66,0x72,0x61,0x6d,0x65,0x2c,0x74,0x66,0x6f,0x6f,0x74,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x56,0x47,0x5f,0x54,0x41,0x47,0x53,0x20,0x3d,0x20,0x22,0x73,0x76,0x67,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x4d,0x6f,0x74,0x69,0x6f,0x6e,0x2c,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x63,0x69,0x72,0x63,0x6c,0x65,0x2c,0x63,0x6c,0x69,0x70,0x50,0x61,0x74,0x68,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2c,0x64,0x65,0x66,0x73,0x2c,0x64,0x65,0x73,0x63,0x2c,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x2c,0x65,0x6c,0x6c,0x69,0x70,0x73,0x65,0x2c,0x66,0x65,0x42,0x6c,0x65,0x6e,0x64,0x2c,0x66,0x65,0x43,0x6f,0x6c,0x6f,0x72,0x4d,0x61,0x74,0x72,0x69,0x78,0x2c,0x66,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x65,0x72,0x2c,0x66,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x65,0x2c,0x66,0x65,0x43,0x6f,0x6e,0x76,0x6f,0x6c,0x76,0x65,0x4d,0x61,0x74,0x72,0x69,0x78,0x2c,0x66,0x65,0x44,0x69,0x66,0x66,0x75,0x73,0x65,0x4c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x2c,0x66,0x65,0x44,0x69,0x73,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x4d,0x61,0x70,0x2c,0x66,0x65,0x44,0x69,0x73,0x74,0x61,0x6e,0x74,0x4c,0x69,0x67,0x68,0x74,0x2c,0x66,0x65,0x44,0x72,0x6f,0x70,0x53,0x68,0x61,0x64,0x6f,0x77,0x2c,0x66,0x65,0x46,0x6c,0x6f,0x6f,0x64,0x2c,0x66,0x65,0x46,0x75,0x6e,0x63,0x41,0x2c,0x66,0x65,0x46,0x75,0x6e,0x63,0x42,0x2c,0x66,0x65,0x46,0x75,0x6e,0x63,0x47,0x2c,0x66,0x65,0x46,0x75,0x6e,0x63,0x52,0x2c,0x66,0x65,0x47,0x61,0x75,0x73,0x73,0x69,0x61,0x6e,0x42,0x6c,0x75,0x72,0x2c,0x66,0x65,0x49,0x6d,0x61,0x67,0x65,0x2c,0x66,0x65,0x4d,0x65,0x72,0x67,0x65,0x2c,0x66,0x65,0x4d,0x65,0x72,0x67,0x65,0x4e,0x6f,0x64,0x65,0x2c,0x66,0x65,0x4d,0x6f,0x72,0x70,0x68,0x6f,0x6c,0x6f,0x67,0x79,0x2c,0x66,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x66,0x65,0x50,0x6f,0x69,0x6e,0x74,0x4c,0x69,0x67,0x68,0x74,0x2c,0x66,0x65,0x53,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x4c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x2c,0x66,0x65,0x53,0x70,0x6f,0x74,0x4c,0x69,0x67,0x68,0x74,0x2c,0x66,0x65,0x54,0x69,0x6c,0x65,0x2c,0x66,0x65,0x54,0x75,0x72,0x62,0x75,0x6c,0x65,0x6e,0x63,0x65,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x67,0x2c,0x68,0x61,0x74,0x63,0x68,0x2c,0x68,0x61,0x74,0x63,0x68,0x70,0x61,0x74,0x68,0x2c,0x69,0x6d,0x61,0x67,0x65,0x2c,0x6c,0x69,0x6e,0x65,0x2c,0x6c,0x69,0x6e,0x65,0x61,0x72,0x47,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2c,0x6d,0x61,0x73,0x6b,0x2c,0x6d,0x65,0x73,0x68,0x2c,0x6d,0x65,0x73,0x68,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2c,0x6d,0x65,0x73,0x68,0x70,0x61,0x74,0x63,0x68,0x2c,0x6d,0x65,0x73,0x68,0x72,0x6f,0x77,0x2c,0x6d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x2c,0x6d,0x70,0x61,0x74,0x68,0x2c,0x70,0x61,0x74,0x68,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2c,0x70,0x6f,0x6c,0x79,0x67,0x6f,0x6e,0x2c,0x70,0x6f,0x6c,0x79,0x6c,0x69,0x6e,0x65,0x2c,0x72,0x61,0x64,0x69,0x61,0x6c,0x47,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x2c,0x72,0x65,0x63,0x74,0x2c,0x73,0x65,0x74,0x2c,0x73,0x6f,0x6c,0x69,0x64,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x73,0x74,0x6f,0x70,0x2c,0x73,0x77,0x69,0x74,0x63,0x68,0x2c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x2c,0x74,0x65,0x78,0x74,0x2c,0x74,0x65,0x78,0x74,0x50,0x61,0x74,0x68,0x2c,0x74,0x69,0x74,0x6c,0x65,0x2c,0x74,0x73,0x70,0x61,0x6e,0x2c,0x75,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x2c,0x75,0x73,0x65,0x2c,0x76,0x69,0x65,0x77,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4d,0x41,0x54,0x48,0x5f,0x54,0x41,0x47,0x53,0x20,0x3d,0x20,0x22,0x61,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x61,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x6d,0x6c,0x2c,0x6d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x6d,0x61,0x6c,0x69,0x67,0x6e,0x67,0x72,0x6f,0x75,0x70,0x2c,0x6d,0x61,0x6c,0x69,0x67,0x6e,0x6d,0x61,0x72,0x6b,0x2c,0x6d,0x61,0x74,0x68,0x2c,0x6d,0x65,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x2c,0x6d,0x65,0x72,0x72,0x6f,0x72,0x2c,0x6d,0x66,0x65,0x6e,0x63,0x65,0x64,0x2c,0x6d,0x66,0x72,0x61,0x63,0x2c,0x6d,0x66,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x6d,0x67,0x6c,0x79,0x70,0x68,0x2c,0x6d,0x69,0x2c,0x6d,0x6c,0x61,0x62,0x65,0x6c,0x65,0x64,0x74,0x72,0x2c,0x6d,0x6c,0x6f,0x6e,0x67,0x64,0x69,0x76,0x2c,0x6d,0x6d,0x75,0x6c,0x74,0x69,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x2c,0x6d,0x6e,0x2c,0x6d,0x6f,0x2c,0x6d,0x6f,0x76,0x65,0x72,0x2c,0x6d,0x70,0x61,0x64,0x64,0x65,0x64,0x2c,0x6d,0x70,0x68,0x61,0x6e,0x74,0x6f,0x6d,0x2c,0x6d,0x70,0x72,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x2c,0x6d,0x72,0x6f,0x6f,0x74,0x2c,0x6d,0x72,0x6f,0x77,0x2c,0x6d,0x73,0x2c,0x6d,0x73,0x63,0x61,0x72,0x72,0x69,0x65,0x73,0x2c,0x6d,0x73,0x63,0x61,0x72,0x72,0x79,0x2c,0x6d,0x73,0x67,0x72,0x6f,0x75,0x70,0x2c,0x6d,0x73,0x6c,0x69,0x6e,0x65,0x2c,0x6d,0x73,0x70,0x61,0x63,0x65,0x2c,0x6d,0x73,0x71,0x72,0x74,0x2c,0x6d,0x73,0x72,0x6f,0x77,0x2c,0x6d,0x73,0x74,0x61,0x63,0x6b,0x2c,0x6d,0x73,0x74,0x79,0x6c,0x65,0x2c,0x6d,0x73,0x75,0x62,0x2c,0x6d,0x73,0x75,0x62,0x73,0x75,0x70,0x2c,0x6d,0x73,0x75,0x70,0x2c,0x6d,0x74,0x61,0x62,0x6c,0x65,0x2c,0x6d,0x74,0x64,0x2c,0x6d,0x74,0x65,0x78,0x74,0x2c,0x6d,0x74,0x72,0x2c,0x6d,0x75,0x6e,0x64,0x65,0x72,0x2c,0x6d,0x75,0x6e,0x64,0x65,0x72,0x6f,0x76,0x65,0x72,0x2c,0x6e,0x6f,0x6e,0x65,0x2c,0x73,0x65,0x6d,0x61,0x6e,0x74,0x69,0x63,0x73,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x4f,0x49,0x44,0x5f,0x54,0x41,0x47,0x53,0x20,0x3d,0x20,0x22,0x61,0x72,0x65,0x61,0x2c,0x62,0x61,0x73,0x65,0x2c,0x62,0x72,0x2c,0x63,0x6f,0x6c,0x2c,0x65,0x6d,0x62,0x65,0x64,0x2c,0x68,0x72,0x2c,0x69,0x6d,0x67,0x2c,0x69,0x6e,0x70,0x75,0x74,0x2c,0x6c,0x69,0x6e,0x6b,0x2c,0x6d,0x65,0x74,0x61,0x2c,0x70,0x61,0x72,0x61,0x6d,0x2c,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x74,0x72,0x61,0x63,0x6b,0x2c,0x77,0x62,0x72,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x48,0x54,0x4d,0x4c,0x54,0x61,0x67,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x48,0x54,0x4d,0x4c,0x5f,0x54,0x41,0x47,0x53,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x56,0x47,0x54,0x61,0x67,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x53,0x56,0x47,0x5f,0x54,0x41,0x47,0x53,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x54,0x61,0x67,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x4d,0x41,0x54,0x48,0x5f,0x54,0x41,0x47,0x53,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x56,0x6f,0x69,0x64,0x54,0x61,0x67,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x56,0x4f,0x49,0x44,0x5f,0x54,0x41,0x47,0x53,0x29,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x60,0x69,0x74,0x65,0x6d,0x73,0x63,0x6f,0x70,0x65,0x2c,0x61,0x6c,0x6c,0x6f,0x77,0x66,0x75,0x6c,0x6c,0x73,0x63,0x72,0x65,0x65,0x6e,0x2c,0x66,0x6f,0x72,0x6d,0x6e,0x6f,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x2c,0x69,0x73,0x6d,0x61,0x70,0x2c,0x6e,0x6f,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x2c,0x6e,0x6f,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x2c,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x60,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x73,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x73,0x20,0x2b,0x20,0x60,0x2c,0x61,0x73,0x79,0x6e,0x63,0x2c,0x61,0x75,0x74,0x6f,0x66,0x6f,0x63,0x75,0x73,0x2c,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x79,0x2c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x64,0x65,0x66,0x65,0x72,0x2c,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x68,0x69,0x64,0x64,0x65,0x6e,0x2c,0x69,0x6e,0x65,0x72,0x74,0x2c,0x6c,0x6f,0x6f,0x70,0x2c,0x6f,0x70,0x65,0x6e,0x2c,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x2c,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x2c,0x73,0x63,0x6f,0x70,0x65,0x64,0x2c,0x73,0x65,0x61,0x6d,0x6c,0x65,0x73,0x73,0x2c,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x6d,0x75,0x74,0x65,0x64,0x2c,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x60,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4b,0x6e,0x6f,0x77,0x6e,0x48,0x74,0x6d,0x6c,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x60,0x61,0x63,0x63,0x65,0x70,0x74,0x2c,0x61,0x63,0x63,0x65,0x70,0x74,0x2d,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x2c,0x61,0x63,0x63,0x65,0x73,0x73,0x6b,0x65,0x79,0x2c,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x61,0x6c,0x69,0x67,0x6e,0x2c,0x61,0x6c,0x6c,0x6f,0x77,0x2c,0x61,0x6c,0x74,0x2c,0x61,0x73,0x79,0x6e,0x63,0x2c,0x61,0x75,0x74,0x6f,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x2c,0x61,0x75,0x74,0x6f,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x2c,0x61,0x75,0x74,0x6f,0x66,0x6f,0x63,0x75,0x73,0x2c,0x61,0x75,0x74,0x6f,0x70,0x6c,0x61,0x79,0x2c,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2c,0x62,0x67,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x62,0x6f,0x72,0x64,0x65,0x72,0x2c,0x62,0x75,0x66,0x66,0x65,0x72,0x65,0x64,0x2c,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x2c,0x63,0x68,0x61,0x6c,0x6c,0x65,0x6e,0x67,0x65,0x2c,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x2c,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x63,0x69,0x74,0x65,0x2c,0x63,0x6c,0x61,0x73,0x73,0x2c,0x63,0x6f,0x64,0x65,0x2c,0x63,0x6f,0x64,0x65,0x62,0x61,0x73,0x65,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x63,0x6f,0x6c,0x73,0x2c,0x63,0x6f,0x6c,0x73,0x70,0x61,0x6e,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x65,0x64,0x69,0x74,0x61,0x62,0x6c,0x65,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x6d,0x65,0x6e,0x75,0x2c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x2c,0x63,0x6f,0x6f,0x72,0x64,0x73,0x2c,0x63,0x72,0x6f,0x73,0x73,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2c,0x63,0x73,0x70,0x2c,0x64,0x61,0x74,0x61,0x2c,0x64,0x61,0x74,0x65,0x74,0x69,0x6d,0x65,0x2c,0x64,0x65,0x63,0x6f,0x64,0x69,0x6e,0x67,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x64,0x65,0x66,0x65,0x72,0x2c,0x64,0x69,0x72,0x2c,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x2c,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x2c,0x64,0x6f,0x77,0x6e,0x6c,0x6f,0x61,0x64,0x2c,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65,0x2c,0x64,0x72,0x6f,0x70,0x7a,0x6f,0x6e,0x65,0x2c,0x65,0x6e,0x63,0x74,0x79,0x70,0x65,0x2c,0x65,0x6e,0x74,0x65,0x72,0x6b,0x65,0x79,0x68,0x69,0x6e,0x74,0x2c,0x66,0x6f,0x72,0x2c,0x66,0x6f,0x72,0x6d,0x2c,0x66,0x6f,0x72,0x6d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x66,0x6f,0x72,0x6d,0x65,0x6e,0x63,0x74,0x79,0x70,0x65,0x2c,0x66,0x6f,0x72,0x6d,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x66,0x6f,0x72,0x6d,0x6e,0x6f,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x2c,0x66,0x6f,0x72,0x6d,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x68,0x65,0x61,0x64,0x65,0x72,0x73,0x2c,0x68,0x65,0x69,0x67,0x68,0x74,0x2c,0x68,0x69,0x64,0x64,0x65,0x6e,0x2c,0x68,0x69,0x67,0x68,0x2c,0x68,0x72,0x65,0x66,0x2c,0x68,0x72,0x65,0x66,0x6c,0x61,0x6e,0x67,0x2c,0x68,0x74,0x74,0x70,0x2d,0x65,0x71,0x75,0x69,0x76,0x2c,0x69,0x63,0x6f,0x6e,0x2c,0x69,0x64,0x2c,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x63,0x65,0x2c,0x69,0x6e,0x65,0x72,0x74,0x2c,0x69,0x6e,0x74,0x65,0x67,0x72,0x69,0x74,0x79,0x2c,0x69,0x73,0x6d,0x61,0x70,0x2c,0x69,0x74,0x65,0x6d,0x70,0x72,0x6f,0x70,0x2c,0x6b,0x65,0x79,0x74,0x79,0x70,0x65,0x2c,0x6b,0x69,0x6e,0x64,0x2c,0x6c,0x61,0x62,0x65,0x6c,0x2c,0x6c,0x61,0x6e,0x67,0x2c,0x6c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2c,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2c,0x6c,0x69,0x73,0x74,0x2c,0x6c,0x6f,0x6f,0x70,0x2c,0x6c,0x6f,0x77,0x2c,0x6d,0x61,0x6e,0x69,0x66,0x65,0x73,0x74,0x2c,0x6d,0x61,0x78,0x2c,0x6d,0x61,0x78,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6d,0x69,0x6e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6d,0x65,0x64,0x69,0x61,0x2c,0x6d,0x69,0x6e,0x2c,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x2c,0x6d,0x75,0x74,0x65,0x64,0x2c,0x6e,0x61,0x6d,0x65,0x2c,0x6e,0x6f,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x2c,0x6f,0x70,0x65,0x6e,0x2c,0x6f,0x70,0x74,0x69,0x6d,0x75,0x6d,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2c,0x70,0x69,0x6e,0x67,0x2c,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x70,0x6f,0x73,0x74,0x65,0x72,0x2c,0x70,0x72,0x65,0x6c,0x6f,0x61,0x64,0x2c,0x72,0x61,0x64,0x69,0x6f,0x67,0x72,0x6f,0x75,0x70,0x2c,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x72,0x70,0x6f,0x6c,0x69,0x63,0x79,0x2c,0x72,0x65,0x6c,0x2c,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x2c,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x2c,0x72,0x6f,0x77,0x73,0x2c,0x72,0x6f,0x77,0x73,0x70,0x61,0x6e,0x2c,0x73,0x61,0x6e,0x64,0x62,0x6f,0x78,0x2c,0x73,0x63,0x6f,0x70,0x65,0x2c,0x73,0x63,0x6f,0x70,0x65,0x64,0x2c,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2c,0x73,0x68,0x61,0x70,0x65,0x2c,0x73,0x69,0x7a,0x65,0x2c,0x73,0x69,0x7a,0x65,0x73,0x2c,0x73,0x6c,0x6f,0x74,0x2c,0x73,0x70,0x61,0x6e,0x2c,0x73,0x70,0x65,0x6c,0x6c,0x63,0x68,0x65,0x63,0x6b,0x2c,0x73,0x72,0x63,0x2c,0x73,0x72,0x63,0x64,0x6f,0x63,0x2c,0x73,0x72,0x63,0x6c,0x61,0x6e,0x67,0x2c,0x73,0x72,0x63,0x73,0x65,0x74,0x2c,0x73,0x74,0x61,0x72,0x74,0x2c,0x73,0x74,0x65,0x70,0x2c,0x73,0x74,0x79,0x6c,0x65,0x2c,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x2c,0x74,0x61,0x62,0x69,0x6e,0x64,0x65,0x78,0x2c,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x74,0x69,0x74,0x6c,0x65,0x2c,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x2c,0x74,0x79,0x70,0x65,0x2c,0x75,0x73,0x65,0x6d,0x61,0x70,0x2c,0x76,0x61,0x6c,0x75,0x65,0x2c,0x77,0x69,0x64,0x74,0x68,0x2c,0x77,0x72,0x61,0x70,0x60,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4b,0x6e,0x6f,0x77,0x6e,0x53,0x76,0x67,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x60,0x78,0x6d,0x6c,0x6e,0x73,0x2c,0x61,0x63,0x63,0x65,0x6e,0x74,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x2c,0x61,0x63,0x63,0x75,0x6d,0x75,0x6c,0x61,0x74,0x65,0x2c,0x61,0x64,0x64,0x69,0x74,0x69,0x76,0x65,0x2c,0x61,0x6c,0x69,0x67,0x6e,0x6d,0x65,0x6e,0x74,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x2c,0x61,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x2c,0x61,0x6d,0x70,0x6c,0x69,0x74,0x75,0x64,0x65,0x2c,0x61,0x72,0x61,0x62,0x69,0x63,0x2d,0x66,0x6f,0x72,0x6d,0x2c,0x61,0x73,0x63,0x65,0x6e,0x74,0x2c,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x54,0x79,0x70,0x65,0x2c,0x61,0x7a,0x69,0x6d,0x75,0x74,0x68,0x2c,0x62,0x61,0x73,0x65,0x46,0x72,0x65,0x71,0x75,0x65,0x6e,0x63,0x79,0x2c,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x2d,0x73,0x68,0x69,0x66,0x74,0x2c,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2c,0x62,0x62,0x6f,0x78,0x2c,0x62,0x65,0x67,0x69,0x6e,0x2c,0x62,0x69,0x61,0x73,0x2c,0x62,0x79,0x2c,0x63,0x61,0x6c,0x63,0x4d,0x6f,0x64,0x65,0x2c,0x63,0x61,0x70,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x2c,0x63,0x6c,0x61,0x73,0x73,0x2c,0x63,0x6c,0x69,0x70,0x2c,0x63,0x6c,0x69,0x70,0x50,0x61,0x74,0x68,0x55,0x6e,0x69,0x74,0x73,0x2c,0x63,0x6c,0x69,0x70,0x2d,0x70,0x61,0x74,0x68,0x2c,0x63,0x6c,0x69,0x70,0x2d,0x72,0x75,0x6c,0x65,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x66,0x69,0x6c,0x74,0x65,0x72,0x73,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x70,0x72,0x6f,0x66,0x69,0x6c,0x65,0x2c,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x63,0x72,0x69,0x70,0x74,0x54,0x79,0x70,0x65,0x2c,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x53,0x74,0x79,0x6c,0x65,0x54,0x79,0x70,0x65,0x2c,0x63,0x72,0x6f,0x73,0x73,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2c,0x63,0x75,0x72,0x73,0x6f,0x72,0x2c,0x63,0x78,0x2c,0x63,0x79,0x2c,0x64,0x2c,0x64,0x65,0x63,0x65,0x6c,0x65,0x72,0x61,0x74,0x65,0x2c,0x64,0x65,0x73,0x63,0x65,0x6e,0x74,0x2c,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x2c,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x2c,0x64,0x69,0x76,0x69,0x73,0x6f,0x72,0x2c,0x64,0x6f,0x6d,0x69,0x6e,0x61,0x6e,0x74,0x2d,0x62,0x61,0x73,0x65,0x6c,0x69,0x6e,0x65,0x2c,0x64,0x75,0x72,0x2c,0x64,0x78,0x2c,0x64,0x79,0x2c,0x65,0x64,0x67,0x65,0x4d,0x6f,0x64,0x65,0x2c,0x65,0x6c,0x65,0x76,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x65,0x6e,0x61,0x62,0x6c,0x65,0x2d,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2c,0x65,0x6e,0x64,0x2c,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x66,0x69,0x6c,0x6c,0x2c,0x66,0x69,0x6c,0x6c,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x66,0x69,0x6c,0x6c,0x2d,0x72,0x75,0x6c,0x65,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x52,0x65,0x73,0x2c,0x66,0x69,0x6c,0x74,0x65,0x72,0x55,0x6e,0x69,0x74,0x73,0x2c,0x66,0x6c,0x6f,0x6f,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x66,0x6c,0x6f,0x6f,0x64,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x2d,0x61,0x64,0x6a,0x75,0x73,0x74,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x72,0x65,0x74,0x63,0x68,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x74,0x79,0x6c,0x65,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x76,0x61,0x72,0x69,0x61,0x6e,0x74,0x2c,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x2c,0x66,0x6f,0x72,0x6d,0x61,0x74,0x2c,0x66,0x72,0x6f,0x6d,0x2c,0x66,0x72,0x2c,0x66,0x78,0x2c,0x66,0x79,0x2c,0x67,0x31,0x2c,0x67,0x32,0x2c,0x67,0x6c,0x79,0x70,0x68,0x2d,0x6e,0x61,0x6d,0x65,0x2c,0x67,0x6c,0x79,0x70,0x68,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x2c,0x67,0x6c,0x79,0x70,0x68,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x2c,0x67,0x6c,0x79,0x70,0x68,0x52,0x65,0x66,0x2c,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x67,0x72,0x61,0x64,0x69,0x65,0x6e,0x74,0x55,0x6e,0x69,0x74,0x73,0x2c,0x68,0x61,0x6e,0x67,0x69,0x6e,0x67,0x2c,0x68,0x65,0x69,0x67,0x68,0x74,0x2c,0x68,0x72,0x65,0x66,0x2c,0x68,0x72,0x65,0x66,0x6c,0x61,0x6e,0x67,0x2c,0x68,0x6f,0x72,0x69,0x7a,0x2d,0x61,0x64,0x76,0x2d,0x78,0x2c,0x68,0x6f,0x72,0x69,0x7a,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2d,0x78,0x2c,0x69,0x64,0x2c,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x2c,0x69,0x6d,0x61,0x67,0x65,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2c,0x69,0x6e,0x2c,0x69,0x6e,0x32,0x2c,0x69,0x6e,0x74,0x65,0x72,0x63,0x65,0x70,0x74,0x2c,0x6b,0x2c,0x6b,0x31,0x2c,0x6b,0x32,0x2c,0x6b,0x33,0x2c,0x6b,0x34,0x2c,0x6b,0x65,0x72,0x6e,0x65,0x6c,0x4d,0x61,0x74,0x72,0x69,0x78,0x2c,0x6b,0x65,0x72,0x6e,0x65,0x6c,0x55,0x6e,0x69,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x6b,0x65,0x72,0x6e,0x69,0x6e,0x67,0x2c,0x6b,0x65,0x79,0x50,0x6f,0x69,0x6e,0x74,0x73,0x2c,0x6b,0x65,0x79,0x53,0x70,0x6c,0x69,0x6e,0x65,0x73,0x2c,0x6b,0x65,0x79,0x54,0x69,0x6d,0x65,0x73,0x2c,0x6c,0x61,0x6e,0x67,0x2c,0x6c,0x65,0x6e,0x67,0x74,0x68,0x41,0x64,0x6a,0x75,0x73,0x74,0x2c,0x6c,0x65,0x74,0x74,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2c,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x6c,0x69,0x6d,0x69,0x74,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x65,0x41,0x6e,0x67,0x6c,0x65,0x2c,0x6c,0x6f,0x63,0x61,0x6c,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2d,0x65,0x6e,0x64,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2d,0x6d,0x69,0x64,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x2d,0x73,0x74,0x61,0x72,0x74,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x55,0x6e,0x69,0x74,0x73,0x2c,0x6d,0x61,0x72,0x6b,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x2c,0x6d,0x61,0x73,0x6b,0x2c,0x6d,0x61,0x73,0x6b,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x55,0x6e,0x69,0x74,0x73,0x2c,0x6d,0x61,0x73,0x6b,0x55,0x6e,0x69,0x74,0x73,0x2c,0x6d,0x61,0x74,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x2c,0x6d,0x61,0x78,0x2c,0x6d,0x65,0x64,0x69,0x61,0x2c,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x6d,0x69,0x6e,0x2c,0x6d,0x6f,0x64,0x65,0x2c,0x6e,0x61,0x6d,0x65,0x2c,0x6e,0x75,0x6d,0x4f,0x63,0x74,0x61,0x76,0x65,0x73,0x2c,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x2c,0x6f,0x72,0x64,0x65,0x72,0x2c,0x6f,0x72,0x69,0x65,0x6e,0x74,0x2c,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2c,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2c,0x6f,0x76,0x65,0x72,0x6c,0x69,0x6e,0x65,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x6f,0x76,0x65,0x72,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x2c,0x70,0x61,0x6e,0x6f,0x73,0x65,0x2d,0x31,0x2c,0x70,0x61,0x69,0x6e,0x74,0x2d,0x6f,0x72,0x64,0x65,0x72,0x2c,0x70,0x61,0x74,0x68,0x2c,0x70,0x61,0x74,0x68,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x55,0x6e,0x69,0x74,0x73,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x55,0x6e,0x69,0x74,0x73,0x2c,0x70,0x69,0x6e,0x67,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x2d,0x65,0x76,0x65,0x6e,0x74,0x73,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x73,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x73,0x41,0x74,0x58,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x73,0x41,0x74,0x59,0x2c,0x70,0x6f,0x69,0x6e,0x74,0x73,0x41,0x74,0x5a,0x2c,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x41,0x6c,0x70,0x68,0x61,0x2c,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x41,0x73,0x70,0x65,0x63,0x74,0x52,0x61,0x74,0x69,0x6f,0x2c,0x70,0x72,0x69,0x6d,0x69,0x74,0x69,0x76,0x65,0x55,0x6e,0x69,0x74,0x73,0x2c,0x72,0x2c,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x72,0x50,0x6f,0x6c,0x69,0x63,0x79,0x2c,0x72,0x65,0x66,0x58,0x2c,0x72,0x65,0x66,0x59,0x2c,0x72,0x65,0x6c,0x2c,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2d,0x69,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x72,0x65,0x70,0x65,0x61,0x74,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x72,0x65,0x70,0x65,0x61,0x74,0x44,0x75,0x72,0x2c,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x45,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2c,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x46,0x65,0x61,0x74,0x75,0x72,0x65,0x73,0x2c,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x2c,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x72,0x6f,0x74,0x61,0x74,0x65,0x2c,0x72,0x78,0x2c,0x72,0x79,0x2c,0x73,0x63,0x61,0x6c,0x65,0x2c,0x73,0x65,0x65,0x64,0x2c,0x73,0x68,0x61,0x70,0x65,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2c,0x73,0x6c,0x6f,0x70,0x65,0x2c,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2c,0x73,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x2c,0x73,0x70,0x65,0x63,0x75,0x6c,0x61,0x72,0x45,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x73,0x70,0x65,0x65,0x64,0x2c,0x73,0x70,0x72,0x65,0x61,0x64,0x4d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x73,0x74,0x61,0x72,0x74,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x73,0x74,0x64,0x44,0x65,0x76,0x69,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x73,0x74,0x65,0x6d,0x68,0x2c,0x73,0x74,0x65,0x6d,0x76,0x2c,0x73,0x74,0x69,0x74,0x63,0x68,0x54,0x69,0x6c,0x65,0x73,0x2c,0x73,0x74,0x6f,0x70,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x2c,0x73,0x74,0x6f,0x70,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x73,0x74,0x72,0x69,0x6b,0x65,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x2c,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x61,0x72,0x72,0x61,0x79,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x64,0x61,0x73,0x68,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x63,0x61,0x70,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6c,0x69,0x6e,0x65,0x6a,0x6f,0x69,0x6e,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6d,0x69,0x74,0x65,0x72,0x6c,0x69,0x6d,0x69,0x74,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2c,0x73,0x74,0x72,0x6f,0x6b,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x73,0x74,0x79,0x6c,0x65,0x2c,0x73,0x75,0x72,0x66,0x61,0x63,0x65,0x53,0x63,0x61,0x6c,0x65,0x2c,0x73,0x79,0x73,0x74,0x65,0x6d,0x4c,0x61,0x6e,0x67,0x75,0x61,0x67,0x65,0x2c,0x74,0x61,0x62,0x69,0x6e,0x64,0x65,0x78,0x2c,0x74,0x61,0x62,0x6c,0x65,0x56,0x61,0x6c,0x75,0x65,0x73,0x2c,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x74,0x61,0x72,0x67,0x65,0x74,0x58,0x2c,0x74,0x61,0x72,0x67,0x65,0x74,0x59,0x2c,0x74,0x65,0x78,0x74,0x2d,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x74,0x65,0x78,0x74,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x2c,0x74,0x65,0x78,0x74,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x74,0x6f,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2c,0x74,0x79,0x70,0x65,0x2c,0x75,0x31,0x2c,0x75,0x32,0x2c,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x2d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x2d,0x74,0x68,0x69,0x63,0x6b,0x6e,0x65,0x73,0x73,0x2c,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2c,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2d,0x62,0x69,0x64,0x69,0x2c,0x75,0x6e,0x69,0x63,0x6f,0x64,0x65,0x2d,0x72,0x61,0x6e,0x67,0x65,0x2c,0x75,0x6e,0x69,0x74,0x73,0x2d,0x70,0x65,0x72,0x2d,0x65,0x6d,0x2c,0x76,0x2d,0x61,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x2c,0x76,0x2d,0x68,0x61,0x6e,0x67,0x69,0x6e,0x67,0x2c,0x76,0x2d,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x2c,0x76,0x2d,0x6d,0x61,0x74,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x2c,0x76,0x61,0x6c,0x75,0x65,0x73,0x2c,0x76,0x65,0x63,0x74,0x6f,0x72,0x2d,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x76,0x65,0x72,0x74,0x2d,0x61,0x64,0x76,0x2d,0x79,0x2c,0x76,0x65,0x72,0x74,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2d,0x78,0x2c,0x76,0x65,0x72,0x74,0x2d,0x6f,0x72,0x69,0x67,0x69,0x6e,0x2d,0x79,0x2c,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x2c,0x76,0x69,0x65,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x2c,0x77,0x69,0x64,0x74,0x68,0x2c,0x77,0x69,0x64,0x74,0x68,0x73,0x2c,0x77,0x6f,0x72,0x64,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x2c,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0x2d,0x6d,0x6f,0x64,0x65,0x2c,0x78,0x2c,0x78,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x2c,0x78,0x31,0x2c,0x78,0x32,0x2c,0x78,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x61,0x63,0x74,0x75,0x61,0x74,0x65,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x61,0x72,0x63,0x72,0x6f,0x6c,0x65,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x68,0x72,0x65,0x66,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x72,0x6f,0x6c,0x65,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x73,0x68,0x6f,0x77,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x74,0x69,0x74,0x6c,0x65,0x2c,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x74,0x79,0x70,0x65,0x2c,0x78,0x6d,0x6c,0x6e,0x73,0x3a,0x78,0x6c,0x69,0x6e,0x6b,0x2c,0x78,0x6d,0x6c,0x3a,0x62,0x61,0x73,0x65,0x2c,0x78,0x6d,0x6c,0x3a,0x6c,0x61,0x6e,0x67,0x2c,0x78,0x6d,0x6c,0x3a,0x73,0x70,0x61,0x63,0x65,0x2c,0x79,0x2c,0x79,0x31,0x2c,0x79,0x32,0x2c,0x79,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x7a,0x2c,0x7a,0x6f,0x6f,0x6d,0x41,0x6e,0x64,0x50,0x61,0x6e,0x60,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x52,0x65,0x6e,0x64,0x65,0x72,0x61,0x62,0x6c,0x65,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x73,0x73,0x56,0x61,0x72,0x4e,0x61,0x6d,0x65,0x45,0x73,0x63,0x61,0x70,0x65,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2e,0x2f,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x5b,0x5c,0x5c,0x5c,0x5d,0x5e,0x60,0x7b,0x7c,0x7d,0x7e,0x5d,0x2f,0x67,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x43,0x73,0x73,0x56,0x61,0x72,0x4e,0x61,0x6d,0x65,0x28,0x6b,0x65,0x79,0x2c,0x20,0x64,0x6f,0x75,0x62,0x6c,0x65,0x45,0x73,0x63,0x61,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x63,0x73,0x73,0x56,0x61,0x72,0x4e,0x61,0x6d,0x65,0x45,0x73,0x63,0x61,0x70,0x65,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x52,0x45,0x2c,0x0a,0x20,0x20,0x20,0x20,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x60,0x5c,0x5c,0x24,0x7b,0x73,0x7d,0x60,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x43,0x6f,0x6d,0x70,0x61,0x72,0x65,0x41,0x72,0x72,0x61,0x79,0x73,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x62,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x71,0x75,0x61,0x6c,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x65,0x71,0x75,0x61,0x6c,0x20,0x26,0x26,0x20,0x69,0x20,0x3c,0x20,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x71,0x75,0x61,0x6c,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x61,0x5b,0x69,0x5d,0x2c,0x20,0x62,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x71,0x75,0x61,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x62,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x44,0x61,0x74,0x65,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x44,0x61,0x74,0x65,0x28,0x62,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x26,0x26,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3f,0x20,0x61,0x2e,0x67,0x65,0x74,0x54,0x69,0x6d,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x62,0x2e,0x67,0x65,0x74,0x54,0x69,0x6d,0x65,0x28,0x29,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x62,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x62,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x62,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x26,0x26,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3f,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x43,0x6f,0x6d,0x70,0x61,0x72,0x65,0x41,0x72,0x72,0x61,0x79,0x73,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x62,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x21,0x62,0x56,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x4b,0x65,0x79,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x61,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x4b,0x65,0x79,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x62,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x4b,0x65,0x79,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x62,0x4b,0x65,0x79,0x73,0x43,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x48,0x61,0x73,0x4b,0x65,0x79,0x20,0x3d,0x20,0x61,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x48,0x61,0x73,0x4b,0x65,0x79,0x20,0x3d,0x20,0x62,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x48,0x61,0x73,0x4b,0x65,0x79,0x20,0x26,0x26,0x20,0x21,0x62,0x48,0x61,0x73,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x61,0x48,0x61,0x73,0x4b,0x65,0x79,0x20,0x26,0x26,0x20,0x62,0x48,0x61,0x73,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x61,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x62,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x61,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x62,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x61,0x72,0x72,0x2c,0x20,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x72,0x2e,0x66,0x69,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x28,0x28,0x69,0x74,0x65,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x69,0x74,0x65,0x6d,0x2c,0x20,0x76,0x61,0x6c,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x65,0x66,0x24,0x31,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x28,0x76,0x61,0x6c,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x22,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x20,0x3f,0x20,0x76,0x61,0x6c,0x20,0x3a,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x22,0x22,0x20,0x3a,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x29,0x20,0x26,0x26,0x20,0x28,0x76,0x61,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x54,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x29,0x20,0x3f,0x20,0x69,0x73,0x52,0x65,0x66,0x24,0x31,0x28,0x76,0x61,0x6c,0x29,0x20,0x3f,0x20,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x76,0x61,0x6c,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x72,0x2c,0x20,0x32,0x29,0x20,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x72,0x20,0x3d,0x20,0x28,0x5f,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x24,0x31,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x72,0x28,0x5f,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x61,0x70,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x60,0x4d,0x61,0x70,0x28,0x24,0x7b,0x76,0x61,0x6c,0x2e,0x73,0x69,0x7a,0x65,0x7d,0x29,0x60,0x5d,0x3a,0x20,0x5b,0x2e,0x2e,0x2e,0x76,0x61,0x6c,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x5d,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x2c,0x20,0x5b,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x32,0x5d,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x5b,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6b,0x65,0x79,0x2c,0x20,0x69,0x29,0x20,0x2b,0x20,0x22,0x20,0x3d,0x3e,0x22,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x65,0x74,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x60,0x53,0x65,0x74,0x28,0x24,0x7b,0x76,0x61,0x6c,0x2e,0x73,0x69,0x7a,0x65,0x7d,0x29,0x60,0x5d,0x3a,0x20,0x5b,0x2e,0x2e,0x2e,0x76,0x61,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x5d,0x2e,0x6d,0x61,0x70,0x28,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x76,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x50,0x6c,0x61,0x69,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x20,0x3d,0x20,0x28,0x76,0x2c,0x20,0x69,0x20,0x3d,0x20,0x22,0x22,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x65,0x73,0x32,0x30,0x31,0x39,0x2b,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x73,0x74,0x20,0x68,0x65,0x72,0x65,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x62,0x3a,0x20,0x65,0x73,0x32,0x30,0x31,0x36,0x20,0x63,0x68,0x65,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x76,0x29,0x20,0x3f,0x20,0x60,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x24,0x7b,0x28,0x5f,0x61,0x20,0x3d,0x20,0x76,0x2e,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x29,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x5f,0x61,0x20,0x3a,0x20,0x69,0x7d,0x29,0x60,0x20,0x3a,0x20,0x76,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x6d,0x73,0x67,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x5b,0x56,0x75,0x65,0x20,0x77,0x61,0x72,0x6e,0x5d,0x20,0x24,0x7b,0x6d,0x73,0x67,0x7d,0x60,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3b,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x50,0x61,0x75,0x73,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x20,0x7c,0x7c,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x50,0x61,0x75,0x73,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x2c,0x20,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x70,0x61,0x75,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x70,0x61,0x75,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x52,0x65,0x73,0x75,0x6d,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x2c,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x69,0x6e,0x67,0x20,0x61,0x6c,0x6c,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x72,0x65,0x73,0x75,0x6d,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x50,0x61,0x75,0x73,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x50,0x61,0x75,0x73,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x2c,0x20,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x65,0x73,0x75,0x6d,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x65,0x73,0x75,0x6d,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x75,0x6e,0x28,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x60,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x72,0x75,0x6e,0x20,0x61,0x6e,0x20,0x69,0x6e,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x54,0x68,0x69,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6e,0x6f,0x6e,0x2d,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x54,0x68,0x69,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6e,0x6f,0x6e,0x2d,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x6f,0x66,0x66,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x6f,0x70,0x28,0x66,0x72,0x6f,0x6d,0x50,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x2c,0x20,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x5b,0x69,0x5d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x6f,0x70,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x66,0x72,0x6f,0x6d,0x50,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x73,0x74,0x20,0x26,0x26,0x20,0x6c,0x61,0x73,0x74,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x5b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x28,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x28,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x53,0x63,0x6f,0x70,0x65,0x44,0x69,0x73,0x70,0x6f,0x73,0x65,0x28,0x66,0x6e,0x2c,0x20,0x66,0x61,0x69,0x6c,0x53,0x69,0x6c,0x65,0x6e,0x74,0x6c,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x66,0x61,0x69,0x6c,0x53,0x69,0x6c,0x65,0x6e,0x74,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x6f,0x6e,0x53,0x63,0x6f,0x70,0x65,0x44,0x69,0x73,0x70,0x6f,0x73,0x65,0x28,0x29,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x75,0x73,0x65,0x64,0x51,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6e,0x20,0x3d,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x3d,0x20,0x31,0x20,0x7c,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x20,0x26,0x26,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x36,0x34,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x73,0x75,0x6d,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x75,0x73,0x65,0x64,0x51,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x68,0x61,0x73,0x28,0x74,0x68,0x69,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x64,0x51,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x6e,0x6f,0x74,0x69,0x66,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x32,0x20,0x26,0x26,0x20,0x21,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x33,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x38,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x75,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x44,0x65,0x70,0x73,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x41,0x63,0x74,0x69,0x76,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x2d,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x61,0x20,0x56,0x75,0x65,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x62,0x75,0x67,0x2e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x44,0x65,0x70,0x73,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x45,0x66,0x66,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x6f,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x75,0x62,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x53,0x74,0x6f,0x70,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x6f,0x6e,0x53,0x74,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x64,0x51,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x61,0x64,0x64,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6e,0x49,0x66,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x72,0x75,0x6e,0x49,0x66,0x44,0x69,0x72,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x44,0x69,0x72,0x74,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x75,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x64,0x69,0x72,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x44,0x69,0x72,0x74,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x62,0x61,0x74,0x63,0x68,0x44,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x53,0x75,0x62,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x74,0x63,0x68,0x28,0x73,0x75,0x62,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x75,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x73,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x75,0x62,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x53,0x75,0x62,0x20,0x3d,0x20,0x73,0x75,0x62,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x44,0x65,0x70,0x74,0x68,0x2b,0x2b,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x64,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x2d,0x2d,0x62,0x61,0x74,0x63,0x68,0x44,0x65,0x70,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x20,0x3d,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x65,0x2e,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x20,0x3d,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x65,0x64,0x53,0x75,0x62,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x65,0x2e,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x44,0x65,0x70,0x73,0x28,0x73,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x73,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x41,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x44,0x65,0x70,0x73,0x28,0x73,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x65,0x61,0x64,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x73,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x74,0x61,0x69,0x6c,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x61,0x69,0x6c,0x29,0x20,0x74,0x61,0x69,0x6c,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x75,0x62,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x44,0x65,0x70,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x41,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x41,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x68,0x65,0x61,0x64,0x3b,0x0a,0x20,0x20,0x73,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x74,0x61,0x69,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x44,0x69,0x72,0x74,0x79,0x28,0x73,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x73,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x7c,0x7c,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x26,0x26,0x20,0x28,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7c,0x7c,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x62,0x2e,0x5f,0x64,0x69,0x72,0x74,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x20,0x26,0x26,0x20,0x21,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x36,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x36,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x70,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x64,0x65,0x70,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x21,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x69,0x73,0x53,0x53,0x52,0x20,0x26,0x26,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x64,0x65,0x70,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x44,0x69,0x72,0x74,0x79,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x44,0x65,0x70,0x73,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6e,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x44,0x65,0x70,0x73,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x32,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x75,0x62,0x28,0x6c,0x69,0x6e,0x6b,0x2c,0x20,0x73,0x6f,0x66,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x64,0x65,0x70,0x2c,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x2c,0x20,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x20,0x7d,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x2e,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x2e,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x48,0x65,0x61,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x48,0x65,0x61,0x64,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x26,0x26,0x20,0x64,0x65,0x70,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x3d,0x20,0x64,0x65,0x70,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x64,0x65,0x70,0x73,0x3b,0x20,0x6c,0x3b,0x20,0x6c,0x20,0x3d,0x20,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x75,0x62,0x28,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x6f,0x66,0x74,0x20,0x26,0x26,0x20,0x21,0x2d,0x2d,0x64,0x65,0x70,0x2e,0x73,0x63,0x20,0x26,0x26,0x20,0x64,0x65,0x70,0x2e,0x6d,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x6d,0x61,0x70,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x64,0x65,0x70,0x2e,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x44,0x65,0x70,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x2c,0x20,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x7d,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x28,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6e,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6e,0x20,0x3d,0x20,0x66,0x6e,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x72,0x75,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6e,0x6e,0x65,0x72,0x20,0x3d,0x20,0x65,0x2e,0x72,0x75,0x6e,0x2e,0x62,0x69,0x6e,0x64,0x28,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x75,0x6e,0x6e,0x65,0x72,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x75,0x6e,0x6e,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x6f,0x70,0x28,0x72,0x75,0x6e,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x75,0x6e,0x6e,0x65,0x72,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x73,0x74,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x74,0x72,0x61,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3f,0x20,0x74,0x72,0x75,0x65,0x20,0x3a,0x20,0x6c,0x61,0x73,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x7d,0x20,0x3d,0x20,0x65,0x3b,0x0a,0x20,0x20,0x65,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x4c,0x69,0x6e,0x6b,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x73,0x75,0x62,0x2c,0x20,0x64,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x75,0x62,0x20,0x3d,0x20,0x73,0x75,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x20,0x3d,0x20,0x64,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x65,0x76,0x41,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x44,0x65,0x70,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x4c,0x69,0x6e,0x6b,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x64,0x65,0x70,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x44,0x6f,0x75,0x62,0x6c,0x79,0x20,0x6c,0x69,0x6e,0x6b,0x65,0x64,0x20,0x6c,0x69,0x73,0x74,0x20,0x72,0x65,0x70,0x72,0x65,0x73,0x65,0x6e,0x74,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x69,0x6e,0x67,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x28,0x74,0x61,0x69,0x6c,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x75,0x62,0x73,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x46,0x6f,0x72,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x64,0x65,0x70,0x73,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x53,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x72,0x20,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x63,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x75,0x62,0x73,0x48,0x65,0x61,0x64,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x64,0x65,0x62,0x75,0x67,0x49,0x6e,0x66,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x7c,0x7c,0x20,0x21,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x7c,0x7c,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x7c,0x7c,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x73,0x75,0x62,0x20,0x21,0x3d,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x4c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x4c,0x69,0x6e,0x6b,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x53,0x75,0x62,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x44,0x65,0x70,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x62,0x75,0x67,0x49,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x64,0x65,0x62,0x75,0x67,0x49,0x6e,0x66,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x6f,0x74,0x69,0x66,0x79,0x28,0x64,0x65,0x62,0x75,0x67,0x49,0x6e,0x66,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6e,0x6f,0x74,0x69,0x66,0x79,0x28,0x64,0x65,0x62,0x75,0x67,0x49,0x6e,0x66,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x68,0x65,0x61,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x75,0x62,0x73,0x48,0x65,0x61,0x64,0x3b,0x20,0x68,0x65,0x61,0x64,0x3b,0x20,0x68,0x65,0x61,0x64,0x20,0x3d,0x20,0x68,0x65,0x61,0x64,0x2e,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x61,0x64,0x2e,0x73,0x75,0x62,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x26,0x26,0x20,0x21,0x28,0x68,0x65,0x61,0x64,0x2e,0x73,0x75,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x38,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x2e,0x73,0x75,0x62,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x68,0x65,0x61,0x64,0x2e,0x73,0x75,0x62,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x62,0x75,0x67,0x49,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x75,0x62,0x73,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x73,0x75,0x62,0x2e,0x6e,0x6f,0x74,0x69,0x66,0x79,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x73,0x75,0x62,0x2e,0x64,0x65,0x70,0x2e,0x6e,0x6f,0x74,0x69,0x66,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x53,0x75,0x62,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x73,0x63,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x73,0x75,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x26,0x26,0x20,0x21,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x34,0x20,0x7c,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6c,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2e,0x64,0x65,0x70,0x73,0x3b,0x20,0x6c,0x3b,0x20,0x6c,0x20,0x3d,0x20,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x53,0x75,0x62,0x28,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x61,0x69,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x70,0x72,0x65,0x76,0x53,0x75,0x62,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x61,0x69,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x61,0x69,0x6c,0x29,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x61,0x69,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x53,0x75,0x62,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x48,0x65,0x61,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x48,0x65,0x61,0x64,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x64,0x65,0x70,0x2e,0x73,0x75,0x62,0x73,0x20,0x3d,0x20,0x6c,0x69,0x6e,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x22,0x4f,0x62,0x6a,0x65,0x63,0x74,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4d,0x41,0x50,0x5f,0x4b,0x45,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x22,0x4d,0x61,0x70,0x20,0x6b,0x65,0x79,0x73,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x22,0x41,0x72,0x72,0x61,0x79,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x20,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x54,0x72,0x61,0x63,0x6b,0x20,0x26,0x26,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x65,0x70,0x20,0x3d,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x65,0x70,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x6d,0x61,0x70,0x20,0x3d,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x74,0x72,0x61,0x63,0x6b,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x54,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6e,0x20,0x3d,0x20,0x28,0x64,0x65,0x70,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x2e,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x61,0x72,0x67,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x72,0x75,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x64,0x65,0x70,0x2c,0x20,0x6b,0x65,0x79,0x32,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x32,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x32,0x20,0x3d,0x3d,0x3d,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6b,0x65,0x79,0x32,0x29,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x32,0x20,0x3e,0x3d,0x20,0x6e,0x65,0x77,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x7c,0x7c,0x20,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x49,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x61,0x64,0x64,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x4d,0x41,0x50,0x5f,0x4b,0x45,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x49,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x4d,0x41,0x50,0x5f,0x4b,0x45,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x73,0x65,0x74,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x28,0x64,0x65,0x70,0x73,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x65,0x6e,0x64,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x44,0x65,0x70,0x46,0x72,0x6f,0x6d,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x70,0x4d,0x61,0x70,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x70,0x4d,0x61,0x70,0x20,0x26,0x26,0x20,0x64,0x65,0x70,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x72,0x72,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x61,0x72,0x72,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x61,0x72,0x72,0x61,0x79,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x3b,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x72,0x61,0x77,0x2c,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x61,0x72,0x72,0x61,0x79,0x29,0x20,0x3f,0x20,0x72,0x61,0x77,0x20,0x3a,0x20,0x72,0x61,0x77,0x2e,0x6d,0x61,0x70,0x28,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x61,0x72,0x72,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x61,0x72,0x72,0x29,0x2c,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x72,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x61,0x79,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x2c,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x78,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x78,0x29,0x20,0x3f,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x78,0x29,0x20,0x3a,0x20,0x78,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x22,0x2c,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x31,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x65,0x76,0x65,0x72,0x79,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x65,0x76,0x65,0x72,0x79,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x76,0x2e,0x6d,0x61,0x70,0x28,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x66,0x69,0x6e,0x64,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x66,0x69,0x6e,0x64,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x66,0x69,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x66,0x69,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x66,0x69,0x6e,0x64,0x4c,0x61,0x73,0x74,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x66,0x69,0x6e,0x64,0x4c,0x61,0x73,0x74,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x66,0x69,0x6e,0x64,0x4c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x66,0x69,0x6e,0x64,0x4c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6c,0x61,0x74,0x2c,0x20,0x66,0x6c,0x61,0x74,0x4d,0x61,0x70,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x6e,0x65,0x66,0x69,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x20,0x62,0x75,0x74,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x73,0x74,0x72,0x61,0x69,0x67,0x68,0x74,0x2d,0x66,0x6f,0x72,0x77,0x61,0x72,0x64,0x20,0x74,0x6f,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x50,0x72,0x6f,0x78,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x22,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x50,0x72,0x6f,0x78,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x22,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6a,0x6f,0x69,0x6e,0x28,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6b,0x65,0x79,0x73,0x28,0x29,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x61,0x64,0x73,0x20,0x60,0x6c,0x65,0x6e,0x67,0x74,0x68,0x60,0x2c,0x20,0x6e,0x6f,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x73,0x61,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x0a,0x20,0x20,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x50,0x72,0x6f,0x78,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x22,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6d,0x61,0x70,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x6d,0x61,0x70,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x70,0x6f,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x70,0x6f,0x70,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x70,0x75,0x73,0x68,0x22,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x66,0x6e,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x72,0x65,0x64,0x75,0x63,0x65,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x52,0x69,0x67,0x68,0x74,0x28,0x66,0x6e,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x72,0x65,0x64,0x75,0x63,0x65,0x52,0x69,0x67,0x68,0x74,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x73,0x68,0x69,0x66,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6c,0x69,0x63,0x65,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x75,0x73,0x65,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x20,0x62,0x75,0x74,0x20,0x61,0x6c,0x73,0x6f,0x20,0x73,0x65,0x65,0x6d,0x73,0x20,0x74,0x6f,0x20,0x62,0x65,0x67,0x20,0x66,0x6f,0x72,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x74,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x0a,0x20,0x20,0x73,0x6f,0x6d,0x65,0x28,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x73,0x6f,0x6d,0x65,0x22,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x73,0x70,0x6c,0x69,0x63,0x65,0x22,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x52,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x2e,0x74,0x6f,0x52,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x53,0x6f,0x72,0x74,0x65,0x64,0x28,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x2e,0x74,0x6f,0x53,0x6f,0x72,0x74,0x65,0x64,0x28,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x53,0x70,0x6c,0x69,0x63,0x65,0x64,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x68,0x69,0x73,0x29,0x2e,0x74,0x6f,0x53,0x70,0x6c,0x69,0x63,0x65,0x64,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x22,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x2c,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x77,0x72,0x61,0x70,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x74,0x65,0x72,0x20,0x3d,0x20,0x61,0x72,0x72,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x73,0x65,0x6c,0x66,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x65,0x6c,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x74,0x65,0x72,0x2e,0x5f,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x69,0x74,0x65,0x72,0x2e,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x74,0x65,0x72,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x69,0x74,0x65,0x72,0x2e,0x5f,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x77,0x72,0x61,0x70,0x56,0x61,0x6c,0x75,0x65,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x74,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x61,0x79,0x50,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x52,0x65,0x74,0x46,0x6e,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x61,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x73,0x65,0x6c,0x66,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x46,0x6e,0x20,0x3d,0x20,0x61,0x72,0x72,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x46,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x61,0x72,0x72,0x61,0x79,0x50,0x72,0x6f,0x74,0x6f,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x32,0x20,0x3d,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x46,0x6e,0x2e,0x61,0x70,0x70,0x6c,0x79,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x20,0x3f,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x32,0x29,0x20,0x3a,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x32,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x20,0x3d,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x69,0x74,0x65,0x6d,0x29,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x66,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x46,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x72,0x72,0x2c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x20,0x26,0x26,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x52,0x65,0x74,0x46,0x6e,0x20,0x3f,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x52,0x65,0x74,0x46,0x6e,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x3a,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x20,0x3d,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x20,0x21,0x3d,0x3d,0x20,0x73,0x65,0x6c,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x65,0x6c,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x63,0x63,0x2c,0x20,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x61,0x63,0x63,0x2c,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x69,0x74,0x65,0x6d,0x29,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x66,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x61,0x63,0x63,0x2c,0x20,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x61,0x63,0x63,0x2c,0x20,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x72,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x46,0x6e,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x50,0x72,0x6f,0x78,0x79,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x73,0x65,0x6c,0x66,0x29,0x3b,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x61,0x72,0x72,0x2c,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x20,0x41,0x52,0x52,0x41,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x61,0x72,0x72,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x72,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x72,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x73,0x65,0x6c,0x66,0x29,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x2e,0x61,0x70,0x70,0x6c,0x79,0x28,0x73,0x65,0x6c,0x66,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x65,0x6e,0x64,0x42,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x61,0x62,0x6c,0x65,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x60,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x2c,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x2c,0x5f,0x5f,0x69,0x73,0x56,0x75,0x65,0x60,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x0a,0x20,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4e,0x61,0x6d,0x65,0x73,0x28,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x22,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x63,0x61,0x6c,0x6c,0x65,0x72,0x22,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x29,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x62,0x6a,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x6f,0x62,0x6a,0x2c,0x20,0x22,0x68,0x61,0x73,0x22,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x62,0x6a,0x2e,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x42,0x61,0x73,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3d,0x20,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x3f,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3f,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x61,0x70,0x20,0x3a,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x61,0x70,0x20,0x3a,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3f,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4d,0x61,0x70,0x20,0x3a,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4d,0x61,0x70,0x29,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x70,0x72,0x6f,0x78,0x79,0x2c,0x20,0x62,0x75,0x74,0x20,0x68,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x20,0x69,0x73,0x20,0x61,0x20,0x75,0x73,0x65,0x72,0x20,0x70,0x72,0x6f,0x78,0x79,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x70,0x72,0x6f,0x78,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x26,0x26,0x20,0x28,0x66,0x6e,0x20,0x3d,0x20,0x61,0x72,0x72,0x61,0x79,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x70,0x72,0x6f,0x78,0x79,0x20,0x77,0x72,0x61,0x70,0x70,0x69,0x6e,0x67,0x20,0x61,0x20,0x72,0x65,0x66,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x77,0x20,0x72,0x65,0x66,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x20,0x73,0x6f,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x65,0x20,0x64,0x6f,0x6e,0x27,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x6c,0x20,0x60,0x74,0x6f,0x52,0x61,0x77,0x60,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x66,0x20,0x69,0x6e,0x20,0x61,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x73,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3f,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3a,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6b,0x65,0x79,0x29,0x20,0x3f,0x20,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x68,0x61,0x73,0x28,0x6b,0x65,0x79,0x29,0x20,0x3a,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x61,0x62,0x6c,0x65,0x4b,0x65,0x79,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x65,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x29,0x20,0x3f,0x20,0x72,0x65,0x73,0x20,0x3a,0x20,0x72,0x65,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x72,0x65,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x3f,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x72,0x65,0x73,0x29,0x20,0x3a,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x72,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x4d,0x75,0x74,0x61,0x62,0x6c,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x42,0x61,0x73,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x72,0x28,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x29,0x20,0x3f,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x6b,0x65,0x79,0x29,0x20,0x3c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3a,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3f,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3a,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x61,0x64,0x64,0x22,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x26,0x26,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x68,0x61,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x68,0x61,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x21,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x2e,0x68,0x61,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x68,0x61,0x73,0x22,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6f,0x77,0x6e,0x4b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3f,0x20,0x22,0x6c,0x65,0x6e,0x67,0x74,0x68,0x22,0x20,0x3a,0x20,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x6f,0x77,0x6e,0x4b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x42,0x61,0x73,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x72,0x28,0x74,0x72,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x53,0x65,0x74,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x7d,0x22,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x44,0x65,0x6c,0x65,0x74,0x65,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x7d,0x22,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x75,0x74,0x61,0x62,0x6c,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x75,0x74,0x61,0x62,0x6c,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x75,0x74,0x61,0x62,0x6c,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x76,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x74,0x65,0x72,0x61,0x62,0x6c,0x65,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x4d,0x61,0x70,0x20,0x3d,0x20,0x69,0x73,0x4d,0x61,0x70,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x50,0x61,0x69,0x72,0x20,0x3d,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x22,0x20,0x7c,0x7c,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x26,0x26,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x4d,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4b,0x65,0x79,0x4f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6b,0x65,0x79,0x73,0x22,0x20,0x26,0x26,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x49,0x73,0x4d,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x6e,0x65,0x72,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x3d,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3f,0x20,0x74,0x6f,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3a,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x3f,0x20,0x74,0x6f,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3a,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4b,0x65,0x79,0x4f,0x6e,0x6c,0x79,0x20,0x3f,0x20,0x4d,0x41,0x50,0x5f,0x4b,0x45,0x59,0x5f,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x20,0x3a,0x20,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x6e,0x65,0x72,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x6f,0x6e,0x65,0x20,0x3f,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x20,0x7d,0x20,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x69,0x73,0x50,0x61,0x69,0x72,0x20,0x3f,0x20,0x5b,0x77,0x72,0x61,0x70,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x30,0x5d,0x29,0x2c,0x20,0x77,0x72,0x61,0x70,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x31,0x5d,0x29,0x5d,0x20,0x3a,0x20,0x77,0x72,0x61,0x70,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x65,0x72,0x61,0x62,0x6c,0x65,0x20,0x70,0x72,0x6f,0x74,0x6f,0x63,0x6f,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x20,0x3f,0x20,0x60,0x6f,0x6e,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x7d,0x22,0x20,0x60,0x20,0x3a,0x20,0x60,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x79,0x70,0x65,0x29,0x7d,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x20,0x3f,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3a,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x22,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x28,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x6b,0x65,0x79,0x2c,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x61,0x73,0x20,0x7d,0x20,0x3d,0x20,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3f,0x20,0x74,0x6f,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3a,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3f,0x20,0x74,0x6f,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3a,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x72,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x72,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x67,0x65,0x74,0x28,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x21,0x3d,0x3d,0x20,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x73,0x69,0x7a,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x2c,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x20,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x73,0x69,0x7a,0x65,0x22,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x6b,0x65,0x79,0x2c,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x68,0x61,0x73,0x22,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x68,0x61,0x73,0x22,0x2c,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x20,0x3f,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x68,0x61,0x73,0x28,0x6b,0x65,0x79,0x29,0x20,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x68,0x61,0x73,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x68,0x61,0x73,0x28,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x72,0x61,0x70,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3f,0x20,0x74,0x6f,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3a,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3f,0x20,0x74,0x6f,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3a,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x72,0x61,0x77,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x2c,0x20,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x5f,0x4b,0x45,0x59,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x41,0x72,0x67,0x2c,0x20,0x77,0x72,0x61,0x70,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x20,0x77,0x72,0x61,0x70,0x28,0x6b,0x65,0x79,0x29,0x2c,0x20,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x22,0x61,0x64,0x64,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x22,0x73,0x65,0x74,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x22,0x63,0x6c,0x65,0x61,0x72,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x70,0x72,0x6f,0x74,0x6f,0x2e,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x61,0x64,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x61,0x64,0x64,0x22,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x61,0x73,0x2c,0x20,0x67,0x65,0x74,0x20,0x7d,0x20,0x3d,0x20,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x49,0x64,0x65,0x6e,0x74,0x69,0x74,0x79,0x4b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x68,0x61,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x73,0x65,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x61,0x64,0x64,0x22,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x61,0x73,0x2c,0x20,0x67,0x65,0x74,0x20,0x7d,0x20,0x3d,0x20,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x49,0x64,0x65,0x6e,0x74,0x69,0x74,0x79,0x4b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x68,0x61,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x20,0x3f,0x20,0x67,0x65,0x74,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x64,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x64,0x49,0x74,0x65,0x6d,0x73,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x73,0x69,0x7a,0x65,0x20,0x21,0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x69,0x73,0x4d,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3a,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x64,0x49,0x74,0x65,0x6d,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x54,0x61,0x72,0x67,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x65,0x74,0x68,0x6f,0x64,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x22,0x6b,0x65,0x79,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x0a,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x65,0x74,0x68,0x6f,0x64,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x5d,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x74,0x65,0x72,0x61,0x62,0x6c,0x65,0x4d,0x65,0x74,0x68,0x6f,0x64,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3f,0x20,0x69,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x75,0x74,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x74,0x72,0x75,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x72,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x74,0x72,0x75,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x49,0x64,0x65,0x6e,0x74,0x69,0x74,0x79,0x4b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x68,0x61,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x4b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x72,0x61,0x77,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x54,0x79,0x70,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x62,0x6f,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x77,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x24,0x7b,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x4d,0x61,0x70,0x60,0x20,0x3f,0x20,0x60,0x20,0x61,0x73,0x20,0x6b,0x65,0x79,0x73,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x63,0x61,0x6e,0x20,0x6c,0x65,0x61,0x64,0x20,0x74,0x6f,0x20,0x69,0x6e,0x63,0x6f,0x6e,0x73,0x69,0x73,0x74,0x65,0x6e,0x63,0x69,0x65,0x73,0x2e,0x20,0x41,0x76,0x6f,0x69,0x64,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x69,0x61,0x74,0x69,0x6e,0x67,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x77,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x73,0x20,0x6f,0x66,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x61,0x6e,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x69,0x66,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x4d,0x61,0x70,0x28,0x72,0x61,0x77,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x72,0x61,0x77,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x41,0x72,0x72,0x61,0x79,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4d,0x4d,0x4f,0x4e,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x4d,0x61,0x70,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x53,0x65,0x74,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x32,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4c,0x4c,0x45,0x43,0x54,0x49,0x4f,0x4e,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x20,0x2f,0x2a,0x20,0x49,0x4e,0x56,0x41,0x4c,0x49,0x44,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x22,0x5d,0x20,0x7c,0x7c,0x20,0x21,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x69,0x73,0x45,0x78,0x74,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x30,0x20,0x2f,0x2a,0x20,0x49,0x4e,0x56,0x41,0x4c,0x49,0x44,0x20,0x2a,0x2f,0x20,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x4d,0x61,0x70,0x28,0x74,0x6f,0x52,0x61,0x77,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x75,0x74,0x61,0x62,0x6c,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x75,0x74,0x61,0x62,0x6c,0x65,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4d,0x61,0x70,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4d,0x61,0x70,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x61,0x70,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x43,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x4d,0x61,0x70,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x2c,0x20,0x62,0x61,0x73,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x20,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x20,0x70,0x72,0x6f,0x78,0x79,0x4d,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x6d,0x61,0x64,0x65,0x20,0x24,0x7b,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x3f,0x20,0x22,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x20,0x3a,0x20,0x22,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x7d,0x3a,0x20,0x24,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x20,0x26,0x26,0x20,0x21,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x32,0x20,0x26,0x26,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x70,0x72,0x6f,0x78,0x79,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x50,0x72,0x6f,0x78,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x50,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x49,0x4e,0x56,0x41,0x4c,0x49,0x44,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4c,0x4c,0x45,0x43,0x54,0x49,0x4f,0x4e,0x20,0x2a,0x2f,0x20,0x3f,0x20,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3a,0x20,0x62,0x61,0x73,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x70,0x72,0x6f,0x78,0x79,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x70,0x72,0x6f,0x78,0x79,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x22,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x21,0x21,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x20,0x3d,0x20,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x26,0x26,0x20,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x20,0x3f,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x72,0x61,0x77,0x29,0x20,0x3a,0x20,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x22,0x29,0x20,0x26,0x26,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x69,0x73,0x45,0x78,0x74,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x20,0x3f,0x20,0x72,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x22,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x66,0x28,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x28,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x65,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x22,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x22,0x5d,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x22,0x5d,0x20,0x3d,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x32,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x2e,0x74,0x72,0x61,0x63,0x6b,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x74,0x68,0x69,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x73,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x22,0x5d,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x75,0x73,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x61,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x75,0x73,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x2e,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x74,0x68,0x69,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x32,0x2e,0x64,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x32,0x2e,0x64,0x65,0x70,0x2e,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x72,0x65,0x66,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3a,0x20,0x72,0x65,0x66,0x32,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6e,0x72,0x65,0x66,0x28,0x72,0x65,0x66,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x32,0x29,0x20,0x3f,0x20,0x72,0x65,0x66,0x32,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x72,0x65,0x66,0x32,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x56,0x61,0x6c,0x75,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x3f,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x28,0x29,0x20,0x3a,0x20,0x75,0x6e,0x72,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x55,0x6e,0x77,0x72,0x61,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x72,0x61,0x77,0x22,0x20,0x3f,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3a,0x20,0x75,0x6e,0x72,0x65,0x66,0x28,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x29,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x73,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x78,0x79,0x52,0x65,0x66,0x73,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x52,0x65,0x66,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x52,0x65,0x66,0x73,0x29,0x20,0x3f,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x52,0x65,0x66,0x73,0x20,0x3a,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x52,0x65,0x66,0x73,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x55,0x6e,0x77,0x72,0x61,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x22,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x70,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x65,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x67,0x65,0x74,0x2c,0x20,0x73,0x65,0x74,0x20,0x7d,0x20,0x3d,0x20,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x28,0x64,0x65,0x70,0x2e,0x74,0x72,0x61,0x63,0x6b,0x2e,0x62,0x69,0x6e,0x64,0x28,0x64,0x65,0x70,0x29,0x2c,0x20,0x64,0x65,0x70,0x2e,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x2e,0x62,0x69,0x6e,0x64,0x28,0x64,0x65,0x70,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x28,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x28,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x52,0x65,0x66,0x73,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x60,0x74,0x6f,0x52,0x65,0x66,0x73,0x28,0x29,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x73,0x20,0x61,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x62,0x75,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x61,0x20,0x70,0x6c,0x61,0x69,0x6e,0x20,0x6f,0x6e,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x29,0x20,0x3f,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x3a,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x54,0x6f,0x52,0x65,0x66,0x28,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x5f,0x6b,0x65,0x79,0x2c,0x20,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x3d,0x20,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6b,0x65,0x79,0x20,0x3d,0x20,0x5f,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x22,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x5b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3f,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x76,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x5b,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x64,0x65,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x44,0x65,0x70,0x46,0x72,0x6f,0x6d,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x6a,0x65,0x63,0x74,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x47,0x65,0x74,0x74,0x65,0x72,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x5f,0x67,0x65,0x74,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x5f,0x67,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x22,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x74,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x52,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x47,0x65,0x74,0x74,0x65,0x72,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x26,0x26,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x54,0x6f,0x52,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x54,0x6f,0x52,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x29,0x20,0x3f,0x20,0x76,0x61,0x6c,0x20,0x3a,0x20,0x6e,0x65,0x77,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x66,0x6e,0x2c,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6e,0x20,0x3d,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x44,0x65,0x70,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x66,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x20,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x64,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x41,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x69,0x73,0x20,0x61,0x6c,0x73,0x6f,0x20,0x61,0x20,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x62,0x65,0x72,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x72,0x61,0x63,0x6b,0x73,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x64,0x65,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x73,0x54,0x61,0x69,0x6c,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x62,0x61,0x63,0x6b,0x77,0x61,0x72,0x64,0x73,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x5d,0x20,0x3d,0x20,0x21,0x73,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x53,0x53,0x52,0x20,0x3d,0x20,0x69,0x73,0x53,0x53,0x52,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x6e,0x6f,0x74,0x69,0x66,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x38,0x29,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x20,0x73,0x65,0x6c,0x66,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x53,0x75,0x62,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x74,0x63,0x68,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x6e,0x6b,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x2e,0x74,0x72,0x61,0x63,0x6b,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x74,0x68,0x69,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x69,0x6e,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x6b,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x70,0x2e,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x74,0x65,0x72,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x22,0x57,0x72,0x69,0x74,0x65,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x24,0x31,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x64,0x65,0x62,0x75,0x67,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x52,0x65,0x66,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x52,0x65,0x66,0x49,0x6d,0x70,0x6c,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x62,0x75,0x67,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x52,0x65,0x66,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x64,0x65,0x62,0x75,0x67,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x52,0x65,0x66,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x64,0x65,0x62,0x75,0x67,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x52,0x65,0x66,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x61,0x63,0x6b,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x22,0x47,0x45,0x54,0x22,0x3a,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x22,0x48,0x41,0x53,0x22,0x3a,0x20,0x22,0x68,0x61,0x73,0x22,0x2c,0x0a,0x20,0x20,0x22,0x49,0x54,0x45,0x52,0x41,0x54,0x45,0x22,0x3a,0x20,0x22,0x69,0x74,0x65,0x72,0x61,0x74,0x65,0x22,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x22,0x53,0x45,0x54,0x22,0x3a,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x22,0x41,0x44,0x44,0x22,0x3a,0x20,0x22,0x61,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x22,0x44,0x45,0x4c,0x45,0x54,0x45,0x22,0x3a,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x22,0x2c,0x0a,0x20,0x20,0x22,0x43,0x4c,0x45,0x41,0x52,0x22,0x3a,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x22,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x49,0x4e,0x49,0x54,0x49,0x41,0x4c,0x5f,0x57,0x41,0x54,0x43,0x48,0x45,0x52,0x5f,0x56,0x41,0x4c,0x55,0x45,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x2c,0x20,0x66,0x61,0x69,0x6c,0x53,0x69,0x6c,0x65,0x6e,0x74,0x6c,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6f,0x77,0x6e,0x65,0x72,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x77,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x20,0x3d,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x6f,0x77,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x29,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x6f,0x77,0x6e,0x65,0x72,0x2c,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x66,0x61,0x69,0x6c,0x53,0x69,0x6c,0x65,0x6e,0x74,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x6f,0x6e,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x29,0x20,0x77,0x61,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x74,0x6f,0x20,0x61,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x65,0x20,0x77,0x69,0x74,0x68,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x24,0x31,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x62,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x2c,0x20,0x64,0x65,0x65,0x70,0x2c,0x20,0x6f,0x6e,0x63,0x65,0x2c,0x20,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x2c,0x20,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x4a,0x6f,0x62,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x20,0x7d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x20,0x7c,0x7c,0x20,0x77,0x61,0x72,0x6e,0x24,0x32,0x29,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x77,0x61,0x74,0x63,0x68,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x20,0x77,0x61,0x74,0x63,0x68,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x61,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x2f,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x61,0x20,0x72,0x65,0x66,0x2c,0x20,0x61,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x47,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x32,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x65,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x32,0x29,0x20,0x7c,0x7c,0x20,0x64,0x65,0x65,0x70,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x7c,0x7c,0x20,0x64,0x65,0x65,0x70,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x32,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x32,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x62,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x66,0x6f,0x72,0x63,0x65,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x63,0x65,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x63,0x65,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x63,0x65,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x73,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6d,0x61,0x70,0x28,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x61,0x6c,0x6c,0x28,0x73,0x2c,0x20,0x32,0x29,0x20,0x3a,0x20,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x53,0x6f,0x75,0x72,0x63,0x65,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x63,0x61,0x6c,0x6c,0x20,0x3f,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x61,0x6c,0x6c,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x32,0x29,0x20,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x61,0x6c,0x6c,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x33,0x2c,0x20,0x5b,0x62,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x5d,0x29,0x20,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x28,0x62,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x53,0x6f,0x75,0x72,0x63,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x20,0x26,0x26,0x20,0x64,0x65,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x61,0x73,0x65,0x47,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x64,0x65,0x65,0x70,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x20,0x3f,0x20,0x49,0x6e,0x66,0x69,0x6e,0x69,0x74,0x79,0x20,0x3a,0x20,0x64,0x65,0x65,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x62,0x61,0x73,0x65,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x29,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x73,0x74,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x63,0x6f,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x73,0x63,0x6f,0x70,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2c,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x63,0x62,0x20,0x3d,0x20,0x63,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x62,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x63,0x62,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x3f,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x2e,0x66,0x69,0x6c,0x6c,0x28,0x49,0x4e,0x49,0x54,0x49,0x41,0x4c,0x5f,0x57,0x41,0x54,0x43,0x48,0x45,0x52,0x5f,0x56,0x41,0x4c,0x55,0x45,0x29,0x20,0x3a,0x20,0x49,0x4e,0x49,0x54,0x49,0x41,0x4c,0x5f,0x57,0x41,0x54,0x43,0x48,0x45,0x52,0x5f,0x56,0x41,0x4c,0x55,0x45,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6a,0x6f,0x62,0x20,0x3d,0x20,0x28,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x46,0x69,0x72,0x73,0x74,0x52,0x75,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x29,0x20,0x7c,0x7c,0x20,0x21,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x64,0x69,0x72,0x74,0x79,0x20,0x26,0x26,0x20,0x21,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x46,0x69,0x72,0x73,0x74,0x52,0x75,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x75,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x65,0x70,0x20,0x7c,0x7c,0x20,0x66,0x6f,0x72,0x63,0x65,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x7c,0x7c,0x20,0x28,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x3f,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x76,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x5b,0x69,0x5d,0x29,0x29,0x20,0x3a,0x20,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x73,0x73,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x6f,0x6c,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x77,0x68,0x65,0x6e,0x20,0x69,0x74,0x27,0x73,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x49,0x4e,0x49,0x54,0x49,0x41,0x4c,0x5f,0x57,0x41,0x54,0x43,0x48,0x45,0x52,0x5f,0x56,0x41,0x4c,0x55,0x45,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x26,0x26,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x49,0x4e,0x49,0x54,0x49,0x41,0x4c,0x5f,0x57,0x41,0x54,0x43,0x48,0x45,0x52,0x5f,0x56,0x41,0x4c,0x55,0x45,0x20,0x3f,0x20,0x5b,0x5d,0x20,0x3a,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x61,0x6c,0x6c,0x28,0x63,0x62,0x2c,0x20,0x33,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x3a,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x40,0x74,0x73,0x2d,0x65,0x78,0x70,0x65,0x63,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x75,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x4a,0x6f,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x4a,0x6f,0x62,0x28,0x6a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x3f,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x28,0x6a,0x6f,0x62,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3a,0x20,0x6a,0x6f,0x62,0x3b,0x0a,0x20,0x20,0x62,0x6f,0x75,0x6e,0x64,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x3d,0x20,0x28,0x66,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x6f,0x6e,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x66,0x6e,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x6f,0x6e,0x53,0x74,0x6f,0x70,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x20,0x3d,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x2c,0x20,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x32,0x20,0x6f,0x66,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x73,0x29,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x32,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x4d,0x61,0x70,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x75,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x28,0x6a,0x6f,0x62,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x75,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x2e,0x70,0x61,0x75,0x73,0x65,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x70,0x61,0x75,0x73,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x2e,0x72,0x65,0x73,0x75,0x6d,0x65,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x65,0x73,0x75,0x6d,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x2e,0x73,0x74,0x6f,0x70,0x20,0x3d,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x49,0x6e,0x66,0x69,0x6e,0x69,0x74,0x79,0x2c,0x20,0x73,0x65,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x70,0x74,0x68,0x20,0x3c,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x5b,0x22,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x22,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x65,0x6e,0x20,0x3d,0x20,0x73,0x65,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x65,0x6e,0x2e,0x68,0x61,0x73,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x65,0x6e,0x2e,0x61,0x64,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x64,0x65,0x70,0x74,0x68,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x2c,0x20,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x69,0x5d,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x2c,0x20,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4d,0x61,0x70,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x2c,0x20,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x6c,0x61,0x69,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x2c,0x20,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x49,0x73,0x45,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x2c,0x20,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x2e,0x70,0x75,0x73,0x68,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x69,0x73,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x6d,0x73,0x67,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x69,0x73,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3f,0x20,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x5b,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x70,0x57,0x61,0x72,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x77,0x61,0x72,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x72,0x61,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x70,0x70,0x57,0x61,0x72,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x57,0x61,0x72,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x2d,0x6e,0x65,0x78,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x20,0x6e,0x6f,0x2d,0x72,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x65,0x64,0x2d,0x73,0x79,0x6e,0x74,0x61,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x73,0x67,0x20,0x2b,0x20,0x61,0x72,0x67,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x61,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x61,0x2c,0x20,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x62,0x20,0x3d,0x20,0x28,0x5f,0x61,0x20,0x3d,0x20,0x61,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x5f,0x61,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x29,0x29,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x5f,0x62,0x20,0x3a,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x65,0x2e,0x6d,0x61,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x60,0x61,0x74,0x20,0x3c,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x7d,0x3e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x5c,0x6e,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x41,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x60,0x5b,0x56,0x75,0x65,0x20,0x77,0x61,0x72,0x6e,0x5d,0x3a,0x20,0x24,0x7b,0x6d,0x73,0x67,0x7d,0x60,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x73,0x70,0x61,0x6d,0x6d,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x0a,0x60,0x2c,0x20,0x2e,0x2e,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x72,0x61,0x63,0x65,0x28,0x74,0x72,0x61,0x63,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x2e,0x2e,0x2e,0x77,0x61,0x72,0x6e,0x41,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x73,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x72,0x61,0x63,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x5b,0x73,0x74,0x61,0x63,0x6b,0x24,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x53,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x53,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x73,0x74,0x20,0x26,0x26,0x20,0x6c,0x61,0x73,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x2e,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x43,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x53,0x74,0x61,0x63,0x6b,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x72,0x61,0x63,0x65,0x28,0x74,0x72,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x74,0x72,0x61,0x63,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x65,0x6e,0x74,0x72,0x79,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x3f,0x20,0x5b,0x5d,0x20,0x3a,0x20,0x5b,0x60,0x0a,0x60,0x5d,0x2c,0x20,0x2e,0x2e,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x72,0x61,0x63,0x65,0x45,0x6e,0x74,0x72,0x79,0x28,0x65,0x6e,0x74,0x72,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x6f,0x67,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x54,0x72,0x61,0x63,0x65,0x45,0x6e,0x74,0x72,0x79,0x28,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x43,0x6f,0x75,0x6e,0x74,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x20,0x3d,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x60,0x2e,0x2e,0x2e,0x20,0x28,0x24,0x7b,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x43,0x6f,0x75,0x6e,0x74,0x7d,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x20,0x63,0x61,0x6c,0x6c,0x73,0x29,0x60,0x20,0x3a,0x20,0x60,0x60,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x60,0x20,0x61,0x74,0x20,0x3c,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x52,0x6f,0x6f,0x74,0x0a,0x20,0x20,0x29,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x60,0x3e,0x60,0x20,0x2b,0x20,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3f,0x20,0x5b,0x6f,0x70,0x65,0x6e,0x2c,0x20,0x2e,0x2e,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x50,0x72,0x6f,0x70,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x5d,0x20,0x3a,0x20,0x5b,0x6f,0x70,0x65,0x6e,0x20,0x2b,0x20,0x63,0x6c,0x6f,0x73,0x65,0x5d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x6b,0x65,0x79,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x33,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x2e,0x2e,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x61,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x5b,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3d,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x5b,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3d,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x5b,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3d,0x52,0x65,0x66,0x3c,0x60,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x60,0x3e,0x60,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3d,0x66,0x6e,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3f,0x20,0x60,0x3c,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x3e,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x60,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x5b,0x60,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3d,0x60,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x76,0x61,0x6c,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x2d,0x20,0x67,0x6f,0x74,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x76,0x61,0x6c,0x29,0x7d,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x61,0x4e,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x20,0x69,0x73,0x20,0x4e,0x61,0x4e,0x20,0x2d,0x20,0x74,0x68,0x65,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x69,0x67,0x68,0x74,0x20,0x62,0x65,0x20,0x69,0x6e,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x22,0x53,0x45,0x54,0x55,0x50,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x22,0x30,0x22,0x3a,0x20,0x22,0x53,0x45,0x54,0x55,0x50,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x2c,0x0a,0x20,0x20,0x22,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x3a,0x20,0x31,0x2c,0x0a,0x20,0x20,0x22,0x31,0x22,0x3a,0x20,0x22,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x22,0x2c,0x0a,0x20,0x20,0x22,0x4e,0x41,0x54,0x49,0x56,0x45,0x5f,0x45,0x56,0x45,0x4e,0x54,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x3a,0x20,0x35,0x2c,0x0a,0x20,0x20,0x22,0x35,0x22,0x3a,0x20,0x22,0x4e,0x41,0x54,0x49,0x56,0x45,0x5f,0x45,0x56,0x45,0x4e,0x54,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x2c,0x0a,0x20,0x20,0x22,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x45,0x56,0x45,0x4e,0x54,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x3a,0x20,0x36,0x2c,0x0a,0x20,0x20,0x22,0x36,0x22,0x3a,0x20,0x22,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x45,0x56,0x45,0x4e,0x54,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x2c,0x0a,0x20,0x20,0x22,0x56,0x4e,0x4f,0x44,0x45,0x5f,0x48,0x4f,0x4f,0x4b,0x22,0x3a,0x20,0x37,0x2c,0x0a,0x20,0x20,0x22,0x37,0x22,0x3a,0x20,0x22,0x56,0x4e,0x4f,0x44,0x45,0x5f,0x48,0x4f,0x4f,0x4b,0x22,0x2c,0x0a,0x20,0x20,0x22,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x5f,0x48,0x4f,0x4f,0x4b,0x22,0x3a,0x20,0x38,0x2c,0x0a,0x20,0x20,0x22,0x38,0x22,0x3a,0x20,0x22,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x5f,0x48,0x4f,0x4f,0x4b,0x22,0x2c,0x0a,0x20,0x20,0x22,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5f,0x48,0x4f,0x4f,0x4b,0x22,0x3a,0x20,0x39,0x2c,0x0a,0x20,0x20,0x22,0x39,0x22,0x3a,0x20,0x22,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5f,0x48,0x4f,0x4f,0x4b,0x22,0x2c,0x0a,0x20,0x20,0x22,0x41,0x50,0x50,0x5f,0x45,0x52,0x52,0x4f,0x52,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x3a,0x20,0x31,0x30,0x2c,0x0a,0x20,0x20,0x22,0x31,0x30,0x22,0x3a,0x20,0x22,0x41,0x50,0x50,0x5f,0x45,0x52,0x52,0x4f,0x52,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x2c,0x0a,0x20,0x20,0x22,0x41,0x50,0x50,0x5f,0x57,0x41,0x52,0x4e,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x3a,0x20,0x31,0x31,0x2c,0x0a,0x20,0x20,0x22,0x31,0x31,0x22,0x3a,0x20,0x22,0x41,0x50,0x50,0x5f,0x57,0x41,0x52,0x4e,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x22,0x2c,0x0a,0x20,0x20,0x22,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x5f,0x52,0x45,0x46,0x22,0x3a,0x20,0x31,0x32,0x2c,0x0a,0x20,0x20,0x22,0x31,0x32,0x22,0x3a,0x20,0x22,0x46,0x55,0x4e,0x43,0x54,0x49,0x4f,0x4e,0x5f,0x52,0x45,0x46,0x22,0x2c,0x0a,0x20,0x20,0x22,0x41,0x53,0x59,0x4e,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x4c,0x4f,0x41,0x44,0x45,0x52,0x22,0x3a,0x20,0x31,0x33,0x2c,0x0a,0x20,0x20,0x22,0x31,0x33,0x22,0x3a,0x20,0x22,0x41,0x53,0x59,0x4e,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x4c,0x4f,0x41,0x44,0x45,0x52,0x22,0x2c,0x0a,0x20,0x20,0x22,0x53,0x43,0x48,0x45,0x44,0x55,0x4c,0x45,0x52,0x22,0x3a,0x20,0x31,0x34,0x2c,0x0a,0x20,0x20,0x22,0x31,0x34,0x22,0x3a,0x20,0x22,0x53,0x43,0x48,0x45,0x44,0x55,0x4c,0x45,0x52,0x22,0x2c,0x0a,0x20,0x20,0x22,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x22,0x3a,0x20,0x31,0x35,0x2c,0x0a,0x20,0x20,0x22,0x31,0x35,0x22,0x3a,0x20,0x22,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x22,0x2c,0x0a,0x20,0x20,0x22,0x41,0x50,0x50,0x5f,0x55,0x4e,0x4d,0x4f,0x55,0x4e,0x54,0x5f,0x43,0x4c,0x45,0x41,0x4e,0x55,0x50,0x22,0x3a,0x20,0x31,0x36,0x2c,0x0a,0x20,0x20,0x22,0x31,0x36,0x22,0x3a,0x20,0x22,0x41,0x50,0x50,0x5f,0x55,0x4e,0x4d,0x4f,0x55,0x4e,0x54,0x5f,0x43,0x4c,0x45,0x41,0x4e,0x55,0x50,0x22,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x24,0x31,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5b,0x22,0x73,0x70,0x22,0x5d,0x3a,0x20,0x22,0x73,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x62,0x63,0x22,0x5d,0x3a,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x63,0x22,0x5d,0x3a,0x20,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x62,0x6d,0x22,0x5d,0x3a,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x6d,0x22,0x5d,0x3a,0x20,0x22,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x62,0x75,0x22,0x5d,0x3a,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x75,0x22,0x5d,0x3a,0x20,0x22,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x62,0x75,0x6d,0x22,0x5d,0x3a,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x75,0x6d,0x22,0x5d,0x3a,0x20,0x22,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x61,0x22,0x5d,0x3a,0x20,0x22,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x64,0x61,0x22,0x5d,0x3a,0x20,0x22,0x64,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x65,0x63,0x22,0x5d,0x3a,0x20,0x22,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x72,0x74,0x63,0x22,0x5d,0x3a,0x20,0x22,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x22,0x72,0x74,0x67,0x22,0x5d,0x3a,0x20,0x22,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x30,0x5d,0x3a,0x20,0x22,0x73,0x65,0x74,0x75,0x70,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x5d,0x3a,0x20,0x22,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x5d,0x3a,0x20,0x22,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x5d,0x3a,0x20,0x22,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x5d,0x3a,0x20,0x22,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x5d,0x3a,0x20,0x22,0x6e,0x61,0x74,0x69,0x76,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x5d,0x3a,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x37,0x5d,0x3a,0x20,0x22,0x76,0x6e,0x6f,0x64,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x38,0x5d,0x3a,0x20,0x22,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x39,0x5d,0x3a,0x20,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x68,0x6f,0x6f,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x30,0x5d,0x3a,0x20,0x22,0x61,0x70,0x70,0x20,0x65,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x31,0x5d,0x3a,0x20,0x22,0x61,0x70,0x70,0x20,0x77,0x61,0x72,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x32,0x5d,0x3a,0x20,0x22,0x72,0x65,0x66,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x33,0x5d,0x3a,0x20,0x22,0x61,0x73,0x79,0x6e,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x6c,0x6f,0x61,0x64,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x34,0x5d,0x3a,0x20,0x22,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x66,0x6c,0x75,0x73,0x68,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x35,0x5d,0x3a,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x36,0x5d,0x3a,0x20,0x22,0x61,0x70,0x70,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x66,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x67,0x73,0x20,0x3f,0x20,0x66,0x6e,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3a,0x20,0x66,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x66,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x66,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x66,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x20,0x26,0x26,0x20,0x69,0x73,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x72,0x65,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x72,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x66,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x66,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x66,0x6e,0x5b,0x69,0x5d,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x29,0x3a,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x66,0x6e,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x68,0x72,0x6f,0x77,0x49,0x6e,0x44,0x65,0x76,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3f,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x74,0x68,0x72,0x6f,0x77,0x55,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x49,0x6e,0x50,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x24,0x31,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x63,0x75,0x72,0x2e,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x73,0x5b,0x69,0x5d,0x28,0x65,0x72,0x72,0x2c,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x49,0x6e,0x66,0x6f,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x63,0x75,0x72,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x65,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x31,0x30,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x49,0x6e,0x66,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x6f,0x67,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x74,0x68,0x72,0x6f,0x77,0x49,0x6e,0x44,0x65,0x76,0x2c,0x20,0x74,0x68,0x72,0x6f,0x77,0x55,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x49,0x6e,0x50,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x74,0x68,0x72,0x6f,0x77,0x49,0x6e,0x44,0x65,0x76,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x74,0x68,0x72,0x6f,0x77,0x49,0x6e,0x50,0x72,0x6f,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x24,0x31,0x5b,0x74,0x79,0x70,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x55,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x65,0x72,0x72,0x6f,0x72,0x24,0x7b,0x69,0x6e,0x66,0x6f,0x20,0x3f,0x20,0x60,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x24,0x7b,0x69,0x6e,0x66,0x6f,0x7d,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x72,0x6f,0x77,0x49,0x6e,0x44,0x65,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x46,0x6c,0x75,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x43,0x55,0x52,0x53,0x49,0x4f,0x4e,0x5f,0x4c,0x49,0x4d,0x49,0x54,0x20,0x3d,0x20,0x31,0x30,0x30,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x28,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x46,0x6c,0x75,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x20,0x3f,0x20,0x70,0x2e,0x74,0x68,0x65,0x6e,0x28,0x74,0x68,0x69,0x73,0x20,0x3f,0x20,0x66,0x6e,0x2e,0x62,0x69,0x6e,0x64,0x28,0x74,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x66,0x6e,0x29,0x20,0x3a,0x20,0x70,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6e,0x64,0x49,0x6e,0x73,0x65,0x72,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x64,0x65,0x78,0x28,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x65,0x6e,0x64,0x20,0x3e,0x3e,0x3e,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x4a,0x6f,0x62,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x6d,0x69,0x64,0x64,0x6c,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x4a,0x6f,0x62,0x49,0x64,0x20,0x3d,0x20,0x67,0x65,0x74,0x49,0x64,0x28,0x6d,0x69,0x64,0x64,0x6c,0x65,0x4a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x69,0x64,0x64,0x6c,0x65,0x4a,0x6f,0x62,0x49,0x64,0x20,0x3c,0x20,0x69,0x64,0x20,0x7c,0x7c,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x4a,0x6f,0x62,0x49,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x64,0x20,0x26,0x26,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x4a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x75,0x65,0x75,0x65,0x4a,0x6f,0x62,0x28,0x6a,0x6f,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6a,0x6f,0x62,0x49,0x64,0x20,0x3d,0x20,0x67,0x65,0x74,0x49,0x64,0x28,0x6a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x4a,0x6f,0x62,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x61,0x73,0x74,0x4a,0x6f,0x62,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x20,0x6a,0x6f,0x62,0x20,0x69,0x64,0x20,0x69,0x73,0x20,0x6c,0x61,0x72,0x67,0x65,0x72,0x20,0x74,0x68,0x61,0x6e,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x69,0x6c,0x0a,0x20,0x20,0x20,0x20,0x21,0x28,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x32,0x29,0x20,0x26,0x26,0x20,0x6a,0x6f,0x62,0x49,0x64,0x20,0x3e,0x3d,0x20,0x67,0x65,0x74,0x49,0x64,0x28,0x6c,0x61,0x73,0x74,0x4a,0x6f,0x62,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x6a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x66,0x69,0x6e,0x64,0x49,0x6e,0x73,0x65,0x72,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x64,0x65,0x78,0x28,0x6a,0x6f,0x62,0x49,0x64,0x29,0x2c,0x20,0x30,0x2c,0x20,0x6a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x46,0x6c,0x75,0x73,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x75,0x65,0x75,0x65,0x46,0x6c,0x75,0x73,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x46,0x6c,0x75,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x46,0x6c,0x75,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x74,0x68,0x65,0x6e,0x28,0x66,0x6c,0x75,0x73,0x68,0x4a,0x6f,0x62,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x28,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x62,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x20,0x26,0x26,0x20,0x63,0x62,0x2e,0x69,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x2c,0x20,0x30,0x2c,0x20,0x63,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x31,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x63,0x62,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x46,0x6c,0x75,0x73,0x68,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x72,0x65,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x73,0x65,0x65,0x6e,0x2c,0x20,0x69,0x20,0x3d,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x6e,0x20,0x3d,0x20,0x73,0x65,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x20,0x69,0x20,0x3c,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x62,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x20,0x26,0x26,0x20,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x63,0x62,0x2e,0x69,0x64,0x20,0x21,0x3d,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x65,0x63,0x6b,0x52,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x73,0x28,0x73,0x65,0x65,0x6e,0x2c,0x20,0x63,0x62,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x73,0x65,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x29,0x5d,0x2e,0x73,0x6f,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x3d,0x3e,0x20,0x67,0x65,0x74,0x49,0x64,0x28,0x61,0x29,0x20,0x2d,0x20,0x67,0x65,0x74,0x49,0x64,0x28,0x62,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x20,0x3d,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x6e,0x20,0x3d,0x20,0x73,0x65,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x62,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x5b,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x65,0x63,0x6b,0x52,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x73,0x28,0x73,0x65,0x65,0x6e,0x2c,0x20,0x63,0x62,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x38,0x29,0x29,0x20,0x63,0x62,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x49,0x64,0x20,0x3d,0x20,0x28,0x6a,0x6f,0x62,0x29,0x20,0x3d,0x3e,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x64,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x32,0x20,0x3f,0x20,0x2d,0x31,0x20,0x3a,0x20,0x49,0x6e,0x66,0x69,0x6e,0x69,0x74,0x79,0x20,0x3a,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x64,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6c,0x75,0x73,0x68,0x4a,0x6f,0x62,0x73,0x28,0x73,0x65,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x6e,0x20,0x3d,0x20,0x73,0x65,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x3d,0x20,0x28,0x6a,0x6f,0x62,0x29,0x20,0x3d,0x3e,0x20,0x63,0x68,0x65,0x63,0x6b,0x52,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x73,0x28,0x73,0x65,0x65,0x6e,0x2c,0x20,0x6a,0x6f,0x62,0x29,0x20,0x3b,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6a,0x6f,0x62,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x6f,0x62,0x20,0x26,0x26,0x20,0x21,0x28,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x38,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x65,0x63,0x6b,0x28,0x6a,0x6f,0x62,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x20,0x3f,0x20,0x31,0x35,0x20,0x3a,0x20,0x31,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x34,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6a,0x6f,0x62,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x5b,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x6f,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x46,0x6c,0x75,0x73,0x68,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x71,0x75,0x65,0x75,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x4a,0x6f,0x62,0x73,0x28,0x73,0x65,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x52,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x73,0x28,0x73,0x65,0x65,0x6e,0x2c,0x20,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x73,0x65,0x65,0x6e,0x2e,0x67,0x65,0x74,0x28,0x66,0x6e,0x29,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3e,0x20,0x52,0x45,0x43,0x55,0x52,0x53,0x49,0x4f,0x4e,0x5f,0x4c,0x49,0x4d,0x49,0x54,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6e,0x2e,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x4d,0x61,0x78,0x69,0x6d,0x75,0x6d,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x20,0x65,0x78,0x63,0x65,0x65,0x64,0x65,0x64,0x24,0x7b,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3f,0x20,0x60,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3c,0x24,0x7b,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x7d,0x3e,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x6d,0x65,0x61,0x6e,0x73,0x20,0x79,0x6f,0x75,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x6d,0x75,0x74,0x61,0x74,0x69,0x6e,0x67,0x20,0x69,0x74,0x73,0x20,0x6f,0x77,0x6e,0x20,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x69,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x74,0x68,0x75,0x73,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x6c,0x79,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x69,0x6e,0x67,0x20,0x69,0x74,0x73,0x65,0x6c,0x66,0x2e,0x20,0x50,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x73,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x6f,0x72,0x20,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x30,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x65,0x6e,0x2e,0x73,0x65,0x74,0x28,0x66,0x6e,0x2c,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6d,0x72,0x44,0x69,0x72,0x74,0x79,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x28,0x29,0x2e,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x48,0x4d,0x52,0x5f,0x52,0x55,0x4e,0x54,0x49,0x4d,0x45,0x5f,0x5f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x63,0x6f,0x72,0x64,0x3a,0x20,0x74,0x72,0x79,0x57,0x72,0x61,0x70,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x63,0x6f,0x72,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x72,0x65,0x6e,0x64,0x65,0x72,0x3a,0x20,0x74,0x72,0x79,0x57,0x72,0x61,0x70,0x28,0x72,0x65,0x72,0x65,0x6e,0x64,0x65,0x72,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6c,0x6f,0x61,0x64,0x3a,0x20,0x74,0x72,0x79,0x57,0x72,0x61,0x70,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x29,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x48,0x4d,0x52,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x64,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x20,0x3d,0x20,0x6d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x63,0x6f,0x72,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x63,0x6f,0x72,0x64,0x28,0x69,0x64,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x20,0x3d,0x20,0x6d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x61,0x64,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x48,0x4d,0x52,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x63,0x6f,0x72,0x64,0x28,0x69,0x64,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x44,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x69,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x69,0x64,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x44,0x65,0x66,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x44,0x65,0x66,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x5f,0x5f,0x76,0x63,0x63,0x4f,0x70,0x74,0x73,0x20,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x69,0x64,0x2c,0x20,0x6e,0x65,0x77,0x52,0x65,0x6e,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x20,0x3d,0x20,0x6d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x63,0x6f,0x72,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x2e,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x44,0x65,0x66,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x52,0x65,0x6e,0x64,0x65,0x72,0x3b,0x0a,0x20,0x20,0x5b,0x2e,0x2e,0x2e,0x72,0x65,0x63,0x6f,0x72,0x64,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x5d,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x52,0x65,0x6e,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x52,0x65,0x6e,0x64,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x52,0x65,0x6e,0x64,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x69,0x64,0x2c,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x20,0x3d,0x20,0x6d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x63,0x6f,0x72,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x44,0x65,0x66,0x28,0x72,0x65,0x63,0x6f,0x72,0x64,0x2e,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x44,0x65,0x66,0x2c,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x72,0x65,0x63,0x6f,0x72,0x64,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x68,0x6d,0x72,0x44,0x69,0x72,0x74,0x79,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x67,0x65,0x74,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x20,0x21,0x3d,0x3d,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x2e,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x44,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x44,0x65,0x66,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6d,0x72,0x44,0x69,0x72,0x74,0x79,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x73,0x65,0x74,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x61,0x64,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x65,0x6d,0x69,0x74,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x43,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x52,0x65,0x6c,0x6f,0x61,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x61,0x64,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x52,0x65,0x6c,0x6f,0x61,0x64,0x28,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x2e,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x4a,0x6f,0x62,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x5b,0x48,0x4d,0x52,0x5d,0x20,0x52,0x6f,0x6f,0x74,0x20,0x6f,0x72,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x2e,0x20,0x46,0x75,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x2e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x21,0x3d,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x65,0x2e,0x5f,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x6d,0x72,0x44,0x69,0x72,0x74,0x79,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x44,0x65,0x66,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x66,0x69,0x6c,0x65,0x22,0x20,0x26,0x26,0x20,0x21,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x6f,0x6c,0x64,0x43,0x6f,0x6d,0x70,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x79,0x57,0x72,0x61,0x70,0x28,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x69,0x64,0x2c,0x20,0x61,0x72,0x67,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x28,0x69,0x64,0x2c,0x20,0x61,0x72,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x5b,0x48,0x4d,0x52,0x5d,0x20,0x53,0x6f,0x6d,0x65,0x74,0x68,0x69,0x6e,0x67,0x20,0x77,0x65,0x6e,0x74,0x20,0x77,0x72,0x6f,0x6e,0x67,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x56,0x75,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x68,0x6f,0x74,0x2d,0x72,0x65,0x6c,0x6f,0x61,0x64,0x2e,0x20,0x46,0x75,0x6c,0x6c,0x20,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x4e,0x6f,0x74,0x49,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x69,0x74,0x24,0x31,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x2e,0x65,0x6d,0x69,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x4e,0x6f,0x74,0x49,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x61,0x72,0x67,0x73,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x61,0x2c,0x20,0x5f,0x62,0x3b,0x0a,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x2e,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x7b,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x61,0x72,0x67,0x73,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x2e,0x65,0x6d,0x69,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x6c,0x61,0x74,0x65,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x2d,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x64,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x66,0x20,0x77,0x65,0x20,0x61,0x72,0x65,0x20,0x69,0x6e,0x20,0x61,0x6e,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x65,0x6e,0x76,0x69,0x72,0x6f,0x6e,0x6d,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x74,0x68,0x65,0x20,0x74,0x69,0x6d,0x65,0x72,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x73,0x74,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x20,0x74,0x65,0x73,0x74,0x20,0x72,0x75,0x6e,0x6e,0x65,0x72,0x20,0x65,0x78,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x28,0x23,0x34,0x38,0x31,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x6d,0x65,0x20,0x65,0x6e,0x76,0x73,0x20,0x6d,0x6f,0x63,0x6b,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x62,0x75,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x75,0x6c,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x48,0x54,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x73,0x6f,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x6a,0x73,0x64,0x6f,0x6d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x2d,0x6e,0x65,0x78,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x20,0x6e,0x6f,0x2d,0x72,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x65,0x64,0x2d,0x73,0x79,0x6e,0x74,0x61,0x78,0x0a,0x20,0x20,0x20,0x20,0x21,0x28,0x28,0x5f,0x62,0x20,0x3d,0x20,0x28,0x5f,0x61,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x29,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x5f,0x61,0x2e,0x75,0x73,0x65,0x72,0x41,0x67,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x5f,0x62,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6a,0x73,0x64,0x6f,0x6d,0x22,0x29,0x29,0x0a,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x44,0x45,0x56,0x54,0x4f,0x4f,0x4c,0x53,0x5f,0x48,0x4f,0x4f,0x4b,0x5f,0x52,0x45,0x50,0x4c,0x41,0x59,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x44,0x45,0x56,0x54,0x4f,0x4f,0x4c,0x53,0x5f,0x48,0x4f,0x4f,0x4b,0x5f,0x52,0x45,0x50,0x4c,0x41,0x59,0x5f,0x5f,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x28,0x6e,0x65,0x77,0x48,0x6f,0x6f,0x6b,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x28,0x6e,0x65,0x77,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x44,0x45,0x56,0x54,0x4f,0x4f,0x4c,0x53,0x5f,0x48,0x4f,0x4f,0x4b,0x5f,0x52,0x45,0x50,0x4c,0x41,0x59,0x5f,0x5f,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x4e,0x6f,0x74,0x49,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x33,0x65,0x33,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x4e,0x6f,0x74,0x49,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x49,0x6e,0x69,0x74,0x41,0x70,0x70,0x28,0x61,0x70,0x70,0x2c,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6d,0x69,0x74,0x24,0x31,0x28,0x22,0x61,0x70,0x70,0x3a,0x69,0x6e,0x69,0x74,0x22,0x20,0x2f,0x2a,0x20,0x41,0x50,0x50,0x5f,0x49,0x4e,0x49,0x54,0x20,0x2a,0x2f,0x2c,0x20,0x61,0x70,0x70,0x2c,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x41,0x70,0x70,0x28,0x61,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6d,0x69,0x74,0x24,0x31,0x28,0x22,0x61,0x70,0x70,0x3a,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x22,0x20,0x2f,0x2a,0x20,0x41,0x50,0x50,0x5f,0x55,0x4e,0x4d,0x4f,0x55,0x4e,0x54,0x20,0x2a,0x2f,0x2c,0x20,0x61,0x70,0x70,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x41,0x64,0x64,0x65,0x64,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x61,0x64,0x64,0x65,0x64,0x22,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x41,0x44,0x44,0x45,0x44,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x22,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x55,0x50,0x44,0x41,0x54,0x45,0x44,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x0a,0x20,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x22,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x52,0x45,0x4d,0x4f,0x56,0x45,0x44,0x20,0x2a,0x2f,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x42,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x77,0x61,0x73,0x6e,0x27,0x74,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x65,0x64,0x0a,0x20,0x20,0x21,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x42,0x75,0x66,0x66,0x65,0x72,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x2f,0x2a,0x21,0x20,0x23,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x0a,0x2f,0x2f,0x20,0x40,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x70,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x75,0x69,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x75,0x69,0x64,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x70,0x65,0x72,0x66,0x3a,0x73,0x74,0x61,0x72,0x74,0x22,0x20,0x2f,0x2a,0x20,0x50,0x45,0x52,0x46,0x4f,0x52,0x4d,0x41,0x4e,0x43,0x45,0x5f,0x53,0x54,0x41,0x52,0x54,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x45,0x6e,0x64,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x70,0x65,0x72,0x66,0x3a,0x65,0x6e,0x64,0x22,0x20,0x2f,0x2a,0x20,0x50,0x45,0x52,0x46,0x4f,0x52,0x4d,0x41,0x4e,0x43,0x45,0x5f,0x45,0x4e,0x44,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x69,0x6d,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x24,0x31,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x70,0x70,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x75,0x69,0x64,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x69,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x45,0x6d,0x69,0x74,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6d,0x69,0x74,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x65,0x6d,0x69,0x74,0x22,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5f,0x45,0x4d,0x49,0x54,0x20,0x2a,0x2f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x70,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x65,0x76,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x75,0x73,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x69,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x70,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x69,0x74,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x28,0x5f,0x69,0x64,0x29,0x20,0x3d,0x3e,0x20,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x28,0x66,0x6e,0x2c,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x53,0x63,0x6f,0x70,0x65,0x64,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x74,0x78,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6e,0x2e,0x5f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x5f,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x2d,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x63,0x74,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x66,0x6e,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x70,0x72,0x65,0x76,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x5f,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x63,0x74,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x5f,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x5f,0x63,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x46,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x22,0x44,0x6f,0x20,0x6e,0x6f,0x74,0x20,0x75,0x73,0x65,0x20,0x62,0x75,0x69,0x6c,0x74,0x2d,0x69,0x6e,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x69,0x64,0x73,0x20,0x61,0x73,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x69,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x20,0x7c,0x7c,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x5b,0x64,0x69,0x72,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x61,0x72,0x67,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x5d,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x64,0x69,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x64,0x69,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x3a,0x20,0x64,0x69,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x64,0x65,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x5b,0x69,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2e,0x64,0x69,0x72,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x38,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x45,0x6e,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x76,0x74,0x65,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3d,0x3e,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3d,0x3e,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x64,0x65,0x66,0x65,0x72,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x64,0x65,0x66,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x61,0x72,0x67,0x65,0x74,0x53,0x56,0x47,0x20,0x3d,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x53,0x56,0x47,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x26,0x26,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x53,0x56,0x47,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x20,0x3d,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x26,0x26,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x6c,0x65,0x63,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x66,0x6f,0x72,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x73,0x2e,0x20,0x28,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x29,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x22,0x24,0x7b,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x7d,0x22,0x2e,0x20,0x4e,0x6f,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x75,0x73,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x2d,0x20,0x69,0x2e,0x65,0x2e,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x74,0x73,0x65,0x6c,0x66,0x2c,0x20,0x61,0x6e,0x64,0x20,0x69,0x64,0x65,0x61,0x6c,0x6c,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x74,0x69,0x72,0x65,0x20,0x56,0x75,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x72,0x65,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x24,0x7b,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x49,0x6d,0x70,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x22,0x2c,0x0a,0x20,0x20,0x5f,0x5f,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x63,0x3a,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x63,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x62,0x63,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x2c,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x22,0x29,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x69,0x6e,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x65,0x6e,0x64,0x22,0x29,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x6d,0x61,0x69,0x6e,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x32,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x69,0x73,0x43,0x45,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x63,0x65,0x2e,0x5f,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x54,0x6f,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x61,0x72,0x67,0x65,0x74,0x28,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x41,0x6e,0x63,0x68,0x6f,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x2c,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x26,0x26,0x20,0x69,0x73,0x54,0x61,0x72,0x67,0x65,0x74,0x53,0x56,0x47,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x20,0x26,0x26,0x20,0x69,0x73,0x54,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x6e,0x32,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x6f,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x3a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x28,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x29,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6d,0x61,0x69,0x6e,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x6e,0x32,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x65,0x66,0x65,0x72,0x72,0x65,0x64,0x28,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x6d,0x6f,0x75,0x6e,0x74,0x54,0x6f,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x54,0x6f,0x54,0x61,0x72,0x67,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x69,0x6e,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x77,0x61,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3f,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x77,0x61,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3f,0x20,0x6d,0x61,0x69,0x6e,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3a,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x54,0x61,0x72,0x67,0x65,0x74,0x53,0x56,0x47,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x54,0x61,0x72,0x67,0x65,0x74,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x77,0x61,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x29,0x20,0x21,0x3d,0x3d,0x20,0x28,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x6f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x61,0x72,0x67,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x28,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x7d,0x29,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x6e,0x32,0x2c,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x7b,0x20,0x75,0x6d,0x3a,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3a,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x7d,0x20,0x7d,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x26,0x26,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x21,0x63,0x68,0x69,0x6c,0x64,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6d,0x6f,0x76,0x65,0x3a,0x20,0x6d,0x6f,0x76,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x76,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x7b,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x20,0x7d,0x2c,0x20,0x6d,0x3a,0x20,0x6d,0x6f,0x76,0x65,0x20,0x7d,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x6c,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x65,0x6f,0x72,0x64,0x65,0x72,0x20,0x3d,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x6f,0x72,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x6f,0x72,0x64,0x65,0x72,0x20,0x7c,0x7c,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x6f,0x72,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x2c,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x20,0x7d,0x0a,0x7d,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x61,0x72,0x67,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x6c,0x70,0x61,0x20,0x7c,0x7c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x26,0x26,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x6c,0x70,0x61,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x41,0x6e,0x63,0x68,0x6f,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x2c,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x3d,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x49,0x6d,0x70,0x6c,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x69,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x74,0x78,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x74,0x78,0x20,0x26,0x26,0x20,0x63,0x74,0x78,0x2e,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x44,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x64,0x61,0x74,0x61,0x2d,0x76,0x2d,0x6f,0x77,0x6e,0x65,0x72,0x22,0x2c,0x20,0x63,0x74,0x78,0x2e,0x75,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x2e,0x75,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x65,0x70,0x61,0x72,0x65,0x41,0x6e,0x63,0x68,0x6f,0x72,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x2c,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x5b,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x45,0x6e,0x64,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x24,0x31,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x22,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x69,0x6e,0x67,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x3d,0x20,0x5b,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x41,0x72,0x72,0x61,0x79,0x5d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x6d,0x6f,0x64,0x65,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x3a,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x3a,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x65,0x6e,0x74,0x65,0x72,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x45,0x6e,0x74,0x65,0x72,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x65,0x61,0x76,0x65,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4c,0x65,0x61,0x76,0x65,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x70,0x70,0x65,0x61,0x72,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x41,0x70,0x70,0x65,0x61,0x72,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x47,0x65,0x74,0x53,0x75,0x62,0x74,0x72,0x65,0x65,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x47,0x65,0x74,0x53,0x75,0x62,0x74,0x72,0x65,0x65,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3a,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6d,0x70,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x60,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x75,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x4e,0x6f,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x6f,0x64,0x65,0x20,0x7d,0x20,0x3d,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x22,0x20,0x26,0x26,0x20,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6f,0x75,0x74,0x2d,0x69,0x6e,0x22,0x20,0x26,0x26,0x20,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x3c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x6d,0x6f,0x64,0x65,0x3a,0x20,0x24,0x7b,0x6d,0x6f,0x64,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x50,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x24,0x31,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x50,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x31,0x31,0x30,0x36,0x31,0x2c,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x69,0x73,0x20,0x66,0x72,0x65,0x73,0x68,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x3d,0x3e,0x20,0x65,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x65,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x43,0x68,0x69,0x6c,0x64,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x24,0x31,0x28,0x6f,0x6c,0x64,0x43,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x20,0x26,0x26,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x29,0x20,0x26,0x26,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x47,0x65,0x74,0x53,0x75,0x62,0x74,0x72,0x65,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x48,0x6f,0x6f,0x6b,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x75,0x74,0x2d,0x69,0x6e,0x22,0x20,0x26,0x26,0x20,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x48,0x6f,0x6f,0x6b,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x20,0x38,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x48,0x6f,0x6f,0x6b,0x73,0x2e,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x50,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x2d,0x6f,0x75,0x74,0x22,0x20,0x26,0x26,0x20,0x69,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x48,0x6f,0x6f,0x6b,0x73,0x2e,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x65,0x61,0x72,0x6c,0x79,0x52,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x4c,0x65,0x61,0x76,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x4e,0x6f,0x64,0x65,0x73,0x46,0x6f,0x72,0x54,0x79,0x70,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x29,0x5d,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x61,0x72,0x6c,0x79,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x65,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x73,0x2e,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x4c,0x65,0x61,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x73,0x2e,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x4c,0x65,0x61,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6e,0x64,0x4e,0x6f,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x46,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x20,0x6f,0x66,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x46,0x6f,0x75,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x61,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x20,0x55,0x73,0x65,0x20,0x3c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x67,0x72,0x6f,0x75,0x70,0x3e,0x20,0x66,0x6f,0x72,0x20,0x6c,0x69,0x73,0x74,0x73,0x2e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x46,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6d,0x70,0x6c,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x4e,0x6f,0x64,0x65,0x73,0x46,0x6f,0x72,0x54,0x79,0x70,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x20,0x7d,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x2e,0x67,0x65,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x65,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2c,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x70,0x6f,0x73,0x74,0x43,0x6c,0x6f,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4c,0x65,0x61,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x70,0x70,0x65,0x61,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x41,0x70,0x70,0x65,0x61,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x4e,0x6f,0x64,0x65,0x73,0x46,0x6f,0x72,0x54,0x79,0x70,0x65,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x26,0x26,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x41,0x73,0x79,0x6e,0x63,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x6e,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2e,0x65,0x76,0x65,0x72,0x79,0x28,0x28,0x68,0x6f,0x6f,0x6b,0x32,0x29,0x20,0x3d,0x3e,0x20,0x68,0x6f,0x6f,0x6b,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3c,0x3d,0x20,0x31,0x29,0x29,0x20,0x64,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3c,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x70,0x70,0x65,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x7c,0x7c,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x70,0x70,0x65,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x7c,0x7c,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x66,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x7c,0x7c,0x20,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x20,0x7c,0x7c,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x6e,0x65,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x24,0x31,0x5d,0x20,0x3d,0x20,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6c,0x6c,0x65,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x61,0x66,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x4c,0x65,0x61,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x4c,0x65,0x61,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x24,0x31,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x41,0x73,0x79,0x6e,0x63,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x5b,0x65,0x6c,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x32,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x5b,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x24,0x31,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x24,0x31,0x5d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4c,0x65,0x61,0x76,0x65,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x6e,0x65,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6c,0x6c,0x65,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x41,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6c,0x65,0x61,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x32,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x69,0x6e,0x67,0x56,0x4e,0x6f,0x64,0x65,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x32,0x5d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x41,0x73,0x79,0x6e,0x63,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x2c,0x20,0x5b,0x65,0x6c,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x32,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x74,0x43,0x6c,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6f,0x73,0x74,0x43,0x6c,0x6f,0x6e,0x65,0x29,0x20,0x70,0x6f,0x73,0x74,0x43,0x6c,0x6f,0x6e,0x65,0x28,0x68,0x6f,0x6f,0x6b,0x73,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x50,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x24,0x31,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6e,0x64,0x4e,0x6f,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x33,0x32,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6b,0x65,0x65,0x70,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6b,0x65,0x79,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4b,0x65,0x79,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x20,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x4b,0x65,0x79,0x29,0x20,0x2b,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x20,0x3a,0x20,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x6b,0x65,0x79,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x72,0x65,0x74,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6b,0x65,0x65,0x70,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x65,0x70,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x7b,0x20,0x6b,0x65,0x79,0x20,0x7d,0x29,0x20,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x69,0x5d,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x2d,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x2f,0x2a,0x21,0x20,0x23,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x0a,0x2f,0x2f,0x20,0x40,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x3f,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x38,0x32,0x33,0x36,0x3a,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x20,0x63,0x61,0x6c,0x6c,0x20,0x61,0x6e,0x64,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x61,0x72,0x65,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x65,0x64,0x20,0x73,0x69,0x64,0x65,0x2d,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x79,0x20,0x52,0x6f,0x6c,0x6c,0x75,0x70,0x2c,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x77,0x72,0x61,0x70,0x20,0x69,0x74,0x20,0x69,0x6e,0x20,0x61,0x20,0x70,0x75,0x72,0x65,0x2d,0x61,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x65,0x64,0x20,0x49,0x49,0x46,0x45,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7d,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x7b,0x20,0x73,0x65,0x74,0x75,0x70,0x3a,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7d,0x29,0x29,0x28,0x29,0x0a,0x20,0x20,0x29,0x20,0x3a,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x49,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x69,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x69,0x64,0x50,0x72,0x65,0x66,0x69,0x78,0x20,0x7c,0x7c,0x20,0x22,0x76,0x22,0x29,0x20,0x2b,0x20,0x22,0x2d,0x22,0x20,0x2b,0x20,0x69,0x2e,0x69,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x69,0x2e,0x69,0x64,0x73,0x5b,0x31,0x5d,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x75,0x73,0x65,0x49,0x64,0x28,0x29,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x22,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x41,0x73,0x79,0x6e,0x63,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x64,0x73,0x20,0x3d,0x20,0x5b,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x64,0x73,0x5b,0x30,0x5d,0x20,0x2b,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x64,0x73,0x5b,0x32,0x5d,0x2b,0x2b,0x20,0x2b,0x20,0x22,0x2d,0x22,0x2c,0x20,0x30,0x2c,0x20,0x30,0x5d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x73,0x20,0x3d,0x20,0x69,0x2e,0x72,0x65,0x66,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x3f,0x20,0x69,0x2e,0x72,0x65,0x66,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x20,0x3a,0x20,0x69,0x2e,0x72,0x65,0x66,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x65,0x73,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x64,0x65,0x73,0x63,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x44,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x28,0x72,0x65,0x66,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x26,0x26,0x20,0x21,0x64,0x65,0x73,0x63,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x75,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x28,0x27,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x27,0x29,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x65,0x66,0x73,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x75,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x28,0x29,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x72,0x29,0x20,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x73,0x2e,0x61,0x64,0x64,0x28,0x72,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x52,0x65,0x66,0x28,0x72,0x61,0x77,0x52,0x65,0x66,0x2c,0x20,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x61,0x77,0x52,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x52,0x65,0x66,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x52,0x65,0x66,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x20,0x26,0x26,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x29,0x20,0x3f,0x20,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x5b,0x69,0x5d,0x20,0x3a,0x20,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x34,0x20,0x3f,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3f,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3a,0x20,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x69,0x3a,0x20,0x6f,0x77,0x6e,0x65,0x72,0x2c,0x20,0x72,0x3a,0x20,0x72,0x65,0x66,0x20,0x7d,0x20,0x3d,0x20,0x72,0x61,0x77,0x52,0x65,0x66,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x77,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x4d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x72,0x65,0x66,0x20,0x6f,0x77,0x6e,0x65,0x72,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x20,0x72,0x65,0x66,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x68,0x6f,0x69,0x73,0x74,0x65,0x64,0x20,0x76,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x20,0x41,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x72,0x65,0x66,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x52,0x65,0x66,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x20,0x26,0x26,0x20,0x6f,0x6c,0x64,0x52,0x61,0x77,0x52,0x65,0x66,0x2e,0x72,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x66,0x73,0x20,0x3d,0x20,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x72,0x65,0x66,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x3f,0x20,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x72,0x65,0x66,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x20,0x3a,0x20,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x72,0x65,0x66,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6e,0x53,0x65,0x74,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x66,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x3f,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3a,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x72,0x61,0x77,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x61,0x77,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x72,0x65,0x66,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x61,0x20,0x6e,0x6f,0x6e,0x2d,0x72,0x65,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x20,0x49,0x74,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x77,0x6f,0x72,0x6b,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x6e,0x6f,0x77,0x6e,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x73,0x2e,0x68,0x61,0x73,0x28,0x72,0x61,0x77,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x72,0x61,0x77,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x52,0x65,0x66,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x6f,0x6c,0x64,0x52,0x65,0x66,0x20,0x21,0x3d,0x3d,0x20,0x72,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6f,0x6c,0x64,0x52,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x73,0x5b,0x6f,0x6c,0x64,0x52,0x65,0x66,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x53,0x65,0x74,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x66,0x28,0x6f,0x6c,0x64,0x52,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6f,0x6c,0x64,0x52,0x65,0x66,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x6f,0x6c,0x64,0x52,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x52,0x65,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x72,0x65,0x66,0x2c,0x20,0x6f,0x77,0x6e,0x65,0x72,0x2c,0x20,0x31,0x32,0x2c,0x20,0x5b,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x65,0x66,0x73,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x69,0x73,0x52,0x65,0x66,0x20,0x3d,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x7c,0x7c,0x20,0x5f,0x69,0x73,0x52,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x53,0x65,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x52,0x65,0x66,0x2e,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x5f,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3f,0x20,0x63,0x61,0x6e,0x53,0x65,0x74,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x29,0x20,0x3f,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x72,0x65,0x66,0x5d,0x20,0x3a,0x20,0x72,0x65,0x66,0x73,0x5b,0x72,0x65,0x66,0x5d,0x20,0x3a,0x20,0x72,0x65,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x26,0x26,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x73,0x5b,0x72,0x65,0x66,0x5d,0x20,0x3d,0x20,0x5b,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x53,0x65,0x74,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x72,0x65,0x66,0x5d,0x20,0x3d,0x20,0x72,0x65,0x66,0x73,0x5b,0x72,0x65,0x66,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x5b,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x52,0x65,0x66,0x2e,0x6b,0x29,0x20,0x72,0x65,0x66,0x73,0x5b,0x72,0x61,0x77,0x52,0x65,0x66,0x2e,0x6b,0x5d,0x20,0x3d,0x20,0x72,0x65,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x70,0x75,0x73,0x68,0x28,0x72,0x65,0x66,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x5f,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x73,0x5b,0x72,0x65,0x66,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x6e,0x53,0x65,0x74,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x72,0x65,0x66,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x5f,0x69,0x73,0x52,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x52,0x65,0x66,0x2e,0x6b,0x29,0x20,0x72,0x65,0x66,0x73,0x5b,0x72,0x61,0x77,0x52,0x65,0x66,0x2e,0x6b,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x72,0x65,0x66,0x20,0x74,0x79,0x70,0x65,0x3a,0x22,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x60,0x28,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x65,0x66,0x7d,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x53,0x65,0x74,0x2e,0x69,0x64,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x64,0x6f,0x53,0x65,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x72,0x65,0x66,0x20,0x74,0x79,0x70,0x65,0x3a,0x22,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x60,0x28,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x65,0x66,0x7d,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x22,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x65,0x64,0x20,0x62,0x75,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x68,0x61,0x73,0x4c,0x6f,0x67,0x67,0x65,0x64,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x56,0x47,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x55,0x52,0x49,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x73,0x76,0x67,0x22,0x29,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x55,0x52,0x49,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x56,0x47,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x74,0x3a,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x68,0x61,0x73,0x43,0x68,0x69,0x6c,0x64,0x4e,0x6f,0x64,0x65,0x73,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x6d,0x61,0x72,0x6b,0x75,0x70,0x20,0x62,0x75,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x20,0x50,0x65,0x72,0x66,0x6f,0x72,0x6d,0x69,0x6e,0x67,0x20,0x66,0x75,0x6c,0x6c,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x21,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x5f,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x22,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x5f,0x5f,0x76,0x75,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x54,0x65,0x78,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x22,0x22,0x29,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x78,0x74,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x69,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x0a,0x20,0x20,0x2d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x6f,0x6e,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x0a,0x20,0x20,0x2d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x38,0x20,0x7c,0x7c,0x20,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x54,0x6f,0x41,0x64,0x6f,0x70,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x21,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x75,0x6e,0x74,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x54,0x6f,0x41,0x64,0x6f,0x70,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x2b,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x3f,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x6f,0x75,0x74,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3a,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x75,0x6e,0x74,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x20,0x3f,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x29,0x20,0x3a,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x41,0x6e,0x63,0x68,0x6f,0x72,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x41,0x6e,0x63,0x68,0x6f,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x2c,0x20,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x65,0x6e,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x54,0x79,0x70,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3f,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x6c,0x61,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x28,0x22,0x22,0x29,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x22,0x64,0x69,0x76,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x6d,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x6e,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x54,0x79,0x70,0x65,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x48,0x6f,0x73,0x74,0x56,0x4e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x22,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x60,0x28,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x79,0x70,0x65,0x7d,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x21,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x64,0x69,0x72,0x73,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x63,0x65,0x50,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x70,0x75,0x74,0x22,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x65,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x6e,0x65,0x65,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x20,0x6e,0x65,0x65,0x64,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x69,0x6e,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x61,0x70,0x70,0x65,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x65,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x73,0x6b,0x69,0x70,0x20,0x69,0x66,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x2f,0x20,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x31,0x20,0x2f,0x2a,0x20,0x43,0x48,0x49,0x4c,0x44,0x52,0x45,0x4e,0x20,0x2a,0x2f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x6f,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x0a,0x53,0x65,0x72,0x76,0x65,0x72,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x6d,0x6f,0x72,0x65,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6e,0x6f,0x64,0x65,0x73,0x20,0x74,0x68,0x61,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x76,0x64,0x6f,0x6d,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x75,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5c,0x6e,0x22,0x20,0x26,0x26,0x20,0x28,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x50,0x52,0x45,0x22,0x20,0x7c,0x7c,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x45,0x58,0x54,0x41,0x52,0x45,0x41,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x30,0x20,0x2f,0x2a,0x20,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x74,0x65,0x78,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x6f,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x0a,0x20,0x20,0x2d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x6f,0x6e,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x24,0x7b,0x65,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x0a,0x20,0x20,0x2d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2f,0x2f,0x20,0x23,0x31,0x31,0x31,0x38,0x39,0x20,0x73,0x6b,0x69,0x70,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x6e,0x6f,0x64,0x65,0x20,0x68,0x61,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x20,0x69,0x74,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x68,0x61,0x76,0x65,0x20,0x6d,0x75,0x74,0x61,0x74,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x44,0x4f,0x4d,0x20,0x69,0x6e,0x20,0x61,0x6e,0x79,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x77,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x28,0x64,0x69,0x72,0x73,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x64,0x29,0x20,0x3d,0x3e,0x20,0x64,0x2e,0x64,0x69,0x72,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x29,0x29,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x48,0x61,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6f,0x72,0x63,0x65,0x50,0x61,0x74,0x63,0x68,0x20,0x26,0x26,0x20,0x28,0x6b,0x65,0x79,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x64,0x65,0x74,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x65,0x22,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x63,0x65,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x2e,0x70,0x72,0x6f,0x70,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2e,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7c,0x7c,0x20,0x64,0x69,0x72,0x73,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x7c,0x7c,0x20,0x21,0x21,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x20,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x78,0x74,0x20,0x26,0x26,0x20,0x21,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6c,0x20,0x26,0x26,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x20,0x2b,0x20,0x31,0x5d,0x29,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x78,0x74,0x20,0x26,0x26,0x20,0x21,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x22,0x22,0x29,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x31,0x20,0x2f,0x2a,0x20,0x43,0x48,0x49,0x4c,0x44,0x52,0x45,0x4e,0x20,0x2a,0x2f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x6f,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x0a,0x53,0x65,0x72,0x76,0x65,0x72,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x73,0x20,0x66,0x65,0x77,0x65,0x72,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6e,0x6f,0x64,0x65,0x73,0x20,0x74,0x68,0x61,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x76,0x64,0x6f,0x6d,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x54,0x79,0x70,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3a,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3f,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x29,0x20,0x3a,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x20,0x26,0x26,0x20,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x65,0x78,0x74,0x29,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5d,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x60,0x5d,0x60,0x29,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x31,0x20,0x2f,0x2a,0x20,0x43,0x48,0x49,0x4c,0x44,0x52,0x45,0x4e,0x20,0x2a,0x2f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x3a,0x0a,0x2d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x6f,0x6e,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x3a,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x3f,0x20,0x60,0x28,0x74,0x65,0x78,0x74,0x29,0x60,0x20,0x3a,0x20,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x22,0x20,0x3f,0x20,0x60,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x60,0x20,0x3a,0x20,0x60,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x0a,0x2d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3a,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x67,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x45,0x72,0x72,0x6f,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x41,0x6e,0x63,0x68,0x6f,0x72,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x32,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x32,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x32,0x20,0x21,0x3d,0x3d,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x6e,0x65,0x78,0x74,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x54,0x79,0x70,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x22,0x5b,0x22,0x2c,0x20,0x63,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x22,0x5d,0x22,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x70,0x65,0x6e,0x29,0x20,0x6d,0x61,0x74,0x63,0x68,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x6c,0x6f,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x74,0x63,0x68,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x32,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x32,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x6c,0x64,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x77,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x45,0x4d,0x50,0x4c,0x41,0x54,0x45,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x5d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x70,0x48,0x61,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x28,0x74,0x6f,0x43,0x6c,0x61,0x73,0x73,0x53,0x65,0x74,0x28,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x7c,0x7c,0x20,0x22,0x22,0x29,0x2c,0x20,0x74,0x6f,0x43,0x6c,0x61,0x73,0x73,0x53,0x65,0x74,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x32,0x20,0x2f,0x2a,0x20,0x43,0x4c,0x41,0x53,0x53,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x20,0x3d,0x20,0x60,0x63,0x6c,0x61,0x73,0x73,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x53,0x74,0x79,0x6c,0x65,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x4d,0x61,0x70,0x20,0x3d,0x20,0x74,0x6f,0x53,0x74,0x79,0x6c,0x65,0x4d,0x61,0x70,0x28,0x61,0x63,0x74,0x75,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x20,0x3d,0x20,0x74,0x6f,0x53,0x74,0x79,0x6c,0x65,0x4d,0x61,0x70,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x64,0x69,0x72,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x20,0x6f,0x66,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x68,0x6f,0x77,0x22,0x20,0x26,0x26,0x20,0x21,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x2c,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x61,0x70,0x45,0x71,0x75,0x61,0x6c,0x28,0x61,0x63,0x74,0x75,0x61,0x6c,0x4d,0x61,0x70,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x33,0x20,0x2f,0x2a,0x20,0x53,0x54,0x59,0x4c,0x45,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x20,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x53,0x56,0x47,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x69,0x73,0x4b,0x6e,0x6f,0x77,0x6e,0x53,0x76,0x67,0x41,0x74,0x74,0x72,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x65,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x48,0x54,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x28,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4b,0x6e,0x6f,0x77,0x6e,0x48,0x74,0x6d,0x6c,0x41,0x74,0x74,0x72,0x28,0x6b,0x65,0x79,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x45,0x58,0x54,0x41,0x52,0x45,0x41,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x52,0x65,0x6e,0x64,0x65,0x72,0x61,0x62,0x6c,0x65,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x6c,0x69,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x34,0x20,0x2f,0x2a,0x20,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x20,0x3d,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x76,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3f,0x20,0x60,0x28,0x6e,0x6f,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x29,0x60,0x20,0x3a,0x20,0x60,0x24,0x7b,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x7d,0x3d,0x22,0x24,0x7b,0x76,0x7d,0x22,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x60,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x24,0x7b,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x5b,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x5d,0x7d,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x6f,0x6e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6f,0x73,0x74,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x60,0x0a,0x20,0x20,0x2d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x6f,0x6e,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x61,0x63,0x74,0x75,0x61,0x6c,0x29,0x7d,0x0a,0x20,0x20,0x2d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x3a,0x20,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x29,0x7d,0x0a,0x20,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x74,0x68,0x69,0x73,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x20,0x69,0x73,0x20,0x63,0x68,0x65,0x63,0x6b,0x2d,0x6f,0x6e,0x6c,0x79,0x2e,0x20,0x54,0x68,0x65,0x20,0x44,0x4f,0x4d,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x72,0x65,0x63,0x74,0x69,0x66,0x69,0x65,0x64,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x6f,0x76,0x65,0x72,0x68,0x65,0x61,0x64,0x2e,0x0a,0x20,0x20,0x59,0x6f,0x75,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x66,0x69,0x78,0x20,0x74,0x68,0x65,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x2e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x70,0x72,0x65,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x65,0x6c,0x2c,0x20,0x70,0x6f,0x73,0x74,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x43,0x6c,0x61,0x73,0x73,0x53,0x65,0x74,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x73,0x74,0x72,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x65,0x74,0x45,0x71,0x75,0x61,0x6c,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x73,0x69,0x7a,0x65,0x20,0x21,0x3d,0x3d,0x20,0x62,0x2e,0x73,0x69,0x7a,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x20,0x6f,0x66,0x20,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x62,0x2e,0x68,0x61,0x73,0x28,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x53,0x74,0x79,0x6c,0x65,0x4d,0x61,0x70,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x74,0x65,0x6d,0x20,0x6f,0x66,0x20,0x73,0x74,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x3b,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x5b,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x5d,0x20,0x3d,0x20,0x69,0x74,0x65,0x6d,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x3a,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x4d,0x61,0x70,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4d,0x61,0x70,0x45,0x71,0x75,0x61,0x6c,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x73,0x69,0x7a,0x65,0x20,0x21,0x3d,0x3d,0x20,0x62,0x2e,0x73,0x69,0x7a,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x5d,0x20,0x6f,0x66,0x20,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x62,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x67,0x65,0x74,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x20,0x26,0x26,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x20,0x7c,0x7c,0x20,0x72,0x6f,0x6f,0x74,0x20,0x26,0x26,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x73,0x73,0x56,0x61,0x72,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x67,0x65,0x74,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x63,0x73,0x73,0x56,0x61,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x2d,0x2d,0x24,0x7b,0x67,0x65,0x74,0x45,0x73,0x63,0x61,0x70,0x65,0x64,0x43,0x73,0x73,0x56,0x61,0x72,0x4e,0x61,0x6d,0x65,0x28,0x6b,0x65,0x79,0x29,0x7d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x73,0x73,0x56,0x61,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4d,0x61,0x70,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x22,0x64,0x61,0x74,0x61,0x2d,0x61,0x6c,0x6c,0x6f,0x77,0x2d,0x6d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5b,0x30,0x20,0x2f,0x2a,0x20,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x5d,0x3a,0x20,0x22,0x74,0x65,0x78,0x74,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x20,0x2f,0x2a,0x20,0x43,0x48,0x49,0x4c,0x44,0x52,0x45,0x4e,0x20,0x2a,0x2f,0x5d,0x3a,0x20,0x22,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x20,0x2f,0x2a,0x20,0x43,0x4c,0x41,0x53,0x53,0x20,0x2a,0x2f,0x5d,0x3a,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x20,0x2f,0x2a,0x20,0x53,0x54,0x59,0x4c,0x45,0x20,0x2a,0x2f,0x5d,0x3a,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x20,0x2f,0x2a,0x20,0x41,0x54,0x54,0x52,0x49,0x42,0x55,0x54,0x45,0x20,0x2a,0x2f,0x5d,0x3a,0x20,0x22,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x22,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x20,0x7c,0x7c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x2f,0x2a,0x20,0x43,0x48,0x49,0x4c,0x44,0x52,0x45,0x4e,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x65,0x6c,0x20,0x26,0x26,0x20,0x21,0x65,0x6c,0x2e,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x74,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x65,0x6c,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x41,0x74,0x74,0x72,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x41,0x74,0x74,0x72,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x41,0x74,0x74,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x41,0x74,0x74,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x20,0x26,0x26,0x20,0x6c,0x69,0x73,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x41,0x74,0x74,0x72,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x4d,0x69,0x73,0x6d,0x61,0x74,0x63,0x68,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x5b,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x54,0x79,0x70,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x49,0x64,0x6c,0x65,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x67,0x65,0x74,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x28,0x29,0x2e,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x49,0x64,0x6c,0x65,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x7c,0x7c,0x20,0x28,0x28,0x63,0x62,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x63,0x62,0x2c,0x20,0x31,0x29,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x49,0x64,0x6c,0x65,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x67,0x65,0x74,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x28,0x29,0x2e,0x63,0x61,0x6e,0x63,0x65,0x6c,0x49,0x64,0x6c,0x65,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x7c,0x7c,0x20,0x28,0x28,0x69,0x64,0x29,0x20,0x3d,0x3e,0x20,0x63,0x6c,0x65,0x61,0x72,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x69,0x64,0x29,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x64,0x6c,0x65,0x20,0x3d,0x20,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x31,0x65,0x34,0x29,0x20,0x3d,0x3e,0x20,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x64,0x20,0x3d,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x49,0x64,0x6c,0x65,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x7b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x61,0x6e,0x63,0x65,0x6c,0x49,0x64,0x6c,0x65,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x69,0x64,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x49,0x73,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x49,0x6e,0x56,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x6f,0x70,0x2c,0x20,0x6c,0x65,0x66,0x74,0x2c,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x2c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x7d,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x67,0x65,0x74,0x42,0x6f,0x75,0x6e,0x64,0x69,0x6e,0x67,0x43,0x6c,0x69,0x65,0x6e,0x74,0x52,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x69,0x6e,0x6e,0x65,0x72,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x20,0x7d,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x74,0x6f,0x70,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x74,0x6f,0x70,0x20,0x3c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x7c,0x7c,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x3c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x48,0x65,0x69,0x67,0x68,0x74,0x29,0x20,0x26,0x26,0x20,0x28,0x6c,0x65,0x66,0x74,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x6c,0x65,0x66,0x74,0x20,0x3c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x20,0x7c,0x7c,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x3c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x57,0x69,0x64,0x74,0x68,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x20,0x3d,0x20,0x28,0x6f,0x70,0x74,0x73,0x29,0x20,0x3d,0x3e,0x20,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x62,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x49,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x28,0x28,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x20,0x6f,0x66,0x20,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6e,0x67,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x62,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x20,0x6f,0x70,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x65,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x65,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x49,0x73,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x49,0x6e,0x56,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x28,0x65,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x62,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x62,0x2e,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6f,0x62,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x4d,0x65,0x64,0x69,0x61,0x51,0x75,0x65,0x72,0x79,0x20,0x3d,0x20,0x28,0x71,0x75,0x65,0x72,0x79,0x29,0x20,0x3d,0x3e,0x20,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x71,0x75,0x65,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x71,0x6c,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x4d,0x65,0x64,0x69,0x61,0x28,0x71,0x75,0x65,0x72,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x71,0x6c,0x2e,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x71,0x6c,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x7b,0x20,0x6f,0x6e,0x63,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x71,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x20,0x3d,0x3e,0x20,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x29,0x29,0x20,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x61,0x72,0x64,0x6f,0x77,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x20,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x65,0x2e,0x74,0x79,0x70,0x65,0x2c,0x20,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x61,0x72,0x64,0x6f,0x77,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x65,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x69,0x2c,0x20,0x64,0x6f,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x65,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x6f,0x66,0x20,0x69,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x69,0x2c,0x20,0x64,0x6f,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x7b,0x20,0x6f,0x6e,0x63,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x61,0x72,0x64,0x6f,0x77,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x62,0x28,0x6e,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5d,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2d,0x2d,0x64,0x65,0x70,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x74,0x68,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x62,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x3d,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x21,0x21,0x69,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x4c,0x6f,0x61,0x64,0x65,0x72,0x3b,0x0a,0x2f,0x2a,0x21,0x20,0x23,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x0a,0x2f,0x2f,0x20,0x40,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x7b,0x20,0x6c,0x6f,0x61,0x64,0x65,0x72,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x61,0x79,0x20,0x3d,0x20,0x32,0x30,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x3d,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x74,0x69,0x6d,0x65,0x73,0x20,0x6f,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x3a,0x20,0x75,0x73,0x65,0x72,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x72,0x69,0x65,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x72,0x79,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x72,0x69,0x65,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x68,0x69,0x73,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x7c,0x7c,0x20,0x28,0x74,0x68,0x69,0x73,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x3d,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x3d,0x20,0x6c,0x6f,0x61,0x64,0x65,0x72,0x28,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x72,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x20,0x3d,0x20,0x65,0x72,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x45,0x72,0x72,0x6f,0x72,0x20,0x3f,0x20,0x65,0x72,0x72,0x20,0x3a,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x72,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x73,0x65,0x72,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2c,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x73,0x65,0x72,0x52,0x65,0x74,0x72,0x79,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x72,0x65,0x74,0x72,0x79,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x73,0x65,0x72,0x46,0x61,0x69,0x6c,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x6a,0x65,0x63,0x74,0x28,0x65,0x72,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x75,0x73,0x65,0x72,0x52,0x65,0x74,0x72,0x79,0x2c,0x20,0x75,0x73,0x65,0x72,0x46,0x61,0x69,0x6c,0x2c,0x20,0x72,0x65,0x74,0x72,0x69,0x65,0x73,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x63,0x6f,0x6d,0x70,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x21,0x3d,0x3d,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x26,0x26,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x73,0x79,0x6e,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x6c,0x6f,0x61,0x64,0x65,0x72,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x2e,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x72,0x65,0x74,0x72,0x79,0x28,0x29,0x2c,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x74,0x73,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x20,0x26,0x26,0x20,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x5f,0x5f,0x65,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6d,0x70,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x61,0x67,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x6c,0x6f,0x61,0x64,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3a,0x20,0x24,0x7b,0x63,0x6f,0x6d,0x70,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x4c,0x6f,0x61,0x64,0x65,0x72,0x3a,0x20,0x6c,0x6f,0x61,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x65,0x6c,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x79,0x20,0x3f,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x61,0x72,0x64,0x6f,0x77,0x6e,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x63,0x62,0x29,0x20,0x3d,0x3e,0x20,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x62,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x61,0x72,0x64,0x6f,0x77,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x62,0x75,0x6d,0x20,0x7c,0x7c,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x62,0x75,0x6d,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x65,0x61,0x72,0x64,0x6f,0x77,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x26,0x26,0x20,0x64,0x6f,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x73,0x79,0x6e,0x63,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x6e,0x65,0x72,0x43,0x6f,0x6d,0x70,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x7c,0x7c,0x20,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x6f,0x61,0x64,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x63,0x6f,0x6d,0x70,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x6e,0x65,0x72,0x43,0x6f,0x6d,0x70,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x72,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x65,0x72,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x66,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x72,0x65,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x66,0x28,0x21,0x21,0x64,0x65,0x6c,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x6f,0x61,0x64,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x21,0x65,0x72,0x72,0x6f,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x73,0x79,0x6e,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x69,0x6d,0x65,0x64,0x20,0x6f,0x75,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x24,0x7b,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x7d,0x6d,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x61,0x64,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x72,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x72,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x61,0x64,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x6e,0x65,0x72,0x43,0x6f,0x6d,0x70,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x65,0x72,0x72,0x6f,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x64,0x65,0x6c,0x61,0x79,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x6e,0x65,0x72,0x43,0x6f,0x6d,0x70,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x72,0x65,0x66,0x3a,0x20,0x72,0x65,0x66,0x32,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x63,0x65,0x20,0x7d,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x72,0x65,0x66,0x20,0x3d,0x20,0x72,0x65,0x66,0x32,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x65,0x20,0x3d,0x20,0x63,0x65,0x3b,0x0a,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x49,0x6d,0x70,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x60,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x60,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x20,0x57,0x65,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x3d,0x3d,0x3d,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x6f,0x6e,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x69,0x6e,0x67,0x20,0x69,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x77,0x6f,0x75,0x6c,0x64,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x69,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x74,0x72,0x65,0x65,0x2d,0x73,0x68,0x61,0x6b,0x65,0x6e,0x2e,0x0a,0x20,0x20,0x5f,0x5f,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x3a,0x20,0x5b,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x2c,0x20,0x41,0x72,0x72,0x61,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x3a,0x20,0x5b,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x2c,0x20,0x41,0x72,0x72,0x61,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x3a,0x20,0x5b,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x72,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x68,0x61,0x72,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x20,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x5f,0x5f,0x76,0x5f,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x3a,0x20,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6d,0x3a,0x20,0x5f,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x73,0x68,0x61,0x72,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x6f,0x72,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x64,0x69,0x76,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x72,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x30,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x69,0x73,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x41,0x64,0x64,0x65,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x72,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x73,0x74,0x6f,0x72,0x61,0x67,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x31,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x64,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x64,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x2e,0x69,0x73,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x41,0x64,0x64,0x65,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x75,0x6e,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x66,0x69,0x6c,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x21,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x75,0x6e,0x65,0x43,0x61,0x63,0x68,0x65,0x45,0x6e,0x74,0x72,0x79,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x75,0x6e,0x65,0x43,0x61,0x63,0x68,0x65,0x45,0x6e,0x74,0x72,0x79,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x5b,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x5d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x26,0x26,0x20,0x70,0x72,0x75,0x6e,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x26,0x26,0x20,0x70,0x72,0x75,0x6e,0x65,0x43,0x61,0x63,0x68,0x65,0x28,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x75,0x6e,0x65,0x20,0x70,0x6f,0x73,0x74,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x60,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x60,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x20,0x66,0x6c,0x75,0x73,0x68,0x3a,0x20,0x22,0x70,0x6f,0x73,0x74,0x22,0x2c,0x20,0x64,0x65,0x65,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x75,0x62,0x74,0x72,0x65,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x2c,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x2c,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x61,0x63,0x68,0x65,0x53,0x75,0x62,0x74,0x72,0x65,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x63,0x61,0x63,0x68,0x65,0x53,0x75,0x62,0x74,0x72,0x65,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x26,0x26,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x64,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x20,0x26,0x26,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x64,0x61,0x2c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x6f,0x6e,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7c,0x7c,0x20,0x21,0x28,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x34,0x29,0x20,0x26,0x26,0x20,0x21,0x28,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x28,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x20,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x6d,0x61,0x78,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x26,0x26,0x20,0x28,0x21,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x21,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7c,0x7c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x26,0x26,0x20,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x3d,0x20,0x7e,0x32,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x63,0x6f,0x6d,0x70,0x20,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x35,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x73,0x2e,0x61,0x64,0x64,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x73,0x2e,0x61,0x64,0x64,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x78,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x73,0x2e,0x73,0x69,0x7a,0x65,0x20,0x3e,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x74,0x28,0x6d,0x61,0x78,0x2c,0x20,0x31,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x75,0x6e,0x65,0x43,0x61,0x63,0x68,0x65,0x45,0x6e,0x74,0x72,0x79,0x28,0x6b,0x65,0x79,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x73,0x28,0x29,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x32,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x72,0x61,0x77,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x20,0x3d,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x49,0x6d,0x70,0x6c,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x70,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x6c,0x61,0x73,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x41,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x22,0x61,0x22,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x22,0x64,0x61,0x22,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x5f,0x5f,0x77,0x64,0x63,0x20,0x7c,0x7c,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2e,0x5f,0x5f,0x77,0x64,0x63,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x69,0x73,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x6f,0x6f,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x54,0x6f,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x52,0x6f,0x6f,0x74,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x54,0x6f,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x52,0x6f,0x6f,0x74,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x52,0x6f,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x6b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x52,0x6f,0x6f,0x74,0x5b,0x74,0x79,0x70,0x65,0x5d,0x2c,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x3d,0x20,0x7e,0x32,0x35,0x36,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x3d,0x20,0x7e,0x35,0x31,0x32,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x49,0x6e,0x6e,0x65,0x72,0x43,0x68,0x69,0x6c,0x64,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x20,0x3f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x5f,0x5f,0x77,0x65,0x68,0x20,0x7c,0x7c,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2e,0x5f,0x5f,0x77,0x65,0x68,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x64,0x48,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x69,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x24,0x31,0x5b,0x74,0x79,0x70,0x65,0x5d,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x20,0x68,0x6f,0x6f,0x6b,0x24,0x2f,0x2c,0x20,0x22,0x22,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x61,0x70,0x69,0x4e,0x61,0x6d,0x65,0x7d,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x2e,0x20,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x41,0x50,0x49,0x73,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x65,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x2e,0x60,0x20,0x2b,0x20,0x28,0x60,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x2c,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x20,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x60,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x28,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x29,0x20,0x3d,0x3e,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x20,0x7c,0x7c,0x20,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x70,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x2c,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x68,0x6f,0x6f,0x6b,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x62,0x6d,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x6d,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x0a,0x20,0x20,0x22,0x62,0x75,0x22,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x75,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x0a,0x20,0x20,0x22,0x62,0x75,0x6d,0x22,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x75,0x6d,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x53,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x0a,0x20,0x20,0x22,0x73,0x70,0x22,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x72,0x74,0x67,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x72,0x74,0x63,0x22,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x48,0x6f,0x6f,0x6b,0x28,0x22,0x65,0x63,0x22,0x2c,0x20,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x53,0x20,0x3d,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x53,0x20,0x3d,0x20,0x22,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x22,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x41,0x73,0x73,0x65,0x74,0x28,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x53,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x20,0x7c,0x7c,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4e,0x55,0x4c,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x76,0x2d,0x6e,0x64,0x63,0x22,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x41,0x73,0x73,0x65,0x74,0x28,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x53,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x4e,0x55,0x4c,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x41,0x73,0x73,0x65,0x74,0x28,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x53,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x41,0x73,0x73,0x65,0x74,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x77,0x61,0x72,0x6e,0x4d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x53,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x6c,0x66,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6c,0x66,0x4e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x28,0x73,0x65,0x6c,0x66,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x73,0x65,0x6c,0x66,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7c,0x7c,0x20,0x73,0x65,0x6c,0x66,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x41,0x50,0x49,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x5b,0x74,0x79,0x70,0x65,0x5d,0x20,0x7c,0x7c,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x5b,0x74,0x79,0x70,0x65,0x5d,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x5b,0x74,0x79,0x70,0x65,0x5d,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x20,0x26,0x26,0x20,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x72,0x6e,0x4d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x21,0x72,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x74,0x72,0x61,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x53,0x20,0x3f,0x20,0x60,0x0a,0x49,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x6e,0x61,0x74,0x69,0x76,0x65,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x20,0x69,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x20,0x76,0x69,0x61,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x60,0x20,0x3a,0x20,0x60,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x2d,0x31,0x29,0x7d,0x3a,0x20,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x24,0x7b,0x65,0x78,0x74,0x72,0x61,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x24,0x7b,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x74,0x79,0x70,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x2d,0x31,0x29,0x29,0x7d,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x29,0x20,0x6f,0x72,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x20,0x26,0x26,0x20,0x28,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x20,0x7c,0x7c,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x5d,0x20,0x7c,0x7c,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x5b,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x4c,0x69,0x73,0x74,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x74,0x65,0x6d,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x26,0x26,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x49,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x41,0x72,0x72,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x20,0x3d,0x20,0x21,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x74,0x65,0x6d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x73,0x57,0x72,0x61,0x70,0x20,0x3f,0x20,0x74,0x6f,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x69,0x5d,0x29,0x20,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x69,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x5b,0x69,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2e,0x69,0x73,0x49,0x6e,0x74,0x65,0x67,0x65,0x72,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x54,0x68,0x65,0x20,0x76,0x2d,0x66,0x6f,0x72,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x20,0x61,0x6e,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x62,0x75,0x74,0x20,0x67,0x6f,0x74,0x20,0x24,0x7b,0x73,0x6f,0x75,0x72,0x63,0x65,0x7d,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x74,0x65,0x6d,0x28,0x69,0x20,0x2b,0x20,0x31,0x2c,0x20,0x69,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x74,0x65,0x6d,0x28,0x69,0x74,0x65,0x6d,0x2c,0x20,0x69,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x5b,0x69,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x6b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x6b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x49,0x74,0x65,0x6d,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x69,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x72,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x6c,0x6f,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x73,0x6c,0x6f,0x74,0x5b,0x6a,0x5d,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x5b,0x6a,0x5d,0x2e,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x73,0x6c,0x6f,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3f,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x66,0x6e,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x29,0x20,0x72,0x65,0x73,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x3a,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x66,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x6e,0x6f,0x53,0x6c,0x6f,0x74,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x22,0x73,0x6c,0x6f,0x74,0x22,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x26,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x29,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x34,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x53,0x53,0x52,0x2d,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x73,0x6c,0x6f,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x74,0x65,0x63,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x61,0x20,0x6e,0x6f,0x6e,0x2d,0x53,0x53,0x52,0x2d,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x59,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x61,0x72,0x6b,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x2d,0x73,0x6c,0x6f,0x74,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x53,0x6c,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x20,0x26,0x26,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x56,0x61,0x6c,0x69,0x64,0x56,0x4e,0x6f,0x64,0x65,0x28,0x73,0x6c,0x6f,0x74,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x4b,0x65,0x79,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x73,0x6c,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x61,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x73,0x6c,0x6f,0x74,0x20,0x6d,0x61,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6b,0x65,0x79,0x20,0x61,0x74,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x60,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x20,0x74,0x68,0x61,0x74,0x0a,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x53,0x6c,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x69,0x64,0x53,0x6c,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x28,0x73,0x6c,0x6f,0x74,0x4b,0x65,0x79,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x73,0x6c,0x6f,0x74,0x4b,0x65,0x79,0x29,0x20,0x3f,0x20,0x73,0x6c,0x6f,0x74,0x4b,0x65,0x79,0x20,0x3a,0x20,0x60,0x5f,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x29,0x20,0x2b,0x20,0x2f,0x2f,0x20,0x23,0x37,0x32,0x35,0x36,0x20,0x66,0x6f,0x72,0x63,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x69,0x61,0x74,0x65,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x66,0x72,0x6f,0x6d,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x21,0x76,0x61,0x6c,0x69,0x64,0x53,0x6c,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3f,0x20,0x22,0x5f,0x66,0x62,0x22,0x20,0x3a,0x20,0x22,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x53,0x6c,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x28,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3f,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x20,0x3a,0x20,0x5b,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x53,0x6c,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x5f,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x3f,0x20,0x36,0x34,0x20,0x3a,0x20,0x2d,0x32,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x6f,0x53,0x6c,0x6f,0x74,0x74,0x65,0x64,0x20,0x26,0x26,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x2e,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3d,0x20,0x5b,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x2b,0x20,0x22,0x2d,0x73,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x56,0x61,0x6c,0x69,0x64,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x65,0x6e,0x73,0x75,0x72,0x65,0x56,0x61,0x6c,0x69,0x64,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x20,0x3f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x73,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x28,0x6f,0x62,0x6a,0x2c,0x20,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x43,0x61,0x73,0x65,0x49,0x66,0x4e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x6f,0x62,0x6a,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x76,0x2d,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x73,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x43,0x61,0x73,0x65,0x49,0x66,0x4e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x26,0x26,0x20,0x2f,0x5b,0x41,0x2d,0x5a,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6b,0x65,0x79,0x29,0x20,0x3f,0x20,0x60,0x6f,0x6e,0x3a,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x60,0x20,0x3a,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x29,0x5d,0x20,0x3d,0x20,0x6f,0x62,0x6a,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x20,0x3d,0x20,0x28,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x4d,0x6f,0x76,0x65,0x20,0x50,0x55,0x52,0x45,0x20,0x6d,0x61,0x72,0x6b,0x65,0x72,0x20,0x74,0x6f,0x20,0x6e,0x65,0x77,0x20,0x6c,0x69,0x6e,0x65,0x20,0x74,0x6f,0x20,0x77,0x6f,0x72,0x6b,0x61,0x72,0x6f,0x75,0x6e,0x64,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x69,0x6e,0x67,0x20,0x69,0x74,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x74,0x79,0x70,0x65,0x20,0x61,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x24,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x65,0x6c,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x64,0x61,0x74,0x61,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2e,0x64,0x61,0x74,0x61,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x69,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x61,0x74,0x74,0x72,0x73,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x69,0x2e,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x73,0x6c,0x6f,0x74,0x73,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x69,0x2e,0x73,0x6c,0x6f,0x74,0x73,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x72,0x65,0x66,0x73,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x69,0x2e,0x72,0x65,0x66,0x73,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x72,0x6f,0x6f,0x74,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x67,0x65,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x2e,0x72,0x6f,0x6f,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x68,0x6f,0x73,0x74,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x65,0x6d,0x69,0x74,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2e,0x65,0x6d,0x69,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x4d,0x65,0x72,0x67,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x66,0x6f,0x72,0x63,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2e,0x66,0x20,0x7c,0x7c,0x20,0x28,0x69,0x2e,0x66,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x4a,0x6f,0x62,0x28,0x69,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x2e,0x6e,0x20,0x7c,0x7c,0x20,0x28,0x69,0x2e,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x2e,0x62,0x69,0x6e,0x64,0x28,0x69,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x24,0x77,0x61,0x74,0x63,0x68,0x3a,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x57,0x61,0x74,0x63,0x68,0x2e,0x62,0x69,0x6e,0x64,0x28,0x69,0x29,0x20,0x0a,0x20,0x20,0x7d,0x29,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x65,0x66,0x69,0x78,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x24,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x53,0x65,0x74,0x75,0x70,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x21,0x73,0x74,0x61,0x74,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x53,0x63,0x72,0x69,0x70,0x74,0x53,0x65,0x74,0x75,0x70,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x28,0x7b,0x20,0x5f,0x3a,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7d,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x74,0x78,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x64,0x61,0x74,0x61,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x5f,0x69,0x73,0x56,0x75,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x24,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x20,0x3d,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x20,0x2f,0x2a,0x20,0x53,0x45,0x54,0x55,0x50,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x20,0x2f,0x2a,0x20,0x44,0x41,0x54,0x41,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x61,0x74,0x61,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4e,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x74,0x78,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x20,0x2f,0x2a,0x20,0x50,0x52,0x4f,0x50,0x53,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x53,0x65,0x74,0x75,0x70,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x31,0x20,0x2f,0x2a,0x20,0x53,0x45,0x54,0x55,0x50,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x64,0x61,0x74,0x61,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x32,0x20,0x2f,0x2a,0x20,0x44,0x41,0x54,0x41,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x61,0x74,0x61,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x68,0x61,0x73,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x20,0x28,0x74,0x68,0x75,0x73,0x20,0x73,0x74,0x61,0x62,0x6c,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x30,0x5d,0x29,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x33,0x20,0x2f,0x2a,0x20,0x50,0x52,0x4f,0x50,0x53,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x74,0x78,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x34,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4e,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x74,0x78,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x41,0x63,0x63,0x65,0x73,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x4f,0x54,0x48,0x45,0x52,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x47,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x2c,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x47,0x65,0x74,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x24,0x61,0x74,0x74,0x72,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x74,0x74,0x72,0x73,0x41,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x24,0x73,0x6c,0x6f,0x74,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x73,0x73,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x76,0x75,0x65,0x2d,0x6c,0x6f,0x61,0x64,0x65,0x72,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x29,0x20,0x26,0x26,0x20,0x28,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x3d,0x20,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x74,0x78,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x34,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4e,0x54,0x45,0x58,0x54,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x74,0x78,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x23,0x31,0x30,0x39,0x31,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x69,0x73,0x52,0x65,0x66,0x2f,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x20,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6c,0x65,0x61,0x64,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x69,0x6e,0x66,0x69,0x6e,0x69,0x74,0x65,0x20,0x77,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x6f,0x70,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x5f,0x5f,0x76,0x22,0x29,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x29,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x64,0x61,0x74,0x61,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x76,0x69,0x61,0x20,0x24,0x64,0x61,0x74,0x61,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x28,0x22,0x24,0x22,0x20,0x6f,0x72,0x20,0x22,0x5f,0x22,0x29,0x20,0x61,0x6e,0x64,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x70,0x72,0x6f,0x78,0x69,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6b,0x65,0x79,0x29,0x7d,0x20,0x77,0x61,0x73,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x62,0x75,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x6f,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x28,0x7b,0x20,0x5f,0x3a,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7d,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x64,0x61,0x74,0x61,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x63,0x74,0x78,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x53,0x65,0x74,0x75,0x70,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x53,0x63,0x72,0x69,0x70,0x74,0x53,0x65,0x74,0x75,0x70,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x6d,0x75,0x74,0x61,0x74,0x65,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x3e,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x66,0x72,0x6f,0x6d,0x20,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x41,0x50,0x49,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x64,0x61,0x74,0x61,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x6d,0x75,0x74,0x61,0x74,0x65,0x20,0x70,0x72,0x6f,0x70,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x2e,0x20,0x50,0x72,0x6f,0x70,0x73,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x24,0x22,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x20,0x69,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x74,0x74,0x65,0x6d,0x70,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x6d,0x75,0x74,0x61,0x74,0x65,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x2e,0x20,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x73,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x77,0x69,0x74,0x68,0x20,0x24,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x68,0x61,0x73,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x3a,0x20,0x7b,0x20,0x64,0x61,0x74,0x61,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x2c,0x20,0x63,0x74,0x78,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x64,0x61,0x74,0x61,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x64,0x61,0x74,0x61,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x53,0x65,0x74,0x75,0x70,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x30,0x5d,0x29,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x2e,0x67,0x65,0x74,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x2e,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x2c,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x73,0x63,0x72,0x69,0x70,0x74,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x7b,0x0a,0x20,0x20,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2e,0x6f,0x77,0x6e,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x76,0x6f,0x69,0x64,0x20,0x61,0x70,0x70,0x20,0x6c,0x6f,0x67,0x69,0x63,0x20,0x74,0x68,0x61,0x74,0x20,0x72,0x65,0x6c,0x69,0x65,0x73,0x20,0x6f,0x6e,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x6b,0x65,0x79,0x73,0x20,0x6f,0x6e,0x20,0x61,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x20,0x54,0x68,0x65,0x20,0x6b,0x65,0x79,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x6f,0x76,0x65,0x72,0x68,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x6f,0x77,0x6e,0x4b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x75,0x6e,0x73,0x63,0x6f,0x70,0x61,0x62,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x68,0x61,0x73,0x28,0x5f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x20,0x3d,0x20,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x5f,0x22,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x6c,0x79,0x41,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x20,0x26,0x26,0x20,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2e,0x68,0x61,0x73,0x28,0x5f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x5f,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x61,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x66,0x6f,0x72,0x20,0x56,0x75,0x65,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x52,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x60,0x5f,0x60,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x5b,0x6b,0x65,0x79,0x5d,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x74,0x65,0x72,0x63,0x65,0x70,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x78,0x79,0x20,0x73,0x6f,0x20,0x6e,0x6f,0x20,0x6e,0x65,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x6e,0x65,0x65,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x73,0x65,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x4e,0x4f,0x4f,0x50,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x4e,0x4f,0x4f,0x50,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x4f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x74,0x78,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x6f,0x52,0x61,0x77,0x28,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x29,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x53,0x63,0x72,0x69,0x70,0x74,0x53,0x65,0x74,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x22,0x24,0x22,0x20,0x6f,0x72,0x20,0x22,0x5f,0x22,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x56,0x75,0x65,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x4e,0x4f,0x4f,0x50,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x29,0x20,0x3d,0x3e,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x60,0x24,0x7b,0x6d,0x65,0x74,0x68,0x6f,0x64,0x7d,0x28,0x29,0x20,0x69,0x73,0x20,0x61,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x68,0x69,0x6e,0x74,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x75,0x73,0x61,0x62,0x6c,0x65,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x3e,0x20,0x6f,0x66,0x20,0x61,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x66,0x69,0x6c,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x20,0x49,0x74,0x73,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x61,0x77,0x61,0x79,0x20,0x61,0x6e,0x64,0x20,0x70,0x61,0x73,0x73,0x69,0x6e,0x67,0x20,0x69,0x74,0x20,0x61,0x74,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x60,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x60,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x6d,0x69,0x74,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x60,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x6d,0x69,0x74,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x78,0x70,0x6f,0x73,0x65,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x60,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x78,0x70,0x6f,0x73,0x65,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x60,0x64,0x65,0x66,0x69,0x6e,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x60,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x6c,0x6f,0x74,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x22,0x64,0x65,0x66,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x55,0x73,0x61,0x67,0x65,0x28,0x60,0x77,0x69,0x74,0x68,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x2e,0x73,0x6c,0x6f,0x74,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x41,0x74,0x74,0x72,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x2e,0x61,0x74,0x74,0x72,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x75,0x73,0x65,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x2e,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x7c,0x7c,0x20,0x28,0x69,0x2e,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x72,0x45,0x6d,0x69,0x74,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3f,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x72,0x65,0x64,0x75,0x63,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x2c,0x20,0x70,0x29,0x20,0x3d,0x3e,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x5b,0x70,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x28,0x72,0x61,0x77,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x72,0x45,0x6d,0x69,0x74,0x73,0x28,0x72,0x61,0x77,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5f,0x5f,0x73,0x6b,0x69,0x70,0x22,0x29,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x70,0x74,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x6f,0x70,0x74,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x7b,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x70,0x72,0x6f,0x70,0x73,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x63,0x6f,0x72,0x72,0x65,0x73,0x70,0x6f,0x6e,0x64,0x69,0x6e,0x67,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x20,0x26,0x26,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x5b,0x60,0x5f,0x5f,0x73,0x6b,0x69,0x70,0x5f,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x60,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x2e,0x73,0x6b,0x69,0x70,0x46,0x61,0x63,0x74,0x6f,0x72,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x73,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x20,0x7c,0x7c,0x20,0x21,0x62,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x20,0x7c,0x7c,0x20,0x62,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x61,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x62,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x62,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x72,0x45,0x6d,0x69,0x74,0x73,0x28,0x61,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x72,0x45,0x6d,0x69,0x74,0x73,0x28,0x62,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x52,0x65,0x73,0x74,0x50,0x72,0x6f,0x78,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x64,0x4b,0x65,0x79,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x63,0x6c,0x75,0x64,0x65,0x64,0x4b,0x65,0x79,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x72,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x67,0x65,0x74,0x41,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x74,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x77,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x61,0x20,0x62,0x75,0x67,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x41,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x75,0x6e,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x61,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x61,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x63,0x74,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x61,0x77,0x61,0x69,0x74,0x61,0x62,0x6c,0x65,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x63,0x74,0x78,0x29,0x5d,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x43,0x68,0x65,0x63,0x6b,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x69,0x6e,0x20,0x24,0x7b,0x63,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x7d,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x41,0x63,0x63,0x65,0x73,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x4d,0x65,0x72,0x67,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x3b,0x0a,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x41,0x63,0x63,0x65,0x73,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x62,0x63,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x3a,0x20,0x64,0x61,0x74,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x3a,0x20,0x77,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x3a,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x3a,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x73,0x74,0x72,0x6f,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x73,0x74,0x72,0x6f,0x79,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x41,0x50,0x49,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x73,0x65,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x73,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x43,0x68,0x65,0x63,0x6b,0x65,0x72,0x28,0x29,0x20,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x22,0x50,0x72,0x6f,0x70,0x73,0x22,0x20,0x2f,0x2a,0x20,0x50,0x52,0x4f,0x50,0x53,0x20,0x2a,0x2f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x63,0x74,0x78,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6d,0x65,0x74,0x68,0x6f,0x64,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x22,0x4d,0x65,0x74,0x68,0x6f,0x64,0x73,0x22,0x20,0x2f,0x2a,0x20,0x4d,0x45,0x54,0x48,0x4f,0x44,0x53,0x20,0x2a,0x2f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x4d,0x65,0x74,0x68,0x6f,0x64,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x68,0x61,0x73,0x20,0x74,0x79,0x70,0x65,0x20,0x22,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x7d,0x22,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x44,0x69,0x64,0x20,0x79,0x6f,0x75,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x3f,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x61,0x74,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x64,0x61,0x74,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x54,0x68,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x20,0x50,0x6c,0x61,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x75,0x73,0x61,0x67,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x20,0x6c,0x6f,0x6e,0x67,0x65,0x72,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x64,0x61,0x74,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x64,0x61,0x74,0x61,0x28,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x61,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x20,0x2d,0x20,0x6e,0x6f,0x74,0x65,0x20,0x64,0x61,0x74,0x61,0x28,0x29,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x73,0x79,0x6e,0x63,0x3b,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x69,0x6e,0x74,0x65,0x6e,0x64,0x20,0x74,0x6f,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x20,0x64,0x61,0x74,0x61,0x20,0x66,0x65,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x73,0x2c,0x20,0x75,0x73,0x65,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x2b,0x20,0x3c,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3e,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x64,0x61,0x74,0x61,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x64,0x61,0x74,0x61,0x28,0x29,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x64,0x61,0x74,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x64,0x61,0x74,0x61,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x22,0x44,0x61,0x74,0x61,0x22,0x20,0x2f,0x2a,0x20,0x44,0x41,0x54,0x41,0x20,0x2a,0x2f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x64,0x61,0x74,0x61,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x4e,0x4f,0x4f,0x50,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x41,0x63,0x63,0x65,0x73,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x20,0x3d,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x29,0x20,0x3f,0x20,0x6f,0x70,0x74,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x2e,0x67,0x65,0x74,0x29,0x20,0x3f,0x20,0x6f,0x70,0x74,0x2e,0x67,0x65,0x74,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x65,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x20,0x3d,0x20,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x2e,0x73,0x65,0x74,0x29,0x20,0x3f,0x20,0x6f,0x70,0x74,0x2e,0x73,0x65,0x74,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x57,0x72,0x69,0x74,0x65,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x63,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x22,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x22,0x20,0x2f,0x2a,0x20,0x43,0x4f,0x4d,0x50,0x55,0x54,0x45,0x44,0x20,0x2a,0x2f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x28,0x77,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x63,0x74,0x78,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x3f,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x6f,0x77,0x6e,0x4b,0x65,0x79,0x73,0x28,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x28,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x63,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x2c,0x20,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x5f,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x5f,0x68,0x6f,0x6f,0x6b,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x28,0x68,0x6f,0x6f,0x6b,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x2c,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x2c,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x41,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x20,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x20,0x64,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x2c,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x4c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x53,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x2c,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x7c,0x7c,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x29,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x73,0x79,0x6e,0x63,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x63,0x74,0x78,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x6f,0x70,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x20,0x69,0x6e,0x20,0x6f,0x70,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x28,0x6f,0x70,0x74,0x2e,0x66,0x72,0x6f,0x6d,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x28,0x6f,0x70,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x63,0x74,0x78,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x61,0x62,0x6c,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x3a,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x22,0x49,0x6e,0x6a,0x65,0x63,0x74,0x22,0x20,0x2f,0x2a,0x20,0x49,0x4e,0x4a,0x45,0x43,0x54,0x20,0x2a,0x2f,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x3f,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x6d,0x61,0x70,0x28,0x28,0x68,0x29,0x20,0x3d,0x3e,0x20,0x68,0x2e,0x62,0x69,0x6e,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x29,0x20,0x3a,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x62,0x69,0x6e,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x28,0x72,0x61,0x77,0x2c,0x20,0x63,0x74,0x78,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2e,0x22,0x29,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x61,0x74,0x68,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x63,0x74,0x78,0x5b,0x72,0x61,0x77,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x77,0x61,0x74,0x63,0x68,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x62,0x79,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x72,0x61,0x77,0x7d,0x22,0x60,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x72,0x61,0x77,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x72,0x29,0x20,0x3d,0x3e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x28,0x72,0x2c,0x20,0x63,0x74,0x78,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x61,0x77,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x20,0x3f,0x20,0x72,0x61,0x77,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x63,0x74,0x78,0x5b,0x72,0x61,0x77,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x72,0x61,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x77,0x61,0x74,0x63,0x68,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x65,0x64,0x20,0x62,0x79,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x72,0x61,0x77,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x7d,0x22,0x60,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x77,0x61,0x74,0x63,0x68,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x60,0x2c,0x20,0x72,0x61,0x77,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x4d,0x65,0x72,0x67,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x61,0x73,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x3a,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x78,0x69,0x6e,0x73,0x3a,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x4d,0x69,0x78,0x69,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x63,0x61,0x63,0x68,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x7b,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x65,0x72,0x67,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x69,0x65,0x73,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x62,0x61,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x4d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x21,0x6d,0x69,0x78,0x69,0x6e,0x73,0x20,0x26,0x26,0x20,0x21,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x4d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x4d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x2c,0x20,0x6d,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x65,0x72,0x67,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x69,0x65,0x73,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x2c,0x20,0x62,0x61,0x73,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x65,0x72,0x67,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x69,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x62,0x61,0x73,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x62,0x61,0x73,0x65,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x2c,0x20,0x73,0x74,0x72,0x61,0x74,0x73,0x2c,0x20,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x3a,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7d,0x20,0x3d,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x6f,0x2c,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x73,0x74,0x72,0x61,0x74,0x73,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x69,0x78,0x69,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x6f,0x2c,0x20,0x6d,0x2c,0x20,0x73,0x74,0x72,0x61,0x74,0x73,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x65,0x78,0x70,0x6f,0x73,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x22,0x65,0x78,0x70,0x6f,0x73,0x65,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x6d,0x69,0x78,0x69,0x6e,0x73,0x20,0x6f,0x72,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x2e,0x20,0x49,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x62,0x61,0x73,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x74,0x73,0x65,0x6c,0x66,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x72,0x61,0x74,0x20,0x3d,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x65,0x72,0x67,0x65,0x53,0x74,0x72,0x61,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x73,0x74,0x72,0x61,0x74,0x73,0x20,0x26,0x26,0x20,0x73,0x74,0x72,0x61,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x73,0x74,0x72,0x61,0x74,0x20,0x3f,0x20,0x73,0x74,0x72,0x61,0x74,0x28,0x74,0x6f,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x3a,0x20,0x66,0x72,0x6f,0x6d,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x65,0x72,0x67,0x65,0x53,0x74,0x72,0x61,0x74,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x64,0x61,0x74,0x61,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x61,0x74,0x61,0x46,0x6e,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x45,0x6d,0x69,0x74,0x73,0x4f,0x72,0x50,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x65,0x6d,0x69,0x74,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x45,0x6d,0x69,0x74,0x73,0x4f,0x72,0x50,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x73,0x0a,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x73,0x74,0x72,0x6f,0x79,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x64,0x65,0x73,0x74,0x72,0x6f,0x79,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x64,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x73,0x65,0x74,0x73,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x77,0x61,0x74,0x63,0x68,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x20,0x2f,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x0a,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x61,0x74,0x61,0x46,0x6e,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x61,0x74,0x61,0x46,0x6e,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x44,0x61,0x74,0x61,0x46,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x65,0x78,0x74,0x65,0x6e,0x64,0x29,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x6f,0x29,0x20,0x3f,0x20,0x74,0x6f,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x74,0x6f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x66,0x72,0x6f,0x6d,0x29,0x20,0x3f,0x20,0x66,0x72,0x6f,0x6d,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x29,0x20,0x3a,0x20,0x66,0x72,0x6f,0x6d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x28,0x74,0x6f,0x29,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x28,0x66,0x72,0x6f,0x6d,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x49,0x6e,0x6a,0x65,0x63,0x74,0x28,0x72,0x61,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x61,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x5b,0x72,0x61,0x77,0x5b,0x69,0x5d,0x5d,0x20,0x3d,0x20,0x72,0x61,0x77,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x20,0x3f,0x20,0x5b,0x2e,0x2e,0x2e,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x29,0x5d,0x20,0x3a,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x20,0x3f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x20,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x3a,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x45,0x6d,0x69,0x74,0x73,0x4f,0x72,0x50,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x6f,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x66,0x72,0x6f,0x6d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x2e,0x2e,0x2e,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x74,0x6f,0x2c,0x20,0x2e,0x2e,0x2e,0x66,0x72,0x6f,0x6d,0x5d,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x72,0x45,0x6d,0x69,0x74,0x73,0x28,0x74,0x6f,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x72,0x45,0x6d,0x69,0x74,0x73,0x28,0x66,0x72,0x6f,0x6d,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x66,0x72,0x6f,0x6d,0x20,0x3a,0x20,0x7b,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x6f,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x6f,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x66,0x72,0x6f,0x6d,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x20,0x74,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x66,0x72,0x6f,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x24,0x31,0x28,0x74,0x6f,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x66,0x72,0x6f,0x6d,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x3a,0x20,0x4e,0x4f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x65,0x72,0x67,0x65,0x53,0x74,0x72,0x61,0x74,0x65,0x67,0x69,0x65,0x73,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x69,0x78,0x69,0x6e,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x75,0x69,0x64,0x24,0x31,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x41,0x50,0x49,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x28,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x72,0x6f,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x72,0x6f,0x6f,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x70,0x70,0x2e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x29,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x70,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x70,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x75,0x69,0x64,0x3a,0x20,0x75,0x69,0x64,0x24,0x31,0x2b,0x2b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x72,0x6f,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x28,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x61,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x2e,0x20,0x4d,0x6f,0x64,0x69,0x66,0x79,0x20,0x69,0x6e,0x64,0x69,0x76,0x69,0x64,0x75,0x61,0x6c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2c,0x20,0x2e,0x2e,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x68,0x61,0x73,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x50,0x6c,0x75,0x67,0x69,0x6e,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x61,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x61,0x70,0x70,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x61,0x64,0x64,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2e,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x28,0x61,0x70,0x70,0x2c,0x20,0x2e,0x2e,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x65,0x64,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2e,0x61,0x64,0x64,0x28,0x70,0x6c,0x75,0x67,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x28,0x61,0x70,0x70,0x2c,0x20,0x2e,0x2e,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x62,0x65,0x20,0x61,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x72,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6e,0x20,0x22,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x22,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x78,0x69,0x6e,0x28,0x6d,0x69,0x78,0x69,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6d,0x69,0x78,0x69,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x69,0x78,0x69,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x4d,0x69,0x78,0x69,0x6e,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x61,0x70,0x70,0x6c,0x69,0x65,0x64,0x20,0x74,0x6f,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x61,0x70,0x70,0x22,0x20,0x2b,0x20,0x28,0x6d,0x69,0x78,0x69,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3f,0x20,0x60,0x3a,0x20,0x24,0x7b,0x6d,0x69,0x78,0x69,0x6e,0x2e,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x20,0x3a,0x20,0x22,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x22,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x22,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x61,0x70,0x70,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x22,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x22,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x61,0x70,0x70,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x5f,0x76,0x75,0x65,0x5f,0x61,0x70,0x70,0x5f,0x5f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x54,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x61,0x6e,0x20,0x61,0x70,0x70,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x68,0x6f,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x0a,0x20,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x77,0x61,0x6e,0x74,0x20,0x74,0x6f,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x61,0x70,0x70,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x68,0x6f,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x79,0x6f,0x75,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x61,0x70,0x70,0x20,0x62,0x79,0x20,0x63,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x20,0x5c,0x60,0x61,0x70,0x70,0x2e,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x29,0x5c,0x60,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x61,0x70,0x70,0x2e,0x5f,0x63,0x65,0x56,0x4e,0x6f,0x64,0x65,0x20,0x7c,0x7c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x2e,0x5f,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x5f,0x76,0x75,0x65,0x5f,0x61,0x70,0x70,0x5f,0x5f,0x20,0x3d,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x49,0x6e,0x69,0x74,0x41,0x70,0x70,0x28,0x61,0x70,0x70,0x2c,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x70,0x70,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2e,0x0a,0x49,0x66,0x20,0x79,0x6f,0x75,0x20,0x77,0x61,0x6e,0x74,0x20,0x74,0x6f,0x20,0x72,0x65,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x61,0x70,0x70,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x20,0x79,0x6f,0x75,0x72,0x20,0x61,0x70,0x70,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x67,0x69,0x63,0x20,0x69,0x6e,0x74,0x6f,0x20,0x61,0x20,0x66,0x61,0x63,0x74,0x6f,0x72,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x66,0x72,0x65,0x73,0x68,0x20,0x61,0x70,0x70,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x66,0x6f,0x72,0x20,0x65,0x61,0x63,0x68,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x2d,0x20,0x65,0x2e,0x67,0x2e,0x20,0x5c,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4d,0x79,0x41,0x70,0x70,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x28,0x41,0x70,0x70,0x29,0x5c,0x60,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x61,0x70,0x70,0x2e,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x29,0x2c,0x20,0x62,0x75,0x74,0x20,0x67,0x6f,0x74,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x75,0x67,0x69,0x6e,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x46,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x36,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x61,0x70,0x70,0x2e,0x5f,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x41,0x70,0x70,0x28,0x61,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x70,0x70,0x2e,0x5f,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x5f,0x76,0x75,0x65,0x5f,0x61,0x70,0x70,0x5f,0x5f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x61,0x6e,0x20,0x61,0x70,0x70,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x41,0x70,0x70,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x77,0x69,0x74,0x68,0x20,0x6b,0x65,0x79,0x20,0x22,0x24,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x7d,0x22,0x2e,0x20,0x49,0x74,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x6f,0x76,0x65,0x72,0x77,0x72,0x69,0x74,0x74,0x65,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x77,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x57,0x69,0x74,0x68,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x41,0x70,0x70,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x20,0x3d,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x41,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x28,0x29,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x74,0x72,0x65,0x61,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x41,0x73,0x46,0x61,0x63,0x74,0x6f,0x72,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x20,0x3f,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x2e,0x5f,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3a,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3f,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3a,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x65,0x61,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x41,0x73,0x46,0x61,0x63,0x74,0x6f,0x72,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x20,0x3a,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x69,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x22,0x24,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x7d,0x22,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x69,0x6e,0x6a,0x65,0x63,0x74,0x28,0x29,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x6f,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x70,0x70,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x74,0x6f,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x74,0x6f,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x20,0x3d,0x20,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x50,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x4f,0x66,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x74,0x6f,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x73,0x65,0x74,0x46,0x75,0x6c,0x6c,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x30,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x69,0x73,0x53,0x53,0x52,0x20,0x3f,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3a,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x49,0x6e,0x48,0x6d,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x72,0x61,0x77,0x50,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3a,0x20,0x7b,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x66,0x6f,0x72,0x63,0x65,0x20,0x66,0x75,0x6c,0x6c,0x20,0x64,0x69,0x66,0x66,0x20,0x69,0x6e,0x20,0x64,0x65,0x76,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x23,0x31,0x39,0x34,0x32,0x20,0x69,0x66,0x20,0x68,0x6d,0x72,0x20,0x69,0x73,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x66,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x76,0x69,0x74,0x65,0x23,0x38,0x37,0x32,0x20,0x6e,0x6f,0x6e,0x2d,0x73,0x66,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x66,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x21,0x69,0x73,0x49,0x6e,0x48,0x6d,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x26,0x26,0x20,0x28,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x7c,0x7c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x26,0x26,0x20,0x21,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x0a,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x54,0x6f,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x54,0x6f,0x55,0x70,0x64,0x61,0x74,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x54,0x6f,0x55,0x70,0x64,0x61,0x74,0x65,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x6d,0x69,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x74,0x46,0x75,0x6c,0x6c,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6b,0x65,0x62,0x61,0x62,0x4b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x63,0x61,0x6d,0x65,0x6c,0x43,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x69,0x74,0x27,0x73,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x74,0x68,0x65,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x77,0x61,0x73,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x61,0x73,0x20,0x6b,0x65,0x62,0x61,0x62,0x2d,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x64,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x61,0x6d,0x65,0x6c,0x43,0x61,0x73,0x65,0x20,0x28,0x23,0x39,0x35,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x6b,0x65,0x62,0x61,0x62,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x6b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x21,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x62,0x61,0x62,0x4b,0x65,0x79,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x50,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x63,0x61,0x6d,0x65,0x6c,0x43,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x61,0x77,0x50,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x6b,0x65,0x62,0x61,0x62,0x2d,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x50,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x62,0x61,0x62,0x4b,0x65,0x79,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x72,0x73,0x20,0x21,0x3d,0x3d,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x21,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x46,0x75,0x6c,0x6c,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x5d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x61,0x77,0x43,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x20,0x7c,0x7c,0x20,0x21,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x61,0x77,0x43,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x20,0x7c,0x7c,0x20,0x28,0x72,0x61,0x77,0x43,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x29,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x45,0x6d,0x69,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x20,0x3d,0x20,0x72,0x61,0x77,0x43,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x63,0x61,0x73,0x74,0x56,0x61,0x6c,0x75,0x65,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x41,0x62,0x73,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3d,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6f,0x70,0x74,0x2c,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6f,0x70,0x74,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x21,0x6f,0x70,0x74,0x2e,0x73,0x6b,0x69,0x70,0x46,0x61,0x63,0x74,0x6f,0x72,0x79,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x2e,0x5f,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x5b,0x30,0x20,0x2f,0x2a,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x20,0x2a,0x2f,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x62,0x73,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x68,0x61,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x5b,0x31,0x20,0x2f,0x2a,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x54,0x72,0x75,0x65,0x20,0x2a,0x2f,0x5d,0x20,0x26,0x26,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x69,0x78,0x69,0x6e,0x50,0x72,0x6f,0x70,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x3f,0x20,0x6d,0x69,0x78,0x69,0x6e,0x50,0x72,0x6f,0x70,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3a,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x43,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x45,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x72,0x61,0x77,0x32,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x45,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6b,0x65,0x79,0x73,0x5d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x72,0x61,0x77,0x32,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x73,0x29,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x6b,0x65,0x79,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x26,0x26,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x65,0x78,0x74,0x65,0x6e,0x64,0x50,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x65,0x78,0x74,0x65,0x6e,0x64,0x50,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x61,0x77,0x20,0x26,0x26,0x20,0x21,0x68,0x61,0x73,0x45,0x78,0x74,0x65,0x6e,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x61,0x77,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x61,0x77,0x5b,0x69,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x70,0x72,0x6f,0x70,0x73,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x2e,0x60,0x2c,0x20,0x72,0x61,0x77,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x72,0x61,0x77,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x60,0x2c,0x20,0x72,0x61,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x72,0x61,0x77,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x70,0x74,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x6f,0x70,0x74,0x29,0x20,0x3f,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x6f,0x70,0x74,0x20,0x7d,0x20,0x3a,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x6f,0x70,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x54,0x72,0x75,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x72,0x6f,0x70,0x54,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x54,0x79,0x70,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x2b,0x2b,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x54,0x79,0x70,0x65,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x53,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x54,0x72,0x75,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x20,0x3d,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x70,0x72,0x6f,0x70,0x54,0x79,0x70,0x65,0x29,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x54,0x79,0x70,0x65,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x5b,0x30,0x20,0x2f,0x2a,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x20,0x2a,0x2f,0x5d,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x5b,0x31,0x20,0x2f,0x2a,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x54,0x72,0x75,0x65,0x20,0x2a,0x2f,0x5d,0x20,0x3d,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x54,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x73,0x74,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x70,0x72,0x6f,0x70,0x2c,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x2c,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x73,0x74,0x4b,0x65,0x79,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x72,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x24,0x22,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x72,0x6f,0x70,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x69,0x73,0x20,0x61,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x74,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x74,0x6f,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x6e,0x75,0x6c,0x6c,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x74,0x6f,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x74,0x6f,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x74,0x6f,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x74,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x20,0x26,0x26,0x20,0x63,0x74,0x6f,0x72,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x22,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4b,0x65,0x79,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x73,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4b,0x65,0x79,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x73,0x41,0x62,0x73,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x2c,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x2c,0x20,0x73,0x6b,0x69,0x70,0x43,0x68,0x65,0x63,0x6b,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x62,0x73,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x27,0x4d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x3a,0x20,0x22,0x27,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x27,0x22,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x21,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x20,0x26,0x26,0x20,0x21,0x73,0x6b,0x69,0x70,0x43,0x68,0x65,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x74,0x79,0x70,0x65,0x20,0x3a,0x20,0x5b,0x74,0x79,0x70,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x74,0x79,0x70,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x76,0x61,0x6c,0x69,0x64,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x7d,0x20,0x3d,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x69,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x67,0x65,0x74,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x26,0x26,0x20,0x21,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x72,0x6f,0x70,0x3a,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x70,0x20,0x22,0x27,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x27,0x22,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x69,0x6d,0x70,0x6c,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x22,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x2c,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2c,0x42,0x69,0x67,0x49,0x6e,0x74,0x22,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x54,0x79,0x70,0x65,0x28,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6c,0x6c,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x69,0x6d,0x70,0x6c,0x65,0x54,0x79,0x70,0x65,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x69,0x64,0x20,0x26,0x26,0x20,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x41,0x72,0x72,0x61,0x79,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x50,0x72,0x6f,0x70,0x20,0x74,0x79,0x70,0x65,0x20,0x5b,0x5d,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x70,0x20,0x22,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x22,0x20,0x77,0x6f,0x6e,0x27,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x2e,0x20,0x44,0x69,0x64,0x20,0x79,0x6f,0x75,0x20,0x6d,0x65,0x61,0x6e,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x41,0x72,0x72,0x61,0x79,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x3f,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x70,0x72,0x6f,0x70,0x3a,0x20,0x74,0x79,0x70,0x65,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x70,0x20,0x22,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x22,0x2e,0x20,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x24,0x7b,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x7c,0x20,0x22,0x29,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x69,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2b,0x3d,0x20,0x60,0x20,0x77,0x69,0x74,0x68,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x24,0x7b,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2b,0x3d,0x20,0x60,0x2c,0x20,0x67,0x6f,0x74,0x20,0x24,0x7b,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x54,0x79,0x70,0x65,0x7d,0x20,0x60,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x28,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2b,0x3d,0x20,0x60,0x77,0x69,0x74,0x68,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x24,0x7b,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x7d,0x2e,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x53,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x22,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x22,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x4e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x24,0x7b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x54,0x79,0x70,0x65,0x73,0x20,0x3d,0x20,0x5b,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x2c,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x2c,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x54,0x79,0x70,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x65,0x6c,0x65,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6c,0x65,0x6d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x67,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x65,0x6c,0x65,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x65,0x6c,0x65,0x6d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4b,0x65,0x79,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5f,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x24,0x73,0x74,0x61,0x62,0x6c,0x65,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x6c,0x6f,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6d,0x61,0x70,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x3a,0x20,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x5d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x2c,0x20,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x2c,0x20,0x63,0x74,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x2e,0x5f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x28,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x28,0x21,0x63,0x74,0x78,0x20,0x7c,0x7c,0x20,0x63,0x74,0x78,0x2e,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x53,0x6c,0x6f,0x74,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x64,0x20,0x6f,0x75,0x74,0x73,0x69,0x64,0x65,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x74,0x72,0x61,0x63,0x6b,0x20,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x69,0x65,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x20,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x20,0x74,0x68,0x65,0x20,0x73,0x6c,0x6f,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x6c,0x6f,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x20,0x63,0x74,0x78,0x29,0x3b,0x0a,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x2e,0x5f,0x63,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x28,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x5f,0x63,0x74,0x78,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x61,0x77,0x53,0x6c,0x6f,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x6c,0x6f,0x74,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x74,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x4e,0x6f,0x6e,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x65,0x6e,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x73,0x6c,0x6f,0x74,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x2e,0x20,0x50,0x72,0x65,0x66,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x62,0x65,0x74,0x74,0x65,0x72,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x6c,0x6f,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x4e,0x6f,0x6e,0x2d,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x65,0x6e,0x63,0x6f,0x75,0x6e,0x74,0x65,0x72,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x20,0x50,0x72,0x65,0x66,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x66,0x6f,0x72,0x20,0x62,0x65,0x74,0x74,0x65,0x72,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x6c,0x6f,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x5f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x69,0x74,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x5f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x53,0x6c,0x6f,0x74,0x73,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x22,0x5f,0x22,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x53,0x6c,0x6f,0x74,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x65,0x64,0x44,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x68,0x65,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x61,0x72,0x69,0x73,0x6f,0x6e,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x5f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x53,0x6c,0x6f,0x74,0x73,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x73,0x65,0x74,0x22,0x2c,0x20,0x22,0x24,0x73,0x6c,0x6f,0x74,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x44,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x68,0x65,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x53,0x6c,0x6f,0x74,0x73,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x44,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x68,0x65,0x63,0x6b,0x20,0x3d,0x20,0x21,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x24,0x73,0x74,0x61,0x62,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x53,0x6c,0x6f,0x74,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x61,0x72,0x69,0x73,0x6f,0x6e,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x61,0x72,0x69,0x73,0x6f,0x6e,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x7b,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x31,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x44,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x68,0x65,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x64,0x65,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x61,0x72,0x69,0x73,0x6f,0x6e,0x54,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x70,0x65,0x72,0x66,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x2e,0x6d,0x61,0x72,0x6b,0x28,0x60,0x76,0x75,0x65,0x2d,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x2d,0x24,0x7b,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x69,0x64,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x53,0x74,0x61,0x72,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x69,0x73,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x28,0x29,0x20,0x3f,0x20,0x70,0x65,0x72,0x66,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x54,0x61,0x67,0x20,0x3d,0x20,0x60,0x76,0x75,0x65,0x2d,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x2d,0x24,0x7b,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x69,0x64,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x54,0x61,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x54,0x61,0x67,0x20,0x2b,0x20,0x60,0x3a,0x65,0x6e,0x64,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x2e,0x6d,0x61,0x72,0x6b,0x28,0x65,0x6e,0x64,0x54,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x2e,0x6d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3c,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x7d,0x3e,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x54,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x54,0x61,0x67,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x2e,0x63,0x6c,0x65,0x61,0x72,0x4d,0x61,0x72,0x6b,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x54,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x2e,0x63,0x6c,0x65,0x61,0x72,0x4d,0x61,0x72,0x6b,0x73,0x28,0x65,0x6e,0x64,0x54,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x50,0x65,0x72,0x66,0x45,0x6e,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x69,0x73,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x28,0x29,0x20,0x3f,0x20,0x70,0x65,0x72,0x66,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x20,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x71,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x73,0x65,0x43,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x5f,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x44,0x45,0x56,0x54,0x4f,0x4f,0x4c,0x53,0x5f,0x47,0x4c,0x4f,0x42,0x41,0x4c,0x5f,0x48,0x4f,0x4f,0x4b,0x5f,0x5f,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3a,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x3a,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x65,0x78,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3a,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x3a,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x3f,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x3a,0x20,0x21,0x21,0x6e,0x32,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x67,0x65,0x74,0x4e,0x65,0x78,0x74,0x48,0x6f,0x73,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x6e,0x31,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x54,0x65,0x78,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x54,0x65,0x78,0x74,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x56,0x4e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x22,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x60,0x28,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x79,0x70,0x65,0x7d,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x2c,0x20,0x6e,0x31,0x20,0x26,0x26,0x20,0x6e,0x31,0x2e,0x72,0x65,0x66,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x32,0x20,0x7c,0x7c,0x20,0x6e,0x31,0x2c,0x20,0x21,0x6e,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x31,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x54,0x65,0x78,0x74,0x28,0x65,0x6c,0x2c,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x22,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5b,0x6e,0x32,0x2e,0x65,0x6c,0x2c,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x5d,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x31,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x6e,0x31,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x6e,0x32,0x2e,0x65,0x6c,0x2c,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x5d,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x76,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x7b,0x20,0x65,0x6c,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x7d,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x65,0x6c,0x20,0x26,0x26,0x20,0x65,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x7b,0x20,0x65,0x6c,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x65,0x6c,0x20,0x26,0x26,0x20,0x65,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x64,0x69,0x72,0x73,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x69,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x28,0x65,0x6c,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x65,0x6c,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x28,0x65,0x6c,0x2c,0x20,0x22,0x5f,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x22,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x28,0x65,0x6c,0x2c,0x20,0x22,0x5f,0x5f,0x76,0x75,0x65,0x50,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x3d,0x20,0x6e,0x65,0x65,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x7c,0x7c,0x20,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x43,0x61,0x6c,0x6c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x65,0x6c,0x2c,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x65,0x6c,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x30,0x34,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x53,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7c,0x7c,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x26,0x26,0x20,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x7c,0x7c,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x30,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x64,0x69,0x72,0x73,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x6e,0x31,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x6e,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6e,0x32,0x2c,0x20,0x6e,0x31,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x26,0x26,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x7c,0x7c,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x28,0x65,0x6c,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x6e,0x32,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x6e,0x32,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x54,0x6f,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x54,0x6f,0x55,0x70,0x64,0x61,0x74,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x54,0x6f,0x55,0x70,0x64,0x61,0x74,0x65,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x20,0x21,0x3d,0x3d,0x20,0x70,0x72,0x65,0x76,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x65,0x76,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x28,0x65,0x6c,0x2c,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x26,0x26,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x29,0x20,0x7c,0x7c,0x20,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x6e,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x6e,0x32,0x2c,0x20,0x6e,0x31,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x6f,0x6c,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6e,0x65,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x65,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x20,0x6d,0x61,0x79,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x65,0x64,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x49,0x6e,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x73,0x65,0x20,0x6f,0x66,0x20,0x61,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x20,0x74,0x68,0x65,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x69,0x74,0x73,0x65,0x6c,0x66,0x20,0x73,0x6f,0x20,0x69,0x74,0x20,0x63,0x61,0x6e,0x20,0x6d,0x6f,0x76,0x65,0x20,0x69,0x74,0x73,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x49,0x6e,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x73,0x65,0x20,0x6f,0x66,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x69,0x73,0x20,0x67,0x6f,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x61,0x6c,0x73,0x6f,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x65,0x77,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x2d,0x20,0x49,0x6e,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x73,0x65,0x20,0x6f,0x66,0x20,0x61,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x69,0x74,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x61,0x6e,0x79,0x74,0x68,0x69,0x6e,0x67,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x28,0x36,0x20,0x7c,0x20,0x36,0x34,0x29,0x29,0x20,0x3f,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x29,0x20,0x3a,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x63,0x61,0x73,0x65,0x73,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x6c,0x79,0x20,0x75,0x73,0x65,0x64,0x20,0x73,0x6f,0x20,0x77,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6a,0x75,0x73,0x74,0x20,0x70,0x61,0x73,0x73,0x20,0x74,0x68,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x68,0x65,0x72,0x65,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x61,0x20,0x44,0x4f,0x4d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x63,0x61,0x6c,0x6c,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x21,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x20,0x21,0x3d,0x3d,0x20,0x70,0x72,0x65,0x76,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x65,0x76,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x69,0x6e,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x2c,0x20,0x6f,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x65,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x20,0x3f,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x20,0x3a,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x45,0x6e,0x64,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x31,0x20,0x3f,0x20,0x6e,0x31,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3a,0x20,0x68,0x6f,0x73,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3a,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x35,0x35,0x32,0x33,0x20,0x64,0x65,0x76,0x20,0x72,0x6f,0x6f,0x74,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x79,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x20,0x7c,0x7c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x30,0x34,0x38,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3f,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x29,0x20,0x3a,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x53,0x74,0x61,0x72,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x45,0x6e,0x64,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x31,0x30,0x30,0x30,0x37,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x75,0x63,0x68,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6c,0x69,0x6b,0x65,0x20,0x60,0x3c,0x3e,0x3c,0x2f,0x3e,0x60,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x69,0x6e,0x74,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x61,0x73,0x65,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x6f,0x20,0x61,0x6e,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x61,0x72,0x72,0x61,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x45,0x6e,0x64,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x20,0x26,0x26,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x23,0x32,0x37,0x31,0x35,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x63,0x6f,0x75,0x6c,0x64,0x27,0x76,0x65,0x20,0x62,0x65,0x65,0x6e,0x20,0x61,0x20,0x42,0x41,0x49,0x4c,0x65,0x64,0x20,0x6f,0x6e,0x65,0x20,0x61,0x73,0x20,0x61,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x66,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x28,0x29,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x45,0x6e,0x64,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x35,0x31,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x63,0x74,0x78,0x2e,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x48,0x4d,0x52,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x6d,0x6f,0x75,0x6e,0x74,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x69,0x6e,0x69,0x74,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x69,0x6e,0x69,0x74,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x44,0x65,0x70,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x6d,0x6f,0x75,0x6e,0x74,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x20,0x26,0x26,0x20,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x6e,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x55,0x70,0x64,0x61,0x74,0x65,0x46,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x6c,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x62,0x6d,0x2c,0x20,0x6d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x74,0x79,0x70,0x65,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x62,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x56,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x20,0x26,0x26,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x56,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x54,0x72,0x65,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x75,0x62,0x54,0x72,0x65,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x65,0x2e,0x5f,0x69,0x6e,0x6a,0x65,0x63,0x74,0x43,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x28,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x70,0x61,0x74,0x63,0x68,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x70,0x61,0x74,0x63,0x68,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x6d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x56,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x64,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x73,0x63,0x6f,0x70,0x65,0x64,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x35,0x36,0x20,0x7c,0x7c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x35,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x20,0x26,0x26,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x41,0x64,0x64,0x65,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x62,0x75,0x2c,0x20,0x75,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x41,0x73,0x79,0x6e,0x63,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x4e,0x6f,0x6e,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x41,0x73,0x79,0x6e,0x63,0x52,0x6f,0x6f,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x6e,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x41,0x73,0x79,0x6e,0x63,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x41,0x73,0x79,0x6e,0x63,0x52,0x6f,0x6f,0x74,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x55,0x70,0x64,0x61,0x74,0x65,0x46,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x4e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x6e,0x65,0x78,0x74,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x75,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x62,0x75,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x70,0x61,0x74,0x63,0x68,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x54,0x72,0x65,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x54,0x72,0x65,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x6d,0x61,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x20,0x61,0x20,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x70,0x72,0x65,0x76,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x6d,0x61,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x69,0x66,0x20,0x69,0x74,0x27,0x73,0x20,0x69,0x6e,0x20,0x61,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x4e,0x65,0x78,0x74,0x48,0x6f,0x73,0x74,0x4e,0x6f,0x64,0x65,0x28,0x70,0x72,0x65,0x76,0x54,0x72,0x65,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x70,0x61,0x74,0x63,0x68,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x72,0x69,0x67,0x69,0x6e,0x4e,0x65,0x78,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x48,0x4f,0x43,0x48,0x6f,0x73,0x74,0x45,0x6c,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x75,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x65,0x78,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x2e,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x55,0x70,0x64,0x61,0x74,0x65,0x46,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x2e,0x6f,0x66,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x75,0x6e,0x2e,0x62,0x69,0x6e,0x64,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6a,0x6f,0x62,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x6a,0x6f,0x62,0x20,0x3d,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x72,0x75,0x6e,0x49,0x66,0x44,0x69,0x72,0x74,0x79,0x2e,0x62,0x69,0x6e,0x64,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x64,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x69,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x71,0x75,0x65,0x75,0x65,0x4a,0x6f,0x62,0x28,0x6a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x6f,0x6e,0x54,0x72,0x61,0x63,0x6b,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x74,0x63,0x20,0x3f,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x74,0x63,0x2c,0x20,0x65,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x6f,0x6e,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x74,0x67,0x20,0x3f,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x74,0x67,0x2c,0x20,0x65,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x72,0x65,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x31,0x20,0x3d,0x20,0x6e,0x31,0x20,0x26,0x26,0x20,0x6e,0x31,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x6e,0x31,0x20,0x3f,0x20,0x6e,0x31,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x32,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x35,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x55,0x6e,0x6b,0x65,0x79,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x31,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x32,0x20,0x21,0x3d,0x3d,0x20,0x63,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x63,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x31,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x53,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x53,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x55,0x6e,0x6b,0x65,0x79,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x63,0x31,0x2c,0x20,0x63,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x31,0x20,0x3d,0x20,0x63,0x31,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x32,0x20,0x3d,0x20,0x63,0x32,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x63,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x63,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x69,0x6e,0x28,0x6f,0x6c,0x64,0x4c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x20,0x6e,0x65,0x77,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x4c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x32,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x31,0x5b,0x69,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x4c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x6e,0x65,0x77,0x4c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x4c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x4c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x4b,0x65,0x79,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x63,0x31,0x2c,0x20,0x63,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x32,0x20,0x3d,0x20,0x63,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x31,0x20,0x3d,0x20,0x63,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x32,0x20,0x3d,0x20,0x6c,0x32,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x20,0x3c,0x3d,0x20,0x65,0x31,0x20,0x26,0x26,0x20,0x69,0x20,0x3c,0x3d,0x20,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x31,0x20,0x3d,0x20,0x63,0x31,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x32,0x20,0x3d,0x20,0x63,0x32,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x20,0x3c,0x3d,0x20,0x65,0x31,0x20,0x26,0x26,0x20,0x69,0x20,0x3c,0x3d,0x20,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x31,0x20,0x3d,0x20,0x63,0x31,0x5b,0x65,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x32,0x20,0x3d,0x20,0x63,0x32,0x5b,0x65,0x32,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x32,0x5b,0x65,0x32,0x5d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x32,0x5b,0x65,0x32,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x31,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x32,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3e,0x20,0x65,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3c,0x3d,0x20,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x50,0x6f,0x73,0x20,0x3d,0x20,0x65,0x32,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x50,0x6f,0x73,0x20,0x3c,0x20,0x6c,0x32,0x20,0x3f,0x20,0x63,0x32,0x5b,0x6e,0x65,0x78,0x74,0x50,0x6f,0x73,0x5d,0x2e,0x65,0x6c,0x20,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x20,0x3c,0x3d,0x20,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3e,0x20,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x20,0x3c,0x3d,0x20,0x65,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x31,0x5b,0x69,0x5d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x54,0x6f,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x73,0x32,0x3b,0x20,0x69,0x20,0x3c,0x3d,0x20,0x65,0x32,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x32,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3f,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x32,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x54,0x6f,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x2e,0x68,0x61,0x73,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x20,0x6b,0x65,0x79,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x4d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x6b,0x65,0x79,0x73,0x20,0x61,0x72,0x65,0x20,0x75,0x6e,0x69,0x71,0x75,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x54,0x6f,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x2c,0x20,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x42,0x65,0x50,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x65,0x32,0x20,0x2d,0x20,0x73,0x32,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x61,0x78,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x53,0x6f,0x46,0x61,0x72,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x54,0x6f,0x4f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x72,0x72,0x61,0x79,0x28,0x74,0x6f,0x42,0x65,0x50,0x61,0x74,0x63,0x68,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x74,0x6f,0x42,0x65,0x50,0x61,0x74,0x63,0x68,0x65,0x64,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x54,0x6f,0x4f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x73,0x31,0x3b,0x20,0x69,0x20,0x3c,0x3d,0x20,0x65,0x31,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x31,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x3e,0x3d,0x20,0x74,0x6f,0x42,0x65,0x50,0x61,0x74,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x6b,0x65,0x79,0x54,0x6f,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6a,0x20,0x3d,0x20,0x73,0x32,0x3b,0x20,0x6a,0x20,0x3c,0x3d,0x20,0x65,0x32,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x54,0x6f,0x4f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x5b,0x6a,0x20,0x2d,0x20,0x73,0x32,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x32,0x5b,0x6a,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x6a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x54,0x6f,0x4f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x5b,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x73,0x32,0x5d,0x20,0x3d,0x20,0x69,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x20,0x3e,0x3d,0x20,0x6d,0x61,0x78,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x53,0x6f,0x46,0x61,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x53,0x6f,0x46,0x61,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x5b,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x65,0x64,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x63,0x72,0x65,0x61,0x73,0x69,0x6e,0x67,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3f,0x20,0x67,0x65,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x28,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x54,0x6f,0x4f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x29,0x20,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x20,0x3d,0x20,0x69,0x6e,0x63,0x72,0x65,0x61,0x73,0x69,0x6e,0x67,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x74,0x6f,0x42,0x65,0x50,0x61,0x74,0x63,0x68,0x65,0x64,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x73,0x32,0x20,0x2b,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x32,0x5b,0x6e,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x20,0x3c,0x20,0x6c,0x32,0x20,0x3f,0x20,0x63,0x32,0x5b,0x6e,0x65,0x78,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x65,0x6c,0x20,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x54,0x6f,0x4f,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x4d,0x61,0x70,0x5b,0x69,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x76,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x20,0x3c,0x20,0x30,0x20,0x7c,0x7c,0x20,0x69,0x20,0x21,0x3d,0x3d,0x20,0x69,0x6e,0x63,0x72,0x65,0x61,0x73,0x69,0x6e,0x67,0x4e,0x65,0x77,0x49,0x6e,0x64,0x65,0x78,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x5b,0x6a,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x6c,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x6d,0x6f,0x76,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2e,0x6d,0x6f,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x32,0x20,0x3d,0x20,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x32,0x20,0x26,0x26,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x76,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6c,0x65,0x61,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x2c,0x20,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x20,0x7d,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x32,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x32,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x20,0x26,0x26,0x20,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x32,0x2c,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x4c,0x65,0x61,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x4c,0x65,0x61,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x49,0x6e,0x73,0x65,0x72,0x74,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x49,0x6e,0x64,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x66,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x5b,0x63,0x61,0x63,0x68,0x65,0x49,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x35,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x63,0x74,0x78,0x2e,0x64,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x73,0x20,0x3d,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x21,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x26,0x26,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x23,0x35,0x31,0x35,0x34,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x68,0x65,0x6e,0x20,0x76,0x2d,0x6f,0x6e,0x63,0x65,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x61,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x2d,0x31,0x29,0x20,0x6d,0x61,0x72,0x6b,0x73,0x20,0x74,0x68,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x77,0x69,0x74,0x68,0x20,0x68,0x61,0x73,0x4f,0x6e,0x63,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x74,0x61,0x6b,0x65,0x20,0x74,0x68,0x65,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x2d,0x20,0x6f,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x76,0x2d,0x6f,0x6e,0x63,0x65,0x20,0x61,0x72,0x65,0x20,0x6e,0x65,0x76,0x65,0x72,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x68,0x61,0x73,0x4f,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x23,0x31,0x31,0x35,0x33,0x3a,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x74,0x61,0x6b,0x65,0x6e,0x20,0x66,0x6f,0x72,0x20,0x6e,0x6f,0x6e,0x2d,0x73,0x74,0x61,0x62,0x6c,0x65,0x20,0x28,0x76,0x2d,0x66,0x6f,0x72,0x29,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x28,0x31,0x32,0x38,0x20,0x7c,0x20,0x32,0x35,0x36,0x29,0x20,0x7c,0x7c,0x20,0x21,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x26,0x26,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x26,0x26,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7c,0x7c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x22,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x65,0x6c,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x30,0x34,0x38,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x21,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x65,0x6c,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x21,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x21,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6c,0x65,0x61,0x76,0x65,0x2c,0x20,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x20,0x7d,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x61,0x79,0x4c,0x65,0x61,0x76,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x2c,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x52,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x4c,0x65,0x61,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x4c,0x65,0x61,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x63,0x75,0x72,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x20,0x21,0x3d,0x3d,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x63,0x75,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x75,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x73,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x28,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x48,0x4d,0x52,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x62,0x75,0x6d,0x2c,0x20,0x73,0x63,0x6f,0x70,0x65,0x2c,0x20,0x6a,0x6f,0x62,0x2c,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x20,0x75,0x6d,0x2c,0x20,0x6d,0x2c,0x20,0x61,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x75,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x62,0x75,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x2e,0x73,0x74,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6a,0x6f,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x75,0x6d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x21,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x20,0x26,0x26,0x20,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x30,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x4e,0x65,0x78,0x74,0x48,0x6f,0x73,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x4e,0x65,0x78,0x74,0x48,0x6f,0x73,0x74,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x6e,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x45,0x6e,0x64,0x20,0x3d,0x20,0x65,0x6c,0x20,0x26,0x26,0x20,0x65,0x6c,0x5b,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x45,0x6e,0x64,0x4b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x45,0x6e,0x64,0x20,0x3f,0x20,0x68,0x6f,0x73,0x74,0x4e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x28,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x45,0x6e,0x64,0x29,0x20,0x3a,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x46,0x6c,0x75,0x73,0x68,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x5f,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x6c,0x75,0x73,0x68,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x46,0x6c,0x75,0x73,0x68,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x72,0x65,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x75,0x73,0x68,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x46,0x6c,0x75,0x73,0x68,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6d,0x3a,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x3a,0x20,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x3a,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x74,0x3a,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x63,0x3a,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x63,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x62,0x63,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x3a,0x20,0x67,0x65,0x74,0x4e,0x65,0x78,0x74,0x48,0x6f,0x73,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x3a,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5b,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x5d,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x46,0x6e,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x41,0x50,0x49,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x29,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x6d,0x6c,0x22,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x68,0x74,0x6d,0x6c,0x22,0x29,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x52,0x65,0x63,0x75,0x72,0x73,0x65,0x28,0x7b,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6a,0x6f,0x62,0x20,0x7d,0x2c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x26,0x3d,0x20,0x7e,0x34,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x65,0x65,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x21,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x7c,0x7c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x21,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x26,0x26,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x21,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x31,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x32,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x68,0x31,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x68,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x31,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x31,0x20,0x3d,0x20,0x63,0x68,0x31,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x32,0x20,0x3d,0x20,0x63,0x68,0x32,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x32,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x20,0x26,0x26,0x20,0x21,0x63,0x32,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x32,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3c,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x63,0x32,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x20,0x3d,0x20,0x63,0x68,0x32,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x68,0x32,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x26,0x26,0x20,0x63,0x32,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x31,0x2c,0x20,0x63,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x32,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x32,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x63,0x32,0x2e,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x63,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x28,0x61,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x61,0x72,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x2c,0x20,0x6a,0x2c,0x20,0x75,0x2c,0x20,0x76,0x2c,0x20,0x63,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x6e,0x20,0x3d,0x20,0x61,0x72,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x65,0x6e,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x72,0x49,0x20,0x3d,0x20,0x61,0x72,0x72,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x49,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x5b,0x6a,0x5d,0x20,0x3c,0x20,0x61,0x72,0x72,0x49,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x75,0x20,0x3c,0x20,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x20,0x3d,0x20,0x75,0x20,0x2b,0x20,0x76,0x20,0x3e,0x3e,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x5b,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x63,0x5d,0x5d,0x20,0x3c,0x20,0x61,0x72,0x72,0x49,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x20,0x3d,0x20,0x63,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x20,0x3d,0x20,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x72,0x49,0x20,0x3c,0x20,0x61,0x72,0x72,0x5b,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x75,0x5d,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x75,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x75,0x5d,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x75,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x76,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x75,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x75,0x2d,0x2d,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x5b,0x75,0x5d,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x20,0x3d,0x20,0x70,0x5b,0x76,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x4e,0x6f,0x6e,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x41,0x73,0x79,0x6e,0x63,0x52,0x6f,0x6f,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x62,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x62,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x62,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x20,0x26,0x26,0x20,0x21,0x73,0x75,0x62,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x62,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x74,0x65,0x4e,0x6f,0x6e,0x48,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x41,0x73,0x79,0x6e,0x63,0x52,0x6f,0x6f,0x74,0x28,0x73,0x75,0x62,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x68,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x73,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x76,0x2d,0x73,0x63,0x78,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x73,0x65,0x53,0x53,0x52,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x28,0x73,0x73,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x4b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x74,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x53,0x65,0x72,0x76,0x65,0x72,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x6e,0x6f,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x2e,0x20,0x4d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x63,0x61,0x6c,0x6c,0x20,0x75,0x73,0x65,0x53,0x53,0x52,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x20,0x62,0x75,0x69,0x6c,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x74,0x78,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x6f,0x57,0x61,0x74,0x63,0x68,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x50,0x6f,0x73,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x6f,0x57,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x7b,0x20,0x66,0x6c,0x75,0x73,0x68,0x3a,0x20,0x22,0x70,0x6f,0x73,0x74,0x22,0x20,0x7d,0x29,0x20,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x79,0x6e,0x63,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x6f,0x57,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x7b,0x20,0x66,0x6c,0x75,0x73,0x68,0x3a,0x20,0x22,0x73,0x79,0x6e,0x63,0x22,0x20,0x7d,0x29,0x20,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x62,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x62,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x5c,0x60,0x77,0x61,0x74,0x63,0x68,0x28,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x29,0x5c,0x60,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x6d,0x6f,0x76,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x20,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x41,0x50,0x49,0x2e,0x20,0x55,0x73,0x65,0x20,0x5c,0x60,0x77,0x61,0x74,0x63,0x68,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x66,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x29,0x5c,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x20,0x5c,0x60,0x77,0x61,0x74,0x63,0x68,0x5c,0x60,0x20,0x6e,0x6f,0x77,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x73,0x20,0x5c,0x60,0x77,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x62,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x29,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x6f,0x57,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x62,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x6f,0x57,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x62,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x2c,0x20,0x64,0x65,0x65,0x70,0x2c,0x20,0x66,0x6c,0x75,0x73,0x68,0x2c,0x20,0x6f,0x6e,0x63,0x65,0x20,0x7d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x77,0x61,0x74,0x63,0x68,0x28,0x29,0x20,0x22,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x29,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x65,0x70,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x77,0x61,0x74,0x63,0x68,0x28,0x29,0x20,0x22,0x64,0x65,0x65,0x70,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x29,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x63,0x65,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x77,0x61,0x74,0x63,0x68,0x28,0x29,0x20,0x22,0x6f,0x6e,0x63,0x65,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x77,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3f,0x29,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x20,0x3d,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6e,0x73,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x20,0x3d,0x20,0x63,0x62,0x20,0x26,0x26,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x20,0x7c,0x7c,0x20,0x21,0x63,0x62,0x20,0x26,0x26,0x20,0x66,0x6c,0x75,0x73,0x68,0x20,0x21,0x3d,0x3d,0x20,0x22,0x70,0x6f,0x73,0x74,0x22,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x73,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6c,0x75,0x73,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x79,0x6e,0x63,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x74,0x78,0x20,0x3d,0x20,0x75,0x73,0x65,0x53,0x53,0x52,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x20,0x3d,0x20,0x63,0x74,0x78,0x2e,0x5f,0x5f,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x73,0x20,0x7c,0x7c,0x20,0x28,0x63,0x74,0x78,0x2e,0x5f,0x5f,0x77,0x61,0x74,0x63,0x68,0x65,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x75,0x6e,0x73,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x2e,0x73,0x74,0x6f,0x70,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x2e,0x72,0x65,0x73,0x75,0x6d,0x65,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x2e,0x70,0x61,0x75,0x73,0x65,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x48,0x61,0x6e,0x64,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x20,0x3d,0x20,0x28,0x66,0x6e,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x66,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x50,0x72,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x6c,0x75,0x73,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x6f,0x73,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x28,0x6a,0x6f,0x62,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x6a,0x6f,0x62,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x66,0x6c,0x75,0x73,0x68,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x79,0x6e,0x63,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x50,0x72,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x63,0x68,0x65,0x64,0x75,0x6c,0x65,0x72,0x20,0x3d,0x20,0x28,0x6a,0x6f,0x62,0x2c,0x20,0x69,0x73,0x46,0x69,0x72,0x73,0x74,0x52,0x75,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x69,0x72,0x73,0x74,0x52,0x75,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x4a,0x6f,0x62,0x28,0x6a,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x4a,0x6f,0x62,0x20,0x3d,0x20,0x28,0x6a,0x6f,0x62,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x66,0x6c,0x61,0x67,0x73,0x20,0x7c,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x64,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x69,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x2e,0x69,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x3d,0x20,0x77,0x61,0x74,0x63,0x68,0x24,0x31,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x62,0x2c,0x20,0x62,0x61,0x73,0x65,0x57,0x61,0x74,0x63,0x68,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x73,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x2e,0x70,0x75,0x73,0x68,0x28,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x72,0x75,0x6e,0x73,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x77,0x61,0x74,0x63,0x68,0x48,0x61,0x6e,0x64,0x6c,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x57,0x61,0x74,0x63,0x68,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x3f,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2e,0x22,0x29,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x61,0x74,0x68,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x5b,0x73,0x6f,0x75,0x72,0x63,0x65,0x5d,0x20,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x2c,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x62,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x62,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x62,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x64,0x6f,0x57,0x61,0x74,0x63,0x68,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x2c,0x20,0x63,0x62,0x2e,0x62,0x69,0x6e,0x64,0x28,0x70,0x75,0x62,0x6c,0x69,0x63,0x54,0x68,0x69,0x73,0x29,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x61,0x74,0x68,0x47,0x65,0x74,0x74,0x65,0x72,0x28,0x63,0x74,0x78,0x2c,0x20,0x70,0x61,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x70,0x61,0x74,0x68,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x63,0x74,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x63,0x75,0x72,0x5b,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x75,0x72,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x75,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x29,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x2e,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x30,0x5d,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4e,0x61,0x6d,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x75,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x29,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x70,0x72,0x6f,0x70,0x20,0x22,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x22,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x64,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x28,0x28,0x74,0x72,0x61,0x63,0x6b,0x2c,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x79,0x6e,0x63,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x65,0x74,0x20,0x3f,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x65,0x74,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x65,0x74,0x20,0x3f,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x28,0x70,0x72,0x65,0x76,0x53,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x53,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x69,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x69,0x66,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4e,0x61,0x6d,0x65,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x64,0x4e,0x61,0x6d,0x65,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x26,0x26,0x20,0x28,0x60,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x60,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x24,0x7b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x64,0x4e,0x61,0x6d,0x65,0x7d,0x60,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x60,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x24,0x7b,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x64,0x4e,0x61,0x6d,0x65,0x7d,0x60,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2e,0x65,0x6d,0x69,0x74,0x28,0x60,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x60,0x2c,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x53,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x53,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x45,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x73,0x5b,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x5d,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x32,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x32,0x20,0x3c,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x69,0x32,0x2b,0x2b,0x20,0x3f,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x20,0x3a,0x20,0x72,0x65,0x73,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x64,0x6f,0x6e,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x4e,0x61,0x6d,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x20,0x7c,0x7c,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x6f,0x64,0x65,0x6c,0x2d,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x3f,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x6c,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x60,0x24,0x7b,0x6d,0x6f,0x64,0x65,0x6c,0x4e,0x61,0x6d,0x65,0x7d,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x60,0x5d,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x60,0x24,0x7b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x4e,0x61,0x6d,0x65,0x29,0x7d,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x60,0x5d,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x60,0x24,0x7b,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x4e,0x61,0x6d,0x65,0x29,0x7d,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x60,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x69,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x72,0x61,0x77,0x41,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x65,0x76,0x65,0x6e,0x74,0x20,0x69,0x6e,0x20,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x26,0x26,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7c,0x7c,0x20,0x21,0x28,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x29,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x22,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x7d,0x22,0x20,0x62,0x75,0x74,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x6e,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x65,0x6d,0x69,0x74,0x73,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x20,0x61,0x73,0x20,0x61,0x6e,0x20,0x22,0x24,0x7b,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x29,0x7d,0x22,0x20,0x70,0x72,0x6f,0x70,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x20,0x3d,0x20,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x65,0x76,0x65,0x6e,0x74,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x28,0x2e,0x2e,0x2e,0x72,0x61,0x77,0x41,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x3a,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x61,0x69,0x6c,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x22,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x7d,0x22,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x72,0x61,0x77,0x41,0x72,0x67,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x22,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x37,0x29,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x74,0x72,0x69,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x72,0x61,0x77,0x41,0x72,0x67,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x61,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x61,0x29,0x20,0x3f,0x20,0x61,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x72,0x61,0x77,0x41,0x72,0x67,0x73,0x2e,0x6d,0x61,0x70,0x28,0x6c,0x6f,0x6f,0x73,0x65,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x45,0x6d,0x69,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x45,0x76,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x6c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x45,0x76,0x65,0x6e,0x74,0x29,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x45,0x76,0x65,0x6e,0x74,0x20,0x22,0x24,0x7b,0x6c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x45,0x76,0x65,0x6e,0x74,0x7d,0x22,0x20,0x69,0x73,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x24,0x7b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x69,0x73,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x22,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x7d,0x22,0x2e,0x20,0x4e,0x6f,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x48,0x54,0x4d,0x4c,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x63,0x61,0x73,0x65,0x2d,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x20,0x61,0x6e,0x64,0x20,0x79,0x6f,0x75,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x75,0x73,0x65,0x20,0x76,0x2d,0x6f,0x6e,0x20,0x74,0x6f,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x20,0x74,0x6f,0x20,0x63,0x61,0x6d,0x65,0x6c,0x43,0x61,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x69,0x6e,0x2d,0x44,0x4f,0x4d,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x73,0x2e,0x20,0x59,0x6f,0x75,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x6c,0x79,0x20,0x75,0x73,0x65,0x20,0x22,0x24,0x7b,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x22,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x22,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x7d,0x22,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x5d,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x61,0x6c,0x73,0x6f,0x20,0x74,0x72,0x79,0x20,0x63,0x61,0x6d,0x65,0x6c,0x43,0x61,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x28,0x23,0x32,0x32,0x34,0x39,0x29,0x0a,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x26,0x26,0x20,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x63,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x60,0x4f,0x6e,0x63,0x65,0x60,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x63,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x5b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x5b,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x63,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x45,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x65,0x6d,0x69,0x74,0x73,0x43,0x61,0x63,0x68,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x2e,0x65,0x6d,0x69,0x74,0x73,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x45,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x45,0x6d,0x69,0x74,0x73,0x20,0x3d,0x20,0x28,0x72,0x61,0x77,0x32,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x46,0x72,0x6f,0x6d,0x45,0x78,0x74,0x65,0x6e,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x45,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x72,0x61,0x77,0x32,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x46,0x72,0x6f,0x6d,0x45,0x78,0x74,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x45,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x46,0x72,0x6f,0x6d,0x45,0x78,0x74,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x73,0x4d,0x69,0x78,0x69,0x6e,0x20,0x26,0x26,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x65,0x78,0x74,0x65,0x6e,0x64,0x45,0x6d,0x69,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x45,0x6d,0x69,0x74,0x73,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x65,0x78,0x74,0x65,0x6e,0x64,0x45,0x6d,0x69,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x61,0x77,0x20,0x26,0x26,0x20,0x21,0x68,0x61,0x73,0x45,0x78,0x74,0x65,0x6e,0x64,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x61,0x77,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x2c,0x20,0x72,0x61,0x77,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x63,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x45,0x6d,0x69,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x4f,0x6e,0x63,0x65,0x24,0x2f,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x2b,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x29,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x72,0x6b,0x41,0x74,0x74,0x72,0x73,0x41,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x78,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x78,0x79,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x77,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x68,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x53,0x63,0x72,0x69,0x70,0x74,0x53,0x65,0x74,0x75,0x70,0x20,0x3f,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x70,0x72,0x6f,0x78,0x79,0x54,0x6f,0x55,0x73,0x65,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x27,0x24,0x7b,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x27,0x20,0x77,0x61,0x73,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x76,0x69,0x61,0x20,0x27,0x74,0x68,0x69,0x73,0x27,0x2e,0x20,0x41,0x76,0x6f,0x69,0x64,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x27,0x74,0x68,0x69,0x73,0x27,0x20,0x69,0x6e,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x78,0x79,0x54,0x6f,0x55,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x78,0x79,0x54,0x6f,0x55,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x20,0x3f,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x32,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x74,0x74,0x72,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x74,0x74,0x72,0x73,0x41,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x20,0x3f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x20,0x3f,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x20,0x3f,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x61,0x74,0x74,0x72,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x74,0x74,0x72,0x73,0x41,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x61,0x74,0x74,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x3a,0x20,0x7b,0x20,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x65,0x6d,0x69,0x74,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x32,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x20,0x3f,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3f,0x20,0x61,0x74,0x74,0x72,0x73,0x20,0x3a,0x20,0x67,0x65,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x46,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x28,0x61,0x74,0x74,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x65,0x74,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x30,0x34,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5b,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x73,0x65,0x74,0x52,0x6f,0x6f,0x74,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x28,0x31,0x20,0x7c,0x20,0x36,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x41,0x74,0x74,0x72,0x73,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x41,0x74,0x74,0x72,0x73,0x20,0x26,0x26,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6c,0x6c,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x61,0x74,0x74,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x74,0x72,0x61,0x41,0x74,0x74,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x61,0x6c,0x6c,0x41,0x74,0x74,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x61,0x6c,0x6c,0x41,0x74,0x74,0x72,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6b,0x65,0x79,0x5b,0x32,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x2b,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x72,0x61,0x41,0x74,0x74,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x74,0x72,0x61,0x41,0x74,0x74,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x45,0x78,0x74,0x72,0x61,0x6e,0x65,0x6f,0x75,0x73,0x20,0x6e,0x6f,0x6e,0x2d,0x70,0x72,0x6f,0x70,0x73,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x20,0x28,0x24,0x7b,0x65,0x78,0x74,0x72,0x61,0x41,0x74,0x74,0x72,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x29,0x20,0x77,0x65,0x72,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x62,0x75,0x74,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x65,0x64,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x73,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6f,0x72,0x20,0x74,0x65,0x78,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x45,0x78,0x74,0x72,0x61,0x6e,0x65,0x6f,0x75,0x73,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6d,0x69,0x74,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x20,0x28,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x29,0x20,0x77,0x65,0x72,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x62,0x75,0x74,0x20,0x63,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x75,0x74,0x6f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x65,0x64,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x73,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6f,0x72,0x20,0x74,0x65,0x78,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x20,0x49,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x69,0x73,0x20,0x69,0x6e,0x74,0x65,0x6e,0x64,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x20,0x69,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x22,0x65,0x6d,0x69,0x74,0x73,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x72,0x6f,0x6f,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x20,0x54,0x68,0x65,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x20,0x69,0x6e,0x74,0x65,0x6e,0x64,0x65,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x64,0x69,0x72,0x73,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x64,0x69,0x72,0x73,0x20,0x3f,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x64,0x69,0x72,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x29,0x20,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x72,0x6f,0x6f,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x3c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x73,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x65,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x74,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x52,0x6f,0x6f,0x74,0x28,0x72,0x6f,0x6f,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x70,0x72,0x65,0x76,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x43,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x53,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x28,0x72,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x30,0x34,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x72,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3f,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x29,0x20,0x3a,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x28,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x52,0x6f,0x6f,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x49,0x6e,0x64,0x65,0x78,0x20,0x3e,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x49,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x52,0x6f,0x6f,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x52,0x6f,0x6f,0x74,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x52,0x6f,0x6f,0x74,0x29,0x2c,0x20,0x73,0x65,0x74,0x52,0x6f,0x6f,0x74,0x5d,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x53,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x76,0x2d,0x69,0x66,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x63,0x75,0x72,0x73,0x65,0x20,0x26,0x26,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x32,0x30,0x34,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x53,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x28,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x46,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x3d,0x20,0x28,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x72,0x65,0x73,0x20,0x7c,0x7c,0x20,0x28,0x72,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x29,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x20,0x3d,0x20,0x28,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x61,0x74,0x74,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x21,0x28,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x39,0x29,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x61,0x74,0x74,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x28,0x36,0x20,0x7c,0x20,0x31,0x29,0x20,0x7c,0x7c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x70,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6d,0x69,0x74,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x48,0x6d,0x72,0x55,0x70,0x64,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x26,0x26,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x30,0x32,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x50,0x72,0x6f,0x70,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x65,0x6d,0x69,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x45,0x6d,0x69,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6d,0x69,0x74,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7c,0x7c,0x20,0x21,0x6e,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x24,0x73,0x74,0x61,0x62,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x50,0x72,0x6f,0x70,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x65,0x6d,0x69,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x50,0x72,0x6f,0x70,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x4b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x65,0x78,0x74,0x4b,0x65,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x4b,0x65,0x79,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x70,0x72,0x65,0x76,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x45,0x6d,0x69,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x48,0x4f,0x43,0x48,0x6f,0x73,0x74,0x45,0x6c,0x28,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x7d,0x2c,0x20,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x6f,0x74,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x29,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3d,0x3e,0x20,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x6d,0x70,0x6c,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x22,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x49,0x6e,0x20,0x6f,0x72,0x64,0x65,0x72,0x20,0x74,0x6f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x74,0x72,0x65,0x65,0x2d,0x73,0x68,0x61,0x6b,0x61,0x62,0x6c,0x65,0x2c,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x69,0x6e,0x67,0x20,0x69,0x74,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x20,0x54,0x68,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x63,0x68,0x65,0x63,0x6b,0x73,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x5f,0x5f,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x66,0x6c,0x61,0x67,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x6e,0x20,0x61,0x20,0x76,0x6e,0x6f,0x64,0x65,0x27,0x73,0x20,0x74,0x79,0x70,0x65,0x20,0x61,0x6e,0x64,0x20,0x63,0x61,0x6c,0x6c,0x73,0x20,0x74,0x68,0x65,0x20,0x60,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x60,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x2c,0x20,0x70,0x61,0x73,0x73,0x69,0x6e,0x67,0x20,0x69,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2e,0x0a,0x20,0x20,0x5f,0x5f,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x31,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x21,0x6e,0x31,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x6d,0x70,0x6c,0x20,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x64,0x69,0x76,0x22,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x6f,0x6e,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x6f,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x72,0x65,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x7b,0x20,0x70,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x2c,0x20,0x75,0x6d,0x3a,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x7d,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x32,0x3b,0x0a,0x20,0x20,0x6e,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x31,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x32,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x7d,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3c,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x72,0x65,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x64,0x69,0x76,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3c,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x72,0x65,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3c,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x32,0x2c,0x20,0x22,0x6f,0x6e,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x35,0x31,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x3d,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3c,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x7d,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x6e,0x65,0x77,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x20,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x57,0x61,0x72,0x6e,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x5b,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x69,0x6e,0x66,0x6f,0x20,0x3f,0x20,0x22,0x69,0x6e,0x66,0x6f,0x22,0x20,0x3a,0x20,0x22,0x6c,0x6f,0x67,0x22,0x5d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3c,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3e,0x20,0x69,0x73,0x20,0x61,0x6e,0x20,0x65,0x78,0x70,0x65,0x72,0x69,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x20,0x66,0x65,0x61,0x74,0x75,0x72,0x65,0x20,0x61,0x6e,0x64,0x20,0x69,0x74,0x73,0x20,0x41,0x50,0x49,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x3a,0x20,0x6d,0x6f,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6d,0x3a,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x3a,0x20,0x6e,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x3a,0x20,0x7b,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x20,0x3d,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3f,0x20,0x74,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x20,0x60,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x70,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x3a,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x2b,0x2b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3a,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x3f,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3a,0x20,0x2d,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3a,0x20,0x21,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x72,0x65,0x73,0x75,0x6d,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x73,0x79,0x6e,0x63,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x75,0x6d,0x65,0x20,0x26,0x26,0x20,0x21,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x61,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x20,0x61,0x6e,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x62,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x75,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x75,0x74,0x2d,0x69,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x41,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3f,0x20,0x6e,0x65,0x78,0x74,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x3a,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x65,0x6c,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x32,0x2c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x55,0x6e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x41,0x6e,0x63,0x65,0x73,0x74,0x6f,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x55,0x6e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x41,0x6e,0x63,0x65,0x73,0x74,0x6f,0x72,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x55,0x6e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x41,0x6e,0x63,0x65,0x73,0x74,0x6f,0x72,0x20,0x26,0x26,0x20,0x21,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x28,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x21,0x73,0x79,0x6e,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x20,0x22,0x6f,0x6e,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x32,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x32,0x20,0x7d,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x45,0x76,0x65,0x6e,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x20,0x22,0x6f,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x32,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x28,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x74,0x72,0x65,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x75,0x74,0x2d,0x69,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x61,0x66,0x74,0x65,0x72,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x49,0x6e,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x73,0x6f,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x66,0x69,0x72,0x65,0x20,0x6e,0x6f,0x77,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x6c,0x61,0x79,0x45,0x6e,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x32,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x6d,0x6f,0x76,0x65,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x32,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x6e,0x65,0x78,0x74,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x44,0x65,0x70,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x49,0x6e,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x21,0x21,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x45,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x72,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x61,0x73,0x79,0x6e,0x63,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x7c,0x7c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x7c,0x7c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x21,0x3d,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x61,0x73,0x79,0x6e,0x63,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x45,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x45,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x3d,0x20,0x21,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x45,0x6c,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x6e,0x64,0x65,0x72,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x6d,0x61,0x79,0x20,0x68,0x61,0x76,0x65,0x20,0x62,0x65,0x65,0x6e,0x20,0x6d,0x6f,0x76,0x65,0x64,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x28,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x45,0x6c,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x73,0x6f,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x63,0x61,0x73,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x64,0x45,0x6c,0x20,0x3f,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3a,0x20,0x6e,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x32,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x48,0x4f,0x43,0x48,0x6f,0x73,0x74,0x45,0x6c,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x32,0x2e,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x2d,0x2d,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x32,0x2c,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x52,0x65,0x6d,0x6f,0x76,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x73,0x6c,0x69,0x6e,0x74,0x2d,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x2d,0x6e,0x65,0x78,0x74,0x2d,0x6c,0x69,0x6e,0x65,0x20,0x6e,0x6f,0x2d,0x72,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x65,0x64,0x2d,0x67,0x6c,0x6f,0x62,0x61,0x6c,0x73,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x64,0x69,0x76,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x64,0x65,0x70,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x53,0x6c,0x6f,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3f,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x53,0x6c,0x6f,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x53,0x6c,0x6f,0x74,0x28,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x63,0x6b,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x26,0x26,0x20,0x73,0x2e,0x5f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x63,0x6b,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x20,0x3d,0x20,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x63,0x6b,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x53,0x69,0x6e,0x67,0x6c,0x65,0x52,0x6f,0x6f,0x74,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x69,0x6e,0x67,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x20,0x26,0x26,0x20,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x3d,0x3e,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x21,0x3d,0x3d,0x20,0x4e,0x55,0x4c,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x3c,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x20,0x61,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x20,0x3d,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x26,0x26,0x20,0x21,0x73,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x20,0x21,0x3d,0x3d,0x20,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x71,0x75,0x65,0x75,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x57,0x69,0x74,0x68,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x66,0x6e,0x2c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x66,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x28,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x41,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x7d,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x21,0x65,0x6c,0x20,0x26,0x26,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x20,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x48,0x4f,0x43,0x48,0x6f,0x73,0x74,0x45,0x6c,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x69,0x62,0x6c,0x65,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x76,0x2d,0x66,0x67,0x74,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x76,0x2d,0x74,0x78,0x74,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x76,0x2d,0x63,0x6d,0x74,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x2e,0x66,0x6f,0x72,0x28,0x22,0x76,0x2d,0x73,0x74,0x63,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x20,0x3f,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3a,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x5b,0x62,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x2b,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3c,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x68,0x61,0x73,0x4f,0x6e,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x7c,0x7c,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x41,0x52,0x52,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x61,0x73,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x61,0x6d,0x65,0x56,0x4e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x28,0x6e,0x31,0x2c,0x20,0x6e,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x32,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x20,0x26,0x26,0x20,0x6e,0x31,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x68,0x6d,0x72,0x44,0x69,0x72,0x74,0x79,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x67,0x65,0x74,0x28,0x6e,0x32,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x74,0x79,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x73,0x2e,0x68,0x61,0x73,0x28,0x6e,0x31,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x31,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x3d,0x20,0x7e,0x32,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x32,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x3d,0x20,0x7e,0x35,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x31,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x32,0x2e,0x74,0x79,0x70,0x65,0x20,0x26,0x26,0x20,0x6e,0x31,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x32,0x2e,0x6b,0x65,0x79,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x4e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x28,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x57,0x69,0x74,0x68,0x41,0x72,0x67,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x20,0x3f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x72,0x28,0x61,0x72,0x67,0x73,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3a,0x20,0x61,0x72,0x67,0x73,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4b,0x65,0x79,0x20,0x3d,0x20,0x28,0x7b,0x20,0x6b,0x65,0x79,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x6b,0x65,0x79,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x20,0x3d,0x20,0x28,0x7b,0x0a,0x20,0x20,0x72,0x65,0x66,0x2c,0x0a,0x20,0x20,0x72,0x65,0x66,0x5f,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x72,0x65,0x66,0x5f,0x66,0x6f,0x72,0x0a,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x72,0x65,0x66,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x20,0x3d,0x20,0x22,0x22,0x20,0x2b,0x20,0x72,0x65,0x66,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x66,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x65,0x66,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x52,0x65,0x66,0x28,0x72,0x65,0x66,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x66,0x29,0x20,0x3f,0x20,0x7b,0x20,0x69,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x3a,0x20,0x72,0x65,0x66,0x2c,0x20,0x6b,0x3a,0x20,0x72,0x65,0x66,0x5f,0x6b,0x65,0x79,0x2c,0x20,0x66,0x3a,0x20,0x21,0x21,0x72,0x65,0x66,0x5f,0x66,0x6f,0x72,0x20,0x7d,0x20,0x3a,0x20,0x72,0x65,0x66,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x61,0x73,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3f,0x20,0x30,0x20,0x3a,0x20,0x31,0x2c,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6e,0x65,0x65,0x64,0x46,0x75,0x6c,0x6c,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4b,0x65,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x73,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x46,0x75,0x6c,0x6c,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x3f,0x20,0x38,0x20,0x3a,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x56,0x4e,0x6f,0x64,0x65,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x6b,0x65,0x79,0x20,0x28,0x4e,0x61,0x4e,0x29,0x2e,0x20,0x56,0x4e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x60,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x61,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x6e,0x6f,0x64,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x20,0x69,0x74,0x73,0x65,0x6c,0x66,0x0a,0x20,0x20,0x21,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x68,0x61,0x73,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x61,0x20,0x70,0x61,0x74,0x63,0x68,0x20,0x66,0x6c,0x61,0x67,0x20,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x65,0x73,0x20,0x74,0x68,0x69,0x73,0x20,0x6e,0x6f,0x64,0x65,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x70,0x61,0x74,0x63,0x68,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x2e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x64,0x65,0x73,0x20,0x61,0x6c,0x73,0x6f,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x62,0x65,0x20,0x70,0x61,0x74,0x63,0x68,0x65,0x64,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x65,0x76,0x65,0x6e,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x2c,0x20,0x69,0x74,0x20,0x6e,0x65,0x65,0x64,0x73,0x20,0x74,0x6f,0x20,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x6f,0x6e,0x20,0x74,0x6f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x78,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x73,0x6f,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x6c,0x79,0x20,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x6c,0x61,0x74,0x65,0x72,0x2e,0x0a,0x20,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3e,0x20,0x30,0x20,0x7c,0x7c,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x45,0x56,0x45,0x4e,0x54,0x53,0x20,0x66,0x6c,0x61,0x67,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x6e,0x64,0x20,0x69,0x66,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6c,0x61,0x67,0x2c,0x20,0x74,0x68,0x65,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x65,0x64,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x63,0x61,0x63,0x68,0x69,0x6e,0x67,0x2e,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x57,0x69,0x74,0x68,0x41,0x72,0x67,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x79,0x70,0x65,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x4e,0x55,0x4c,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x20,0x77,0x68,0x65,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3a,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x6d,0x65,0x72,0x67,0x65,0x52,0x65,0x66,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x5b,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x74,0x79,0x70,0x65,0x29,0x5d,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x2d,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x74,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x76,0x63,0x63,0x4f,0x70,0x74,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x63,0x6c,0x61,0x73,0x73,0x3a,0x20,0x6b,0x6c,0x61,0x73,0x73,0x2c,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x6c,0x61,0x73,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x6c,0x61,0x73,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x63,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x28,0x6b,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x74,0x79,0x6c,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x73,0x74,0x79,0x6c,0x65,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x74,0x79,0x6c,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x73,0x74,0x79,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x69,0x73,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x31,0x32,0x38,0x20,0x3a,0x20,0x69,0x73,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x36,0x34,0x20,0x3a,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x34,0x20,0x3a,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x3f,0x20,0x32,0x20,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x34,0x20,0x26,0x26,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x74,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x74,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x56,0x75,0x65,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x61,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x61,0x73,0x20,0x6d,0x61,0x64,0x65,0x20,0x61,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6e,0x20,0x6c,0x65,0x61,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x6f,0x76,0x65,0x72,0x68,0x65,0x61,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x61,0x76,0x6f,0x69,0x64,0x65,0x64,0x20,0x62,0x79,0x20,0x6d,0x61,0x72,0x6b,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x5c,0x60,0x6d,0x61,0x72,0x6b,0x52,0x61,0x77,0x5c,0x60,0x20,0x6f,0x72,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x5c,0x60,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x5c,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x20,0x6f,0x66,0x20,0x5c,0x60,0x72,0x65,0x66,0x5c,0x60,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x0a,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x61,0x73,0x20,0x6d,0x61,0x64,0x65,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x20,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x61,0x73,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6d,0x65,0x72,0x67,0x65,0x52,0x65,0x66,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x20,0x3f,0x20,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x76,0x5f,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x76,0x5f,0x73,0x6b,0x69,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x4b,0x65,0x79,0x28,0x6d,0x65,0x72,0x67,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x3a,0x20,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x2e,0x72,0x65,0x66,0x20,0x3f,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x32,0x30,0x37,0x38,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x63,0x61,0x73,0x65,0x20,0x6f,0x66,0x20,0x3c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3a,0x69,0x73,0x3d,0x22,0x76,0x6e,0x6f,0x64,0x65,0x22,0x20,0x72,0x65,0x66,0x3d,0x22,0x65,0x78,0x74,0x72,0x61,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x69,0x74,0x73,0x65,0x6c,0x66,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x61,0x73,0x20,0x61,0x20,0x72,0x65,0x66,0x2c,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x65,0x72,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x66,0x73,0x20,0x73,0x6f,0x20,0x74,0x68,0x65,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x20,0x6f,0x6e,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x72,0x65,0x66,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x52,0x65,0x66,0x20,0x26,0x26,0x20,0x72,0x65,0x66,0x20,0x3f,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x66,0x29,0x20,0x3f,0x20,0x72,0x65,0x66,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x28,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x3a,0x20,0x5b,0x72,0x65,0x66,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x28,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x29,0x5d,0x20,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x52,0x65,0x66,0x28,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x72,0x65,0x66,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x64,0x65,0x65,0x70,0x43,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x53,0x74,0x61,0x72,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x41,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x69,0x73,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x65,0x78,0x74,0x72,0x61,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x6e,0x6f,0x20,0x6c,0x6f,0x6e,0x67,0x65,0x72,0x20,0x61,0x73,0x73,0x75,0x6d,0x65,0x20,0x69,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x70,0x61,0x74,0x63,0x68,0x20,0x66,0x6c,0x61,0x67,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x72,0x65,0x6c,0x69,0x61,0x62,0x6c,0x65,0x20,0x61,0x6e,0x64,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x74,0x68,0x65,0x20,0x46,0x55,0x4c,0x4c,0x5f,0x50,0x52,0x4f,0x50,0x53,0x20,0x66,0x6c,0x61,0x67,0x2e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x74,0x65,0x3a,0x20,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x20,0x66,0x6c,0x61,0x67,0x20,0x66,0x6f,0x72,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x73,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x79,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x66,0x6c,0x61,0x67,0x20,0x66,0x6f,0x72,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x3a,0x20,0x65,0x78,0x74,0x72,0x61,0x50,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3f,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x3f,0x20,0x31,0x36,0x20,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x20,0x31,0x36,0x20,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x73,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x64,0x69,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x65,0x73,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x74,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x6e,0x6f,0x6e,0x2d,0x6e,0x75,0x6c,0x6c,0x20,0x6f,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x56,0x4e,0x6f,0x64,0x65,0x73,0x2e,0x20,0x48,0x6f,0x77,0x65,0x76,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x79,0x20,0x2a,0x73,0x68,0x6f,0x75,0x6c,0x64,0x2a,0x20,0x62,0x65,0x20,0x63,0x6f,0x70,0x69,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x6b,0x65,0x70,0x74,0x2d,0x61,0x6c,0x69,0x76,0x65,0x20,0x76,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x20,0x53,0x6f,0x20,0x77,0x65,0x20,0x6a,0x75,0x73,0x74,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x63,0x6f,0x70,0x79,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x6d,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x6d,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x6e,0x6f,0x6e,0x2d,0x6e,0x75,0x6c,0x6c,0x20,0x64,0x75,0x72,0x69,0x6e,0x67,0x20,0x61,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x64,0x6f,0x65,0x73,0x6e,0x27,0x74,0x20,0x61,0x66,0x66,0x65,0x63,0x74,0x20,0x74,0x68,0x65,0x20,0x6c,0x6f,0x67,0x69,0x63,0x20,0x61,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x79,0x20,0x77,0x69,0x6c,0x6c,0x20,0x73,0x69,0x6d,0x70,0x6c,0x79,0x20,0x62,0x65,0x20,0x6f,0x76,0x65,0x72,0x77,0x72,0x69,0x74,0x74,0x65,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x26,0x26,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x73,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x74,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x65,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x65,0x70,0x43,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x20,0x3d,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6d,0x61,0x70,0x28,0x64,0x65,0x65,0x70,0x43,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x22,0x20,0x22,0x2c,0x20,0x66,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x54,0x65,0x78,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x74,0x65,0x78,0x74,0x2c,0x20,0x66,0x6c,0x61,0x67,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x4f,0x66,0x4e,0x6f,0x64,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x4f,0x66,0x4e,0x6f,0x64,0x65,0x73,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x22,0x22,0x2c,0x20,0x61,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3f,0x20,0x28,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x29,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x74,0x65,0x78,0x74,0x29,0x29,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x33,0x36,0x36,0x36,0x2c,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x72,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x70,0x6f,0x6c,0x6c,0x75,0x74,0x69,0x6f,0x6e,0x20,0x77,0x68,0x65,0x6e,0x20,0x72,0x65,0x75,0x73,0x69,0x6e,0x67,0x20,0x76,0x6e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x54,0x65,0x78,0x74,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x49,0x66,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6d,0x65,0x6d,0x6f,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3a,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x28,0x31,0x20,0x7c,0x20,0x36,0x34,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x63,0x20,0x26,0x26,0x20,0x28,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x63,0x20,0x26,0x26,0x20,0x28,0x73,0x6c,0x6f,0x74,0x2e,0x5f,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x5f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x5f,0x63,0x74,0x78,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x5f,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x5f,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x5f,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x31,0x30,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x7b,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x5f,0x63,0x74,0x78,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x36,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x74,0x79,0x70,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x61,0x72,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x20,0x21,0x3d,0x3d,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x28,0x5b,0x72,0x65,0x74,0x2e,0x63,0x6c,0x61,0x73,0x73,0x2c,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x2e,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x28,0x5b,0x72,0x65,0x74,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x2e,0x73,0x74,0x79,0x6c,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x72,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x21,0x3d,0x3d,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x21,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x26,0x26,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x3f,0x20,0x5b,0x5d,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x29,0x20,0x3a,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x4d,0x65,0x72,0x67,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x56,0x4e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x37,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x41,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x29,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x75,0x69,0x64,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3a,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7c,0x7c,0x20,0x65,0x6d,0x70,0x74,0x79,0x41,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x75,0x69,0x64,0x3a,0x20,0x75,0x69,0x64,0x2b,0x2b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x20,0x73,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x20,0x73,0x79,0x6e,0x63,0x68,0x72,0x6f,0x6e,0x6f,0x75,0x73,0x6c,0x79,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x20,0x73,0x79,0x6e,0x63,0x68,0x72,0x6f,0x6e,0x6f,0x75,0x73,0x6c,0x79,0x20,0x72,0x69,0x67,0x68,0x74,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x6a,0x6f,0x62,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x3a,0x20,0x6e,0x65,0x77,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x64,0x65,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x78,0x79,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x50,0x72,0x6f,0x78,0x79,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3a,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x64,0x73,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x64,0x73,0x20,0x3a,0x20,0x5b,0x22,0x22,0x2c,0x20,0x30,0x2c,0x20,0x30,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x61,0x73,0x73,0x65,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x61,0x6e,0x64,0x20,0x65,0x6d,0x69,0x74,0x73,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x45,0x6d,0x69,0x74,0x73,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x65,0x6d,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x20,0x69,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x65,0x64,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x3a,0x20,0x74,0x79,0x70,0x65,0x2e,0x69,0x6e,0x68,0x65,0x72,0x69,0x74,0x41,0x74,0x74,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x63,0x74,0x78,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x73,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x66,0x73,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x3a,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x72,0x65,0x6c,0x61,0x74,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x49,0x64,0x3a,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3f,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x49,0x64,0x20,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6e,0x6f,0x74,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x65,0x6e,0x75,0x6d,0x73,0x20,0x68,0x65,0x72,0x65,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x73,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x63,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6d,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x6d,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x75,0x6d,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x61,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x67,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x74,0x63,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x63,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x65,0x76,0x52,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x6f,0x6f,0x74,0x20,0x3a,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x20,0x3d,0x20,0x65,0x6d,0x69,0x74,0x2e,0x62,0x69,0x6e,0x64,0x28,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x53,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x73,0x65,0x74,0x49,0x6e,0x53,0x53,0x52,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x3b,0x0a,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x20,0x3d,0x20,0x67,0x65,0x74,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x54,0x68,0x69,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x65,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x2c,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x67,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x29,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x67,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x65,0x74,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x73,0x65,0x74,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x28,0x76,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x20,0x73,0x65,0x74,0x74,0x65,0x72,0x73,0x5b,0x30,0x5d,0x28,0x76,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x53,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x65,0x74,0x74,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x60,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x49,0x4e,0x53,0x54,0x41,0x4e,0x43,0x45,0x5f,0x53,0x45,0x54,0x54,0x45,0x52,0x53,0x5f,0x5f,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x76,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x73,0x65,0x74,0x49,0x6e,0x53,0x53,0x52,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x53,0x65,0x74,0x74,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x60,0x5f,0x5f,0x56,0x55,0x45,0x5f,0x53,0x53,0x52,0x5f,0x53,0x45,0x54,0x54,0x45,0x52,0x53,0x5f,0x5f,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x20,0x3d,0x20,0x76,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x53,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x2e,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x2e,0x6f,0x66,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x53,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x70,0x72,0x65,0x76,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x6e,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x63,0x6f,0x70,0x65,0x2e,0x6f,0x66,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x53,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x54,0x61,0x67,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x22,0x73,0x6c,0x6f,0x74,0x2c,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x7b,0x20,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x54,0x61,0x67,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x44,0x6f,0x20,0x6e,0x6f,0x74,0x20,0x75,0x73,0x65,0x20,0x62,0x75,0x69,0x6c,0x74,0x2d,0x69,0x6e,0x20,0x6f,0x72,0x20,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x20,0x48,0x54,0x4d,0x4c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x61,0x73,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x34,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x73,0x53,0x53,0x52,0x20,0x26,0x26,0x20,0x73,0x65,0x74,0x49,0x6e,0x53,0x53,0x52,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x28,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x69,0x74,0x50,0x72,0x6f,0x70,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x69,0x74,0x53,0x6c,0x6f,0x74,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x20,0x3f,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x73,0x53,0x53,0x52,0x20,0x26,0x26,0x20,0x73,0x65,0x74,0x49,0x6e,0x53,0x53,0x52,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x66,0x75,0x6c,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x61,0x72,0x20,0x5f,0x61,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x73,0x5b,0x69,0x5d,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4f,0x6e,0x6c,0x79,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x22,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x22,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x56,0x75,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2e,0x20,0x53,0x69,0x6e,0x63,0x65,0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2d,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x75,0x69,0x6c,0x64,0x2c,0x20,0x74,0x68,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x76,0x69,0x61,0x20,0x79,0x6f,0x75,0x72,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x74,0x6f,0x6f,0x6c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x63,0x63,0x65,0x73,0x73,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x2c,0x20,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x4f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x65,0x74,0x75,0x70,0x20,0x7d,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x74,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x53,0x65,0x74,0x75,0x70,0x20,0x3d,0x20,0x69,0x73,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x28,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x53,0x65,0x74,0x75,0x70,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x70,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x73,0x79,0x6e,0x63,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x53,0x65,0x74,0x75,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x74,0x68,0x65,0x6e,0x28,0x75,0x6e,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x75,0x6e,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x2e,0x63,0x61,0x74,0x63,0x68,0x28,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x70,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x28,0x5f,0x61,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x5f,0x61,0x20,0x3a,0x20,0x22,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3c,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x3e,0x3a,0x20,0x73,0x65,0x74,0x75,0x70,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x61,0x20,0x70,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2c,0x20,0x62,0x75,0x74,0x20,0x6e,0x6f,0x20,0x3c,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3e,0x20,0x62,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x20,0x77,0x61,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x72,0x65,0x65,0x2e,0x20,0x41,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x61,0x20,0x3c,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3e,0x20,0x69,0x6e,0x20,0x6f,0x72,0x64,0x65,0x72,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x53,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x73,0x73,0x72,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x73,0x72,0x52,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x6e,0x6f,0x74,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x56,0x4e,0x6f,0x64,0x65,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x2d,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x52,0x61,0x77,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x78,0x79,0x52,0x65,0x66,0x73,0x28,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x53,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x4f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x20,0x52,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x3a,0x20,0x24,0x7b,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x22,0x6e,0x75,0x6c,0x6c,0x22,0x20,0x3a,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x73,0x65,0x74,0x75,0x70,0x52,0x65,0x73,0x75,0x6c,0x74,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x29,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x24,0x31,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x28,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x24,0x31,0x20,0x3d,0x20,0x5f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x28,0x69,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x2e,0x5f,0x72,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2e,0x77,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x2e,0x63,0x74,0x78,0x2c,0x20,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x21,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x24,0x31,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x53,0x53,0x52,0x2c,0x20,0x73,0x6b,0x69,0x70,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x53,0x52,0x20,0x26,0x26,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x24,0x31,0x20,0x26,0x26,0x20,0x21,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x7c,0x7c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x4d,0x65,0x72,0x67,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x2e,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x7d,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x6e,0x61,0x6c,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x24,0x31,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x20,0x66,0x69,0x6e,0x61,0x6c,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x60,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x7c,0x7c,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x65,0x74,0x20,0x3d,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x6c,0x79,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x24,0x31,0x20,0x26,0x26,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x64,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x74,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x56,0x75,0x65,0x2e,0x60,0x20,0x2b,0x20,0x28,0x60,0x20,0x55,0x73,0x65,0x20,0x22,0x76,0x75,0x65,0x2e,0x65,0x73,0x6d,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x6a,0x73,0x22,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x6f,0x72,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x60,0x2c,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x74,0x74,0x72,0x73,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x72,0x6b,0x41,0x74,0x74,0x72,0x73,0x41,0x63,0x63,0x65,0x73,0x73,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x61,0x74,0x74,0x72,0x73,0x20,0x69,0x73,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x20,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x53,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x67,0x65,0x74,0x22,0x2c,0x20,0x22,0x24,0x73,0x6c,0x6f,0x74,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x65,0x74,0x75,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x20,0x3d,0x20,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x60,0x65,0x78,0x70,0x6f,0x73,0x65,0x28,0x29,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x6f,0x6e,0x63,0x65,0x20,0x70,0x65,0x72,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x61,0x72,0x72,0x61,0x79,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x22,0x72,0x65,0x66,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x65,0x78,0x70,0x6f,0x73,0x65,0x28,0x29,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x61,0x20,0x70,0x6c,0x61,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x24,0x7b,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x54,0x79,0x70,0x65,0x7d,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x3d,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x74,0x74,0x72,0x73,0x50,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x65,0x65,0x7a,0x65,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x61,0x74,0x74,0x72,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x74,0x74,0x72,0x73,0x50,0x72,0x6f,0x78,0x79,0x20,0x7c,0x7c,0x20,0x28,0x61,0x74,0x74,0x72,0x73,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x74,0x74,0x72,0x73,0x2c,0x20,0x61,0x74,0x74,0x72,0x73,0x50,0x72,0x6f,0x78,0x79,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x78,0x79,0x20,0x7c,0x7c,0x20,0x28,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x78,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x20,0x65,0x6d,0x69,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x50,0x72,0x6f,0x78,0x79,0x20,0x7c,0x7c,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x50,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x50,0x72,0x6f,0x78,0x79,0x28,0x70,0x72,0x6f,0x78,0x79,0x52,0x65,0x66,0x73,0x28,0x6d,0x61,0x72,0x6b,0x52,0x61,0x77,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x29,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x5b,0x6b,0x65,0x79,0x5d,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x4d,0x61,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x69,0x66,0x79,0x52,0x45,0x20,0x3d,0x20,0x2f,0x28,0x3f,0x3a,0x5e,0x7c,0x5b,0x2d,0x5f,0x5d,0x29,0x28,0x5c,0x77,0x29,0x2f,0x67,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x69,0x66,0x79,0x20,0x3d,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x63,0x6c,0x61,0x73,0x73,0x69,0x66,0x79,0x52,0x45,0x2c,0x20,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x2d,0x5f,0x5d,0x2f,0x67,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x49,0x6e,0x66,0x65,0x72,0x72,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3f,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x4e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x49,0x6e,0x66,0x65,0x72,0x72,0x65,0x64,0x20,0x26,0x26,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x5f,0x5f,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x69,0x73,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x28,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x5f,0x5f,0x66,0x69,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x5f,0x5f,0x66,0x69,0x6c,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x28,0x5b,0x5e,0x2f,0x5c,0x5c,0x5d,0x2b,0x29,0x5c,0x2e,0x5c,0x77,0x2b,0x24,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x66,0x65,0x72,0x46,0x72,0x6f,0x6d,0x52,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x20,0x3d,0x20,0x28,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x69,0x6e,0x66,0x65,0x72,0x46,0x72,0x6f,0x6d,0x52,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x7c,0x7c,0x20,0x69,0x6e,0x66,0x65,0x72,0x46,0x72,0x6f,0x6d,0x52,0x65,0x67,0x69,0x73,0x74,0x72,0x79,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3f,0x20,0x63,0x6c,0x61,0x73,0x73,0x69,0x66,0x79,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3a,0x20,0x69,0x73,0x52,0x6f,0x6f,0x74,0x20,0x3f,0x20,0x60,0x41,0x70,0x70,0x60,0x20,0x3a,0x20,0x60,0x41,0x6e,0x6f,0x6e,0x79,0x6d,0x6f,0x75,0x73,0x60,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x43,0x6c,0x61,0x73,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x26,0x26,0x20,0x22,0x5f,0x5f,0x76,0x63,0x63,0x4f,0x70,0x74,0x73,0x22,0x20,0x69,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x64,0x65,0x62,0x75,0x67,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x24,0x31,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x4f,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x64,0x65,0x62,0x75,0x67,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x69,0x73,0x49,0x6e,0x53,0x53,0x52,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x65,0x74,0x75,0x70,0x29,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x26,0x26,0x20,0x69,0x2e,0x61,0x70,0x70,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x77,0x61,0x72,0x6e,0x52,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x2e,0x5f,0x77,0x61,0x72,0x6e,0x52,0x65,0x63,0x75,0x72,0x73,0x69,0x76,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x20,0x3d,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x20,0x3e,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x4f,0x72,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x43,0x75,0x73,0x74,0x6f,0x6d,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x75,0x65,0x53,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x33,0x62,0x61,0x37,0x37,0x36,0x22,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x53,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x31,0x36,0x37,0x37,0x66,0x66,0x22,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x53,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x35,0x32,0x32,0x32,0x64,0x22,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x53,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x7b,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x65,0x62,0x32,0x66,0x39,0x36,0x22,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x5f,0x76,0x75,0x65,0x5f,0x63,0x75,0x73,0x74,0x6f,0x6d,0x5f,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x6f,0x62,0x6a,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x62,0x6a,0x2e,0x5f,0x5f,0x69,0x73,0x56,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x64,0x69,0x76,0x22,0x2c,0x20,0x76,0x75,0x65,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x60,0x56,0x75,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x60,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x66,0x28,0x6f,0x62,0x6a,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x76,0x75,0x65,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x67,0x65,0x6e,0x52,0x65,0x66,0x46,0x6c,0x61,0x67,0x28,0x6f,0x62,0x6a,0x29,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x64,0x65,0x62,0x75,0x67,0x67,0x65,0x72,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x61,0x66,0x66,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x22,0x5f,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x69,0x6e,0x20,0x6f,0x62,0x6a,0x20,0x3f,0x20,0x6f,0x62,0x6a,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x6f,0x62,0x6a,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x28,0x6f,0x62,0x6a,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x76,0x75,0x65,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3f,0x20,0x22,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x20,0x3a,0x20,0x22,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x22,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x62,0x6a,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3e,0x24,0x7b,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3f,0x20,0x60,0x20,0x28,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x29,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x28,0x6f,0x62,0x6a,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x76,0x75,0x65,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x6f,0x62,0x6a,0x29,0x20,0x3f,0x20,0x22,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x20,0x3a,0x20,0x22,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x22,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x62,0x6a,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x3e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x42,0x6f,0x64,0x79,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x62,0x6a,0x20,0x26,0x26,0x20,0x6f,0x62,0x6a,0x2e,0x5f,0x5f,0x69,0x73,0x56,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x64,0x79,0x28,0x6f,0x62,0x6a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x62,0x6a,0x20,0x26,0x26,0x20,0x6f,0x62,0x6a,0x2e,0x5f,0x5f,0x69,0x73,0x56,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x6f,0x62,0x6a,0x2e,0x24,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x22,0x70,0x72,0x6f,0x70,0x73,0x22,0x2c,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x22,0x73,0x65,0x74,0x75,0x70,0x22,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x65,0x74,0x75,0x70,0x53,0x74,0x61,0x74,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x64,0x61,0x74,0x61,0x20,0x21,0x3d,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x22,0x64,0x61,0x74,0x61,0x22,0x2c,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x64,0x61,0x74,0x61,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x20,0x3d,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x4b,0x65,0x79,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x22,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x22,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x4b,0x65,0x79,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x22,0x69,0x6e,0x6a,0x65,0x63,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x22,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x22,0x2c,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x53,0x74,0x79,0x6c,0x65,0x2e,0x73,0x74,0x79,0x6c,0x65,0x20,0x2b,0x20,0x22,0x3b,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x30,0x2e,0x36,0x36,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x24,0x20,0x28,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x29,0x3a,0x20,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x2c,0x20,0x7b,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x3a,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x7d,0x5d,0x0a,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x7b,0x7d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x6c,0x69,0x6e,0x65,0x2d,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x31,0x2e,0x32,0x35,0x65,0x6d,0x3b,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x30,0x2e,0x36,0x65,0x6d,0x22,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x34,0x37,0x36,0x35,0x38,0x32,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x22,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x31,0x2e,0x32,0x35,0x65,0x6d,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6b,0x65,0x79,0x20,0x2b,0x20,0x22,0x3a,0x20,0x22,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x2c,0x20,0x61,0x73,0x52,0x61,0x77,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x76,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x76,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x76,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x6f,0x62,0x6a,0x65,0x63,0x74,0x22,0x2c,0x20,0x7b,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x3a,0x20,0x61,0x73,0x52,0x61,0x77,0x20,0x3f,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x76,0x29,0x20,0x3a,0x20,0x76,0x20,0x7d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x4b,0x65,0x79,0x73,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x43,0x6f,0x6d,0x70,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4b,0x65,0x79,0x4f,0x66,0x54,0x79,0x70,0x65,0x28,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x65,0x64,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x74,0x78,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x74,0x72,0x61,0x63,0x74,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4b,0x65,0x79,0x4f,0x66,0x54,0x79,0x70,0x65,0x28,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x73,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x5b,0x74,0x79,0x70,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x70,0x74,0x73,0x29,0x20,0x26,0x26,0x20,0x6f,0x70,0x74,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x6f,0x70,0x74,0x73,0x29,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x70,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x43,0x6f,0x6d,0x70,0x2e,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x26,0x26,0x20,0x69,0x73,0x4b,0x65,0x79,0x4f,0x66,0x54,0x79,0x70,0x65,0x28,0x43,0x6f,0x6d,0x70,0x2e,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x43,0x6f,0x6d,0x70,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x20,0x26,0x26,0x20,0x43,0x6f,0x6d,0x70,0x2e,0x6d,0x69,0x78,0x69,0x6e,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x4b,0x65,0x79,0x4f,0x66,0x54,0x79,0x70,0x65,0x28,0x6d,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x52,0x65,0x66,0x46,0x6c,0x61,0x67,0x28,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x28,0x76,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x52,0x65,0x66,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x52,0x65,0x66,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x66,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x4d,0x65,0x6d,0x6f,0x28,0x6d,0x65,0x6d,0x6f,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x26,0x26,0x20,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x2c,0x20,0x6d,0x65,0x6d,0x6f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x2e,0x6d,0x65,0x6d,0x6f,0x20,0x3d,0x20,0x6d,0x65,0x6d,0x6f,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x2c,0x20,0x6d,0x65,0x6d,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x6d,0x65,0x6d,0x6f,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x20,0x6d,0x65,0x6d,0x6f,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x65,0x76,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x61,0x6e,0x67,0x65,0x64,0x28,0x70,0x72,0x65,0x76,0x5b,0x69,0x5d,0x2c,0x20,0x6d,0x65,0x6d,0x6f,0x5b,0x69,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x65,0x65,0x45,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x22,0x33,0x2e,0x35,0x2e,0x31,0x32,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x72,0x6e,0x20,0x3d,0x20,0x77,0x61,0x72,0x6e,0x24,0x31,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x24,0x31,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x20,0x3d,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x24,0x31,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x24,0x31,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x73,0x73,0x72,0x55,0x74,0x69,0x6c,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x65,0x6e,0x64,0x65,0x72,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x50,0x75,0x62,0x6c,0x69,0x63,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x56,0x61,0x6c,0x69,0x64,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x70,0x6f,0x70,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x73,0x72,0x55,0x74,0x69,0x6c,0x73,0x20,0x3d,0x20,0x5f,0x73,0x73,0x72,0x55,0x74,0x69,0x6c,0x73,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x55,0x74,0x69,0x6c,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x44,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x70,0x6f,0x6c,0x69,0x63,0x79,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x74,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x26,0x26,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x74,0x72,0x75,0x73,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x73,0x3b,0x0a,0x69,0x66,0x20,0x28,0x74,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x6f,0x6c,0x69,0x63,0x79,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x74,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x6f,0x6c,0x69,0x63,0x79,0x28,0x22,0x76,0x75,0x65,0x22,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x54,0x4d,0x4c,0x3a,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x76,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x45,0x72,0x72,0x6f,0x72,0x20,0x63,0x72,0x65,0x61,0x74,0x69,0x6e,0x67,0x20,0x74,0x72,0x75,0x73,0x74,0x65,0x64,0x20,0x74,0x79,0x70,0x65,0x73,0x20,0x70,0x6f,0x6c,0x69,0x63,0x79,0x3a,0x20,0x24,0x7b,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x6e,0x73,0x61,0x66,0x65,0x54,0x6f,0x54,0x72,0x75,0x73,0x74,0x65,0x64,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x70,0x6f,0x6c,0x69,0x63,0x79,0x20,0x3f,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x70,0x6f,0x6c,0x69,0x63,0x79,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x54,0x4d,0x4c,0x28,0x76,0x61,0x6c,0x29,0x20,0x3a,0x20,0x28,0x76,0x61,0x6c,0x29,0x20,0x3d,0x3e,0x20,0x76,0x61,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x76,0x67,0x4e,0x53,0x20,0x3d,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x4e,0x53,0x20,0x3d,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x38,0x2f,0x4d,0x61,0x74,0x68,0x2f,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x6f,0x63,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x20,0x26,0x26,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x64,0x65,0x4f,0x70,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x3a,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x3a,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x28,0x74,0x61,0x67,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x69,0x73,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x3f,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4e,0x53,0x28,0x73,0x76,0x67,0x4e,0x53,0x2c,0x20,0x74,0x61,0x67,0x29,0x20,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x20,0x3f,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4e,0x53,0x28,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x4e,0x53,0x2c,0x20,0x74,0x61,0x67,0x29,0x20,0x3a,0x20,0x69,0x73,0x20,0x3f,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x2c,0x20,0x7b,0x20,0x69,0x73,0x20,0x7d,0x29,0x20,0x3a,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x22,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x3a,0x20,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x28,0x74,0x65,0x78,0x74,0x29,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x28,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x64,0x6f,0x63,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x74,0x65,0x78,0x74,0x29,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x54,0x65,0x78,0x74,0x3a,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x54,0x65,0x78,0x74,0x3a,0x20,0x28,0x65,0x6c,0x2c,0x20,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3a,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x3a,0x20,0x28,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x64,0x6f,0x63,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x28,0x65,0x6c,0x2c,0x20,0x69,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x69,0x64,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x5f,0x5f,0x55,0x4e,0x53,0x41,0x46,0x45,0x5f,0x5f,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x52,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x20,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x68,0x65,0x72,0x65,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x63,0x6f,0x6d,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x73,0x2e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x41,0x73,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x75,0x73,0x65,0x73,0x20,0x74,0x72,0x75,0x73,0x74,0x65,0x64,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x73,0x61,0x66,0x65,0x2e,0x0a,0x20,0x20,0x69,0x6e,0x73,0x65,0x72,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3f,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2e,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6c,0x61,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x26,0x26,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6e,0x64,0x20,0x7c,0x7c,0x20,0x73,0x74,0x61,0x72,0x74,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x4e,0x6f,0x64,0x65,0x28,0x74,0x72,0x75,0x65,0x29,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6e,0x64,0x20,0x7c,0x7c,0x20,0x21,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x75,0x6e,0x73,0x61,0x66,0x65,0x54,0x6f,0x54,0x72,0x75,0x73,0x74,0x65,0x64,0x48,0x54,0x4d,0x4c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x3f,0x20,0x60,0x3c,0x73,0x76,0x67,0x3e,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x60,0x20,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x20,0x3f,0x20,0x60,0x3c,0x6d,0x61,0x74,0x68,0x3e,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x3c,0x2f,0x6d,0x61,0x74,0x68,0x3e,0x60,0x20,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x7c,0x7c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x3d,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x77,0x72,0x61,0x70,0x70,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x69,0x72,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x3f,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x61,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x3f,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x2e,0x70,0x72,0x65,0x76,0x69,0x6f,0x75,0x73,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x3a,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6c,0x61,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x0a,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x20,0x3d,0x20,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x41,0x4e,0x49,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x20,0x3d,0x20,0x22,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x74,0x63,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x76,0x74,0x63,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x44,0x4f,0x4d,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x63,0x73,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x5b,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x5d,0x2c,0x0a,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x2c,0x0a,0x20,0x20,0x44,0x4f,0x4d,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x65,0x24,0x31,0x20,0x3d,0x20,0x28,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x74,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x65,0x24,0x31,0x28,0x0a,0x20,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x68,0x28,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x29,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x68,0x32,0x29,0x20,0x3d,0x3e,0x20,0x68,0x32,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x6f,0x6b,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3f,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x3f,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x68,0x32,0x29,0x20,0x3d,0x3e,0x20,0x68,0x32,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x3a,0x20,0x68,0x6f,0x6f,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x20,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x44,0x4f,0x4d,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x63,0x73,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x65,0x6e,0x74,0x65,0x72,0x2d,0x66,0x72,0x6f,0x6d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x65,0x6e,0x74,0x65,0x72,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x65,0x6e,0x74,0x65,0x72,0x2d,0x74,0x6f,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x65,0x6e,0x74,0x65,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x65,0x6e,0x74,0x65,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x65,0x6e,0x74,0x65,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x6c,0x65,0x61,0x76,0x65,0x2d,0x66,0x72,0x6f,0x6d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x6c,0x65,0x61,0x76,0x65,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x61,0x76,0x65,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x60,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x2d,0x6c,0x65,0x61,0x76,0x65,0x2d,0x74,0x6f,0x60,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x74,0x65,0x72,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x65,0x61,0x76,0x65,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3d,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3d,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x20,0x3d,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x45,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x20,0x3a,0x20,0x65,0x6e,0x74,0x65,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x3a,0x20,0x65,0x6e,0x74,0x65,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x6e,0x65,0x20,0x26,0x26,0x20,0x64,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x4c,0x65,0x61,0x76,0x65,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x6f,0x6e,0x65,0x20,0x26,0x26,0x20,0x64,0x6f,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x6b,0x65,0x45,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x28,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x65,0x6c,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3f,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3a,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x2c,0x20,0x5b,0x65,0x6c,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x46,0x72,0x61,0x6d,0x65,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x20,0x3a,0x20,0x65,0x6e,0x74,0x65,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x69,0x73,0x41,0x70,0x70,0x65,0x61,0x72,0x20,0x3f,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x20,0x3a,0x20,0x65,0x6e,0x74,0x65,0x72,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x68,0x6f,0x6f,0x6b,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x65,0x6e,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x45,0x6e,0x64,0x73,0x28,0x65,0x6c,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x65,0x6e,0x74,0x65,0x72,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x65,0x6e,0x74,0x65,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x65,0x6e,0x74,0x65,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x70,0x70,0x65,0x61,0x72,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x70,0x70,0x65,0x61,0x72,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x3a,0x20,0x6d,0x61,0x6b,0x65,0x45,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x3a,0x20,0x6d,0x61,0x6b,0x65,0x45,0x6e,0x74,0x65,0x72,0x48,0x6f,0x6f,0x6b,0x28,0x74,0x72,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x4c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x64,0x6f,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x41,0x63,0x74,0x69,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x63,0x65,0x52,0x65,0x66,0x6c,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x46,0x72,0x61,0x6d,0x65,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6c,0x2e,0x5f,0x69,0x73,0x4c,0x65,0x61,0x76,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x46,0x72,0x6f,0x6d,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x54,0x6f,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x65,0x6e,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x45,0x6e,0x64,0x73,0x28,0x65,0x6c,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x2c,0x20,0x5b,0x65,0x6c,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x45,0x6e,0x74,0x65,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x41,0x70,0x70,0x65,0x61,0x72,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x4c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x6f,0x6e,0x4c,0x65,0x61,0x76,0x65,0x43,0x61,0x6e,0x63,0x65,0x6c,0x6c,0x65,0x64,0x2c,0x20,0x5b,0x65,0x6c,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x4e,0x75,0x6d,0x62,0x65,0x72,0x4f,0x66,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x4f,0x66,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x65,0x61,0x76,0x65,0x29,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x20,0x3d,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x4f,0x66,0x28,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x6e,0x2c,0x20,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x4f,0x66,0x28,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x74,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x72,0x65,0x73,0x2c,0x20,0x22,0x3c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6c,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x28,0x65,0x6c,0x5b,0x76,0x74,0x63,0x4b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x65,0x6c,0x5b,0x76,0x74,0x63,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x29,0x29,0x2e,0x61,0x64,0x64,0x28,0x63,0x6c,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x63,0x6c,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6c,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x76,0x74,0x63,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x76,0x74,0x63,0x4b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x76,0x74,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x76,0x74,0x63,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x63,0x6c,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x76,0x74,0x63,0x2e,0x73,0x69,0x7a,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x76,0x74,0x63,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x65,0x78,0x74,0x46,0x72,0x61,0x6d,0x65,0x28,0x63,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x41,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x46,0x72,0x61,0x6d,0x65,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x41,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x46,0x72,0x61,0x6d,0x65,0x28,0x63,0x62,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x65,0x6e,0x64,0x49,0x64,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x68,0x65,0x6e,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x45,0x6e,0x64,0x73,0x28,0x65,0x6c,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x2c,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x64,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x5f,0x65,0x6e,0x64,0x49,0x64,0x20,0x3d,0x20,0x2b,0x2b,0x65,0x6e,0x64,0x49,0x64,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x49,0x66,0x4e,0x6f,0x74,0x53,0x74,0x61,0x6c,0x65,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6c,0x2e,0x5f,0x65,0x6e,0x64,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x49,0x66,0x4e,0x6f,0x74,0x53,0x74,0x61,0x6c,0x65,0x2c,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x20,0x7d,0x20,0x3d,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x66,0x6f,0x28,0x65,0x6c,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x2b,0x20,0x22,0x65,0x6e,0x64,0x22,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x6e,0x64,0x65,0x64,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6e,0x64,0x45,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x6e,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x49,0x66,0x4e,0x6f,0x74,0x53,0x74,0x61,0x6c,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x6e,0x64,0x20,0x3d,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6c,0x20,0x26,0x26,0x20,0x2b,0x2b,0x65,0x6e,0x64,0x65,0x64,0x20,0x3e,0x3d,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6e,0x64,0x65,0x64,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x65,0x6c,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6e,0x64,0x45,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x6e,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x66,0x6f,0x28,0x65,0x6c,0x2c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x3d,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x67,0x65,0x74,0x43,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x53,0x74,0x79,0x6c,0x65,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x28,0x73,0x74,0x79,0x6c,0x65,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x22,0x22,0x29,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x20,0x22,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x60,0x24,0x7b,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x7d,0x44,0x65,0x6c,0x61,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x60,0x24,0x7b,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x7d,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x73,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x60,0x24,0x7b,0x41,0x4e,0x49,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x7d,0x44,0x65,0x6c,0x61,0x79,0x60,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x60,0x24,0x7b,0x41,0x4e,0x49,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x7d,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x44,0x65,0x6c,0x61,0x79,0x73,0x2c,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x41,0x4e,0x49,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x41,0x4e,0x49,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3e,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3f,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x20,0x3a,0x20,0x41,0x4e,0x49,0x4d,0x41,0x54,0x49,0x4f,0x4e,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x3f,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x20,0x3f,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3a,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x20,0x26,0x26,0x20,0x2f,0x5c,0x62,0x28,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x7c,0x61,0x6c,0x6c,0x29,0x28,0x2c,0x7c,0x24,0x29,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x60,0x24,0x7b,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x24,0x31,0x7d,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x60,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x43,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x64,0x65,0x6c,0x61,0x79,0x73,0x2c,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x64,0x65,0x6c,0x61,0x79,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3c,0x20,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x61,0x79,0x73,0x20,0x3d,0x20,0x64,0x65,0x6c,0x61,0x79,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x64,0x65,0x6c,0x61,0x79,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4d,0x61,0x74,0x68,0x2e,0x6d,0x61,0x78,0x28,0x2e,0x2e,0x2e,0x64,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x64,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x74,0x6f,0x4d,0x73,0x28,0x64,0x29,0x20,0x2b,0x20,0x74,0x6f,0x4d,0x73,0x28,0x64,0x65,0x6c,0x61,0x79,0x73,0x5b,0x69,0x5d,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x4d,0x73,0x28,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x75,0x74,0x6f,0x22,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x2d,0x31,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x22,0x2c,0x22,0x2c,0x20,0x22,0x2e,0x22,0x29,0x29,0x20,0x2a,0x20,0x31,0x65,0x33,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x63,0x65,0x52,0x65,0x66,0x6c,0x6f,0x77,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x76,0x74,0x63,0x4b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x5b,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x2e,0x2e,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x5d,0x20,0x3a,0x20,0x5b,0x2e,0x2e,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x65,0x73,0x5d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x20,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x56,0x47,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x53,0x68,0x6f,0x77,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x76,0x6f,0x64,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x53,0x68,0x6f,0x77,0x48,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x76,0x73,0x68,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x53,0x68,0x6f,0x77,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x7b,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x76,0x53,0x68,0x6f,0x77,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x5d,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x20,0x3f,0x20,0x22,0x22,0x20,0x3a,0x20,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x7b,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x7b,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x21,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x62,0x65,0x66,0x6f,0x72,0x65,0x45,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x65,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x65,0x61,0x76,0x65,0x28,0x65,0x6c,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x65,0x6c,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x7b,0x0a,0x20,0x20,0x76,0x53,0x68,0x6f,0x77,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x73,0x68,0x6f,0x77,0x22,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x65,0x6c,0x5b,0x76,0x53,0x68,0x6f,0x77,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x5d,0x20,0x3a,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3b,0x0a,0x20,0x20,0x65,0x6c,0x5b,0x76,0x53,0x68,0x6f,0x77,0x48,0x69,0x64,0x64,0x65,0x6e,0x5d,0x20,0x3d,0x20,0x21,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x56,0x53,0x68,0x6f,0x77,0x46,0x6f,0x72,0x53,0x53,0x52,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x53,0x68,0x6f,0x77,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x20,0x7d,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x53,0x53,0x5f,0x56,0x41,0x52,0x5f,0x54,0x45,0x58,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x43,0x53,0x53,0x5f,0x56,0x41,0x52,0x5f,0x54,0x45,0x58,0x54,0x22,0x20,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x28,0x67,0x65,0x74,0x74,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x75,0x73,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x20,0x69,0x73,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x74,0x20,0x3d,0x20,0x28,0x76,0x61,0x72,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x41,0x6c,0x6c,0x28,0x60,0x5b,0x64,0x61,0x74,0x61,0x2d,0x76,0x2d,0x6f,0x77,0x6e,0x65,0x72,0x3d,0x22,0x24,0x7b,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x75,0x69,0x64,0x7d,0x22,0x5d,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x67,0x65,0x74,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x72,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x74,0x65,0x72,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x78,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x56,0x4e,0x6f,0x64,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x73,0x28,0x76,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x50,0x6f,0x73,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x28,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x62,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x4d,0x75,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x28,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x62,0x2e,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x2e,0x65,0x6c,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x4c,0x69,0x73,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6f,0x62,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x56,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x42,0x72,0x61,0x6e,0x63,0x68,0x20,0x26,0x26,0x20,0x21,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x69,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x65,0x66,0x66,0x65,0x63,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x56,0x4e,0x6f,0x64,0x65,0x28,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x42,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x73,0x75,0x62,0x54,0x72,0x65,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x73,0x68,0x61,0x70,0x65,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x31,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x56,0x4e,0x6f,0x64,0x65,0x28,0x63,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x65,0x6c,0x2c,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x20,0x7d,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x61,0x6e,0x63,0x68,0x6f,0x72,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x6e,0x65,0x78,0x74,0x53,0x69,0x62,0x6c,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x56,0x61,0x72,0x73,0x4f,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x76,0x61,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x60,0x2d,0x2d,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x60,0x2c,0x20,0x76,0x61,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x20,0x2b,0x3d,0x20,0x60,0x2d,0x2d,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x3a,0x20,0x24,0x7b,0x76,0x61,0x72,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x7d,0x3b,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x5b,0x43,0x53,0x53,0x5f,0x56,0x41,0x52,0x5f,0x54,0x45,0x58,0x54,0x5d,0x20,0x3d,0x20,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x52,0x45,0x20,0x3d,0x20,0x2f,0x28,0x5e,0x7c,0x3b,0x29,0x5c,0x73,0x2a,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x5c,0x73,0x2a,0x3a,0x2f,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x74,0x79,0x6c,0x65,0x28,0x65,0x6c,0x2c,0x20,0x70,0x72,0x65,0x76,0x2c,0x20,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x73,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x64,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x43,0x73,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x72,0x65,0x76,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x65,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x53,0x74,0x79,0x6c,0x65,0x20,0x6f,0x66,0x20,0x70,0x72,0x65,0x76,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x3b,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x53,0x74,0x79,0x6c,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x70,0x72,0x65,0x76,0x53,0x74,0x79,0x6c,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x22,0x3a,0x22,0x29,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x64,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x78,0x74,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x73,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x73,0x73,0x56,0x61,0x72,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x5b,0x43,0x53,0x53,0x5f,0x56,0x41,0x52,0x5f,0x54,0x45,0x58,0x54,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x73,0x73,0x56,0x61,0x72,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x20,0x2b,0x3d,0x20,0x22,0x3b,0x22,0x20,0x2b,0x20,0x63,0x73,0x73,0x56,0x61,0x72,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x64,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x53,0x68,0x6f,0x77,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x69,0x6e,0x20,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x76,0x53,0x68,0x6f,0x77,0x4f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x5d,0x20,0x3d,0x20,0x68,0x61,0x73,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x64,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3f,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3a,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x5b,0x76,0x53,0x68,0x6f,0x77,0x48,0x69,0x64,0x64,0x65,0x6e,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x5e,0x5c,0x5c,0x5d,0x3b,0x5c,0x73,0x2a,0x24,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x73,0x2a,0x21,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x24,0x2f,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x73,0x65,0x74,0x53,0x74,0x79,0x6c,0x65,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x76,0x61,0x6c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x27,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x27,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x27,0x24,0x7b,0x76,0x61,0x6c,0x7d,0x27,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x2d,0x2d,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x76,0x61,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x20,0x3d,0x20,0x61,0x75,0x74,0x6f,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x76,0x61,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x52,0x45,0x2c,0x20,0x22,0x22,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x69,0x6d,0x70,0x6f,0x72,0x74,0x61,0x6e,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x5b,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x20,0x3d,0x20,0x5b,0x22,0x57,0x65,0x62,0x6b,0x69,0x74,0x22,0x2c,0x20,0x22,0x4d,0x6f,0x7a,0x22,0x2c,0x20,0x22,0x6d,0x73,0x22,0x5d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x75,0x74,0x6f,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x73,0x74,0x79,0x6c,0x65,0x2c,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x43,0x61,0x63,0x68,0x65,0x5b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x66,0x69,0x6c,0x74,0x65,0x72,0x22,0x20,0x26,0x26,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x43,0x61,0x63,0x68,0x65,0x5b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x20,0x3d,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x73,0x5b,0x69,0x5d,0x20,0x2b,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x20,0x69,0x6e,0x20,0x73,0x74,0x79,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x43,0x61,0x63,0x68,0x65,0x5b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x78,0x6c,0x69,0x6e,0x6b,0x4e,0x53,0x20,0x3d,0x20,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x31,0x39,0x39,0x39,0x2f,0x78,0x6c,0x69,0x6e,0x6b,0x22,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x41,0x74,0x74,0x72,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x20,0x3d,0x20,0x69,0x73,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x56,0x47,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x78,0x6c,0x69,0x6e,0x6b,0x3a,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x53,0x28,0x78,0x6c,0x69,0x6e,0x6b,0x4e,0x53,0x2c,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x36,0x2c,0x20,0x6b,0x65,0x79,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x53,0x28,0x78,0x6c,0x69,0x6e,0x6b,0x4e,0x53,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x7c,0x7c,0x20,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x20,0x26,0x26,0x20,0x21,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x20,0x3f,0x20,0x22,0x22,0x20,0x3a,0x20,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x44,0x4f,0x4d,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x61,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x22,0x20,0x3f,0x20,0x75,0x6e,0x73,0x61,0x66,0x65,0x54,0x6f,0x54,0x72,0x75,0x73,0x74,0x65,0x64,0x48,0x54,0x4d,0x4c,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x67,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x26,0x26,0x20,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x50,0x52,0x4f,0x47,0x52,0x45,0x53,0x53,0x22,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x6d,0x61,0x79,0x20,0x75,0x73,0x65,0x20,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x6c,0x79,0x0a,0x20,0x20,0x21,0x74,0x61,0x67,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x4f,0x50,0x54,0x49,0x4f,0x4e,0x22,0x20,0x3f,0x20,0x65,0x6c,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x20,0x7c,0x7c,0x20,0x22,0x22,0x20,0x3a,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x31,0x31,0x36,0x34,0x37,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x20,0x61,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x61,0x6e,0x64,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x75,0x74,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x3e,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x73,0x65,0x74,0x20,0x61,0x73,0x20,0x27,0x6f,0x6e,0x27,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x3f,0x20,0x22,0x6f,0x6e,0x22,0x20,0x3a,0x20,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x21,0x28,0x22,0x5f,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x69,0x6e,0x20,0x65,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x65,0x65,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x65,0x6c,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x41,0x74,0x74,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x65,0x65,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x70,0x72,0x6f,0x70,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x6f,0x6e,0x20,0x3c,0x24,0x7b,0x74,0x61,0x67,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x7d,0x3e,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x24,0x7b,0x76,0x61,0x6c,0x75,0x65,0x7d,0x20,0x69,0x73,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6e,0x65,0x65,0x64,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x61,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6c,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x65,0x69,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x76,0x65,0x69,0x22,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x65,0x6c,0x2c,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x73,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x76,0x65,0x69,0x4b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x65,0x6c,0x5b,0x76,0x65,0x69,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x73,0x5b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x73,0x61,0x6e,0x69,0x74,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x20,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x4e,0x61,0x6d,0x65,0x28,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x73,0x5b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6e,0x69,0x74,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x73,0x5b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x28,0x3f,0x3a,0x4f,0x6e,0x63,0x65,0x7c,0x50,0x61,0x73,0x73,0x69,0x76,0x65,0x7c,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x29,0x24,0x2f,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x4e,0x61,0x6d,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6d,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x52,0x45,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x6d,0x5b,0x30,0x5d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6d,0x5b,0x30,0x5d,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x5b,0x32,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x3a,0x22,0x20,0x3f,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x33,0x29,0x20,0x3a,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5d,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x4e,0x6f,0x77,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x50,0x72,0x6f,0x6d,0x69,0x73,0x65,0x2e,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x4e,0x6f,0x77,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x4e,0x6f,0x77,0x20,0x7c,0x7c,0x20,0x28,0x70,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x4e,0x6f,0x77,0x20,0x3d,0x20,0x30,0x29,0x2c,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x4e,0x6f,0x77,0x20,0x3d,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x20,0x3d,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x2e,0x5f,0x76,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x5f,0x76,0x74,0x73,0x20,0x3d,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x65,0x2e,0x5f,0x76,0x74,0x73,0x20,0x3c,0x3d,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2e,0x61,0x74,0x74,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x65,0x5d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x2e,0x61,0x74,0x74,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x67,0x65,0x74,0x4e,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x6e,0x69,0x74,0x69,0x7a,0x65,0x45,0x76,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x60,0x57,0x72,0x6f,0x6e,0x67,0x20,0x74,0x79,0x70,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x61,0x73,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x74,0x6f,0x20,0x24,0x7b,0x70,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x7d,0x20,0x2d,0x20,0x64,0x69,0x64,0x20,0x79,0x6f,0x75,0x20,0x66,0x6f,0x72,0x67,0x65,0x74,0x20,0x40,0x20,0x6f,0x72,0x20,0x3a,0x20,0x69,0x6e,0x20,0x66,0x72,0x6f,0x6e,0x74,0x20,0x6f,0x66,0x20,0x79,0x6f,0x75,0x72,0x20,0x70,0x72,0x6f,0x70,0x3f,0x0a,0x45,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x72,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x6f,0x66,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x20,0x74,0x79,0x70,0x65,0x20,0x24,0x7b,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x75,0x65,0x7d,0x2e,0x60,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x74,0x6f,0x70,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x74,0x6f,0x70,0x20,0x3d,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x49,0x6d,0x6d,0x65,0x64,0x69,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x53,0x74,0x6f,0x70,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x2e,0x5f,0x73,0x74,0x6f,0x70,0x70,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6d,0x61,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x66,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x28,0x65,0x32,0x29,0x20,0x3d,0x3e,0x20,0x21,0x65,0x32,0x2e,0x5f,0x73,0x74,0x6f,0x70,0x70,0x65,0x64,0x20,0x26,0x26,0x20,0x66,0x6e,0x20,0x26,0x26,0x20,0x66,0x6e,0x28,0x65,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x4f,0x6e,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x31,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x31,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x30,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x6c,0x65,0x74,0x74,0x65,0x72,0x0a,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x32,0x29,0x20,0x3e,0x20,0x39,0x36,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x32,0x29,0x20,0x3c,0x20,0x31,0x32,0x33,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x56,0x47,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x53,0x74,0x79,0x6c,0x65,0x28,0x65,0x6c,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x6f,0x64,0x65,0x6c,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2e,0x22,0x20,0x3f,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x3a,0x20,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5e,0x22,0x20,0x3f,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x29,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3a,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x65,0x74,0x41,0x73,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x44,0x4f,0x4d,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x2d,0x22,0x29,0x20,0x26,0x26,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x41,0x74,0x74,0x72,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x65,0x79,0x20,0x21,0x3d,0x3d,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x31,0x31,0x30,0x38,0x31,0x20,0x66,0x6f,0x72,0x63,0x65,0x20,0x73,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x66,0x6f,0x72,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x69,0x73,0x56,0x75,0x65,0x43,0x45,0x20,0x26,0x26,0x20,0x28,0x2f,0x5b,0x41,0x2d,0x5a,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x0a,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x44,0x4f,0x4d,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x74,0x72,0x75,0x65,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x61,0x6c,0x73,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x66,0x61,0x6c,0x73,0x65,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x41,0x74,0x74,0x72,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x6e,0x65,0x78,0x74,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x53,0x65,0x74,0x41,0x73,0x50,0x72,0x6f,0x70,0x28,0x65,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x73,0x53,0x56,0x47,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x56,0x47,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x65,0x6c,0x20,0x26,0x26,0x20,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x70,0x65,0x6c,0x6c,0x63,0x68,0x65,0x63,0x6b,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x64,0x72,0x61,0x67,0x67,0x61,0x62,0x6c,0x65,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x6d,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x69,0x73,0x74,0x22,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x49,0x4e,0x50,0x55,0x54,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x79,0x70,0x65,0x22,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x45,0x58,0x54,0x41,0x52,0x45,0x41,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x77,0x69,0x64,0x74,0x68,0x22,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x68,0x65,0x69,0x67,0x68,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x67,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x49,0x4d,0x47,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x56,0x49,0x44,0x45,0x4f,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x43,0x41,0x4e,0x56,0x41,0x53,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x53,0x4f,0x55,0x52,0x43,0x45,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x4f,0x6e,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x65,0x6c,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x4d,0x4f,0x56,0x41,0x4c,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x2f,0x2a,0x21,0x20,0x23,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x0a,0x2f,0x2f,0x20,0x40,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x6f,0x6d,0x70,0x20,0x3d,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x6c,0x61,0x69,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x43,0x6f,0x6d,0x70,0x29,0x29,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x56,0x75,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x72,0x28,0x43,0x6f,0x6d,0x70,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x56,0x75,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x64,0x65,0x66,0x20,0x3d,0x20,0x43,0x6f,0x6d,0x70,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x56,0x75,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x7d,0x0a,0x2f,0x2a,0x21,0x20,0x23,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x53,0x52,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x4e,0x4f,0x5f,0x53,0x49,0x44,0x45,0x5f,0x45,0x46,0x46,0x45,0x43,0x54,0x53,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x65,0x78,0x74,0x72,0x61,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x53,0x52,0x41,0x70,0x70,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x42,0x61,0x73,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x48,0x54,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x20,0x3f,0x20,0x48,0x54,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3a,0x20,0x63,0x6c,0x61,0x73,0x73,0x20,0x7b,0x0a,0x7d,0x3b,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x20,0x42,0x61,0x73,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x5f,0x64,0x65,0x66,0x2c,0x20,0x5f,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x75,0x70,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x20,0x3d,0x20,0x5f,0x64,0x65,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x5f,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x20,0x3d,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x73,0x56,0x75,0x65,0x43,0x45,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x6f,0x6e,0x63,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x2e,0x6e,0x6f,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x26,0x26,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x20,0x21,0x3d,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x68,0x61,0x73,0x20,0x70,0x72,0x65,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x76,0x65,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x72,0x6f,0x6f,0x74,0x20,0x62,0x75,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x61,0x73,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x61,0x62,0x6c,0x65,0x2e,0x20,0x55,0x73,0x65,0x20,0x5c,0x60,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x53,0x52,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x5c,0x60,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x64,0x65,0x66,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x21,0x3d,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x68,0x53,0x68,0x61,0x64,0x6f,0x77,0x28,0x7b,0x20,0x6d,0x6f,0x64,0x65,0x3a,0x20,0x22,0x6f,0x70,0x65,0x6e,0x22,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x2e,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x4c,0x6f,0x61,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x43,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x61,0x72,0x73,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x7c,0x7c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x68,0x6f,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x2e,0x74,0x68,0x65,0x6e,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x65,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x65,0x66,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x73,0x65,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x2e,0x64,0x69,0x73,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x2e,0x75,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x69,0x6e,0x6e,0x65,0x72,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x20,0x28,0x68,0x61,0x6e,0x64,0x6c,0x65,0x20,0x70,0x6f,0x73,0x73,0x69,0x62,0x6c,0x65,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x65,0x66,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x4d,0x75,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x28,0x28,0x6d,0x75,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x20,0x6f,0x66,0x20,0x6d,0x75,0x74,0x61,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x28,0x6d,0x2e,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6f,0x62,0x2e,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x7b,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x28,0x64,0x65,0x66,0x2c,0x20,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x7d,0x20,0x3d,0x20,0x64,0x65,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x20,0x7c,0x7c,0x20,0x6f,0x70,0x74,0x20,0x26,0x26,0x20,0x6f,0x70,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x74,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x28,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x29,0x29,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x5d,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x73,0x79,0x6e,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x64,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x6c,0x79,0x53,0x74,0x79,0x6c,0x65,0x73,0x28,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x43,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x64,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x66,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x2e,0x5f,0x5f,0x61,0x73,0x79,0x6e,0x63,0x4c,0x6f,0x61,0x64,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x52,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x3d,0x20,0x61,0x73,0x79,0x6e,0x63,0x44,0x65,0x66,0x28,0x29,0x2e,0x74,0x68,0x65,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x64,0x65,0x66,0x29,0x20,0x3d,0x3e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x20,0x3d,0x20,0x64,0x65,0x66,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x64,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x28,0x64,0x65,0x66,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x66,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x41,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x75,0x72,0x65,0x41,0x70,0x70,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x2e,0x5f,0x63,0x65,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x2e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x4f,0x77,0x6e,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x6e,0x77,0x72,0x61,0x70,0x20,0x72,0x65,0x66,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x73,0x69,0x73,0x74,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x70,0x75,0x62,0x6c,0x69,0x63,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x75,0x6e,0x72,0x65,0x66,0x28,0x65,0x78,0x70,0x6f,0x73,0x65,0x64,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x45,0x78,0x70,0x6f,0x73,0x65,0x64,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x22,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x65,0x78,0x69,0x73,0x74,0x73,0x20,0x6f,0x6e,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x64,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x20,0x3d,0x20,0x64,0x65,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x50,0x72,0x6f,0x70,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3f,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3a,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x6f,0x66,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x74,0x68,0x69,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x22,0x5f,0x22,0x20,0x26,0x26,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x50,0x72,0x6f,0x70,0x4b,0x65,0x79,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x74,0x68,0x69,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x6f,0x66,0x20,0x64,0x65,0x63,0x6c,0x61,0x72,0x65,0x64,0x50,0x72,0x6f,0x70,0x4b,0x65,0x79,0x73,0x2e,0x6d,0x61,0x70,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x74,0x68,0x69,0x73,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x28,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x64,0x61,0x74,0x61,0x2d,0x76,0x2d,0x22,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x73,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x68,0x61,0x73,0x20,0x3f,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x20,0x3a,0x20,0x52,0x45,0x4d,0x4f,0x56,0x41,0x4c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x50,0x72,0x6f,0x70,0x73,0x5b,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x74,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x63,0x61,0x6d,0x65,0x6c,0x4b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x67,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x73,0x65,0x74,0x50,0x72,0x6f,0x70,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x2c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x52,0x45,0x4d,0x4f,0x56,0x41,0x4c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x76,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6b,0x65,0x79,0x22,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x2e,0x5f,0x63,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x76,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x70,0x64,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x52,0x65,0x66,0x6c,0x65,0x63,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x61,0x6c,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x2c,0x20,0x76,0x61,0x6c,0x20,0x2b,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x76,0x61,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x6b,0x65,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x29,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x2e,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x62,0x69,0x6e,0x64,0x28,0x74,0x68,0x69,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x2c,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x62,0x61,0x73,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x65,0x20,0x3d,0x20,0x28,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x69,0x73,0x43,0x45,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x52,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x20,0x28,0x6e,0x65,0x77,0x53,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x6c,0x79,0x53,0x74,0x79,0x6c,0x65,0x73,0x28,0x6e,0x65,0x77,0x53,0x74,0x79,0x6c,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x75,0x70,0x64,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x76,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x50,0x6c,0x61,0x69,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x29,0x20,0x3f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x3a,0x20,0x61,0x72,0x67,0x73,0x20,0x7d,0x2c,0x20,0x61,0x72,0x67,0x73,0x5b,0x30,0x5d,0x29,0x20,0x3a,0x20,0x7b,0x20,0x64,0x65,0x74,0x61,0x69,0x6c,0x3a,0x20,0x61,0x72,0x67,0x73,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x65,0x6d,0x69,0x74,0x20,0x3d,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x21,0x3d,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x2c,0x20,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x65,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5f,0x61,0x70,0x70,0x6c,0x79,0x53,0x74,0x79,0x6c,0x65,0x73,0x28,0x73,0x74,0x79,0x6c,0x65,0x73,0x2c,0x20,0x6f,0x77,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x77,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x77,0x6e,0x65,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x64,0x65,0x66,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x68,0x61,0x73,0x28,0x6f,0x77,0x6e,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x61,0x64,0x64,0x28,0x6f,0x77,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x63,0x65,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x6e,0x6f,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x6e,0x63,0x65,0x29,0x20,0x73,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x6e,0x6f,0x6e,0x63,0x65,0x22,0x2c,0x20,0x6e,0x6f,0x6e,0x63,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x2e,0x70,0x72,0x65,0x70,0x65,0x6e,0x64,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x77,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x6e,0x74,0x72,0x79,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x2e,0x67,0x65,0x74,0x28,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6e,0x74,0x72,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x2e,0x73,0x65,0x74,0x28,0x6f,0x77,0x6e,0x65,0x72,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x2c,0x20,0x65,0x6e,0x74,0x72,0x79,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x74,0x72,0x79,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x7c,0x7c,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x69,0x73,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x70,0x61,0x72,0x73,0x65,0x53,0x6c,0x6f,0x74,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6e,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x73,0x6c,0x6f,0x74,0x22,0x29,0x20,0x7c,0x7c,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x5d,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x29,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x4f,0x6e,0x6c,0x79,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x69,0x73,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x75,0x74,0x6c,0x65,0x74,0x73,0x20,0x3d,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x29,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x41,0x6c,0x6c,0x28,0x22,0x73,0x6c,0x6f,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6f,0x75,0x74,0x6c,0x65,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x20,0x3d,0x20,0x6f,0x75,0x74,0x6c,0x65,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6f,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x6e,0x61,0x6d,0x65,0x22,0x29,0x20,0x7c,0x7c,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x6c,0x6f,0x74,0x73,0x5b,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6f,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x20,0x6f,0x66,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x26,0x26,0x20,0x6e,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x64,0x20,0x3d,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x2b,0x20,0x22,0x2d,0x73,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x61,0x6c,0x6b,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x65,0x65,0x57,0x61,0x6c,0x6b,0x65,0x72,0x28,0x6e,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x69,0x64,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x77,0x61,0x6c,0x6b,0x65,0x72,0x2e,0x6e,0x65,0x78,0x74,0x4e,0x6f,0x64,0x65,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x69,0x64,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x6e,0x2c,0x20,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6f,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x29,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x73,0x65,0x72,0x74,0x42,0x65,0x66,0x6f,0x72,0x65,0x28,0x6f,0x2e,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2c,0x20,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x6f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x69,0x6e,0x6a,0x65,0x63,0x74,0x43,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x28,0x63,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x61,0x70,0x70,0x6c,0x79,0x53,0x74,0x79,0x6c,0x65,0x73,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x73,0x74,0x79,0x6c,0x65,0x73,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x69,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x5f,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x28,0x63,0x6f,0x6d,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x73,0x74,0x79,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x63,0x6f,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x20,0x26,0x26,0x20,0x63,0x6f,0x6d,0x70,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x63,0x68,0x69,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x2e,0x67,0x65,0x74,0x28,0x63,0x6f,0x6d,0x70,0x2e,0x5f,0x5f,0x68,0x6d,0x72,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x74,0x68,0x69,0x73,0x2e,0x5f,0x72,0x6f,0x6f,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6c,0x64,0x53,0x74,0x79,0x6c,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x28,0x63,0x61,0x6c,0x6c,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x61,0x6c,0x6c,0x65,0x72,0x20,0x7c,0x7c,0x20,0x22,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x22,0x7d,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x61,0x6e,0x20,0x61,0x63,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x61,0x6c,0x6c,0x65,0x72,0x20,0x7c,0x7c,0x20,0x22,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x22,0x7d,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x76,0x69,0x61,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x28,0x22,0x75,0x73,0x65,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x22,0x29,0x20,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x73,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x24,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x75,0x73,0x65,0x43,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x63,0x61,0x6c,0x6c,0x65,0x64,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x20,0x3d,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x5f,0x5f,0x63,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x43,0x53,0x53,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x65,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x6f,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x43,0x53,0x53,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x64,0x20,0x22,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x7d,0x22,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x6f,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x6d,0x6f,0x76,0x65,0x43,0x62,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x49,0x6d,0x70,0x6c,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x65,0x28,0x7b,0x0a,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x22,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x0a,0x20,0x20,0x7d,0x29,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x75,0x70,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x75,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x20,0x7c,0x7c,0x20,0x60,0x24,0x7b,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x22,0x76,0x22,0x7d,0x2d,0x6d,0x6f,0x76,0x65,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x43,0x53,0x53,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2e,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x63,0x61,0x6c,0x6c,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x62,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x72,0x65,0x63,0x6f,0x72,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x76,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x61,0x70,0x70,0x6c,0x79,0x54,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x63,0x65,0x52,0x65,0x66,0x6c,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x76,0x65,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x63,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x77,0x65,0x62,0x6b,0x69,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x73,0x74,0x79,0x6c,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x62,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x6d,0x6f,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x20,0x26,0x26,0x20,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x21,0x3d,0x3d,0x20,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x20,0x7c,0x7c,0x20,0x2f,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x6e,0x64,0x22,0x2c,0x20,0x63,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6d,0x6f,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x61,0x73,0x73,0x28,0x65,0x6c,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x6e,0x64,0x22,0x2c,0x20,0x63,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x74,0x6f,0x52,0x61,0x77,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x73,0x73,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x28,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x74,0x61,0x67,0x20,0x3d,0x20,0x72,0x61,0x77,0x50,0x72,0x6f,0x70,0x73,0x2e,0x74,0x61,0x67,0x20,0x7c,0x7c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x65,0x6c,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x65,0x6c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x73,0x73,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x65,0x6c,0x2e,0x67,0x65,0x74,0x42,0x6f,0x75,0x6e,0x64,0x69,0x6e,0x67,0x43,0x6c,0x69,0x65,0x6e,0x74,0x52,0x65,0x63,0x74,0x28,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x3f,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x73,0x6c,0x6f,0x74,0x73,0x2e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x29,0x20,0x3a,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6b,0x65,0x79,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x73,0x73,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x73,0x74,0x61,0x74,0x65,0x2c,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x3c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x3e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x6b,0x65,0x79,0x65,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x28,0x74,0x61,0x67,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x20,0x3d,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x49,0x6d,0x70,0x6c,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x50,0x65,0x6e,0x64,0x69,0x6e,0x67,0x43,0x62,0x73,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x63,0x2e,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x5b,0x6d,0x6f,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x6d,0x6f,0x76,0x65,0x43,0x62,0x4b,0x65,0x79,0x5d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x5b,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x65,0x6e,0x74,0x65,0x72,0x43,0x62,0x4b,0x65,0x79,0x5d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x63,0x2c,0x20,0x63,0x2e,0x65,0x6c,0x2e,0x67,0x65,0x74,0x42,0x6f,0x75,0x6e,0x64,0x69,0x6e,0x67,0x43,0x6c,0x69,0x65,0x6e,0x74,0x52,0x65,0x63,0x74,0x28,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x70,0x70,0x6c,0x79,0x54,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x20,0x3d,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x20,0x3d,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x78,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x2e,0x6c,0x65,0x66,0x74,0x20,0x2d,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x2e,0x6c,0x65,0x66,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x79,0x20,0x3d,0x20,0x6f,0x6c,0x64,0x50,0x6f,0x73,0x2e,0x74,0x6f,0x70,0x20,0x2d,0x20,0x6e,0x65,0x77,0x50,0x6f,0x73,0x2e,0x74,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x78,0x20,0x7c,0x7c,0x20,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x20,0x3d,0x20,0x63,0x2e,0x65,0x6c,0x2e,0x73,0x74,0x79,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x73,0x2e,0x77,0x65,0x62,0x6b,0x69,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x60,0x74,0x72,0x61,0x6e,0x73,0x6c,0x61,0x74,0x65,0x28,0x24,0x7b,0x64,0x78,0x7d,0x70,0x78,0x2c,0x24,0x7b,0x64,0x79,0x7d,0x70,0x78,0x29,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x2e,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x44,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x22,0x30,0x73,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x43,0x53,0x53,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x65,0x6c,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x63,0x6c,0x6f,0x6e,0x65,0x4e,0x6f,0x64,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x76,0x74,0x63,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x76,0x74,0x63,0x4b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x76,0x74,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x76,0x74,0x63,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x6c,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x20,0x26,0x26,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6d,0x6f,0x76,0x65,0x43,0x6c,0x61,0x73,0x73,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x2f,0x5c,0x73,0x2b,0x2f,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x20,0x26,0x26,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x61,0x64,0x64,0x28,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x20,0x3d,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x3f,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3a,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x61,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x7d,0x20,0x3d,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x49,0x6e,0x66,0x6f,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x68,0x61,0x73,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x20,0x3d,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6e,0x20,0x3d,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x22,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x5d,0x20,0x7c,0x7c,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x66,0x6e,0x29,0x20,0x3f,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x41,0x72,0x72,0x61,0x79,0x46,0x6e,0x73,0x28,0x66,0x6e,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x66,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x45,0x6e,0x64,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x3d,0x20,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x45,0x76,0x65,0x6e,0x74,0x28,0x6e,0x65,0x77,0x20,0x45,0x76,0x65,0x6e,0x74,0x28,0x22,0x69,0x6e,0x70,0x75,0x74,0x22,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x22,0x5f,0x61,0x73,0x73,0x69,0x67,0x6e,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x7b,0x20,0x6c,0x61,0x7a,0x79,0x2c,0x20,0x74,0x72,0x69,0x6d,0x2c,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x7d,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x73,0x74,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x20,0x3d,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x7c,0x7c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x6c,0x61,0x7a,0x79,0x20,0x3f,0x20,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x20,0x3a,0x20,0x22,0x69,0x6e,0x70,0x75,0x74,0x22,0x2c,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x73,0x74,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x28,0x64,0x6f,0x6d,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6c,0x61,0x7a,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x74,0x61,0x72,0x74,0x22,0x2c,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x6e,0x64,0x22,0x2c,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6f,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x73,0x6f,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x66,0x74,0x65,0x72,0x20,0x6d,0x69,0x6e,0x2f,0x6d,0x61,0x78,0x20,0x66,0x6f,0x72,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x72,0x61,0x6e,0x67,0x65,0x22,0x0a,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x22,0x22,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x7b,0x20,0x6c,0x61,0x7a,0x79,0x2c,0x20,0x74,0x72,0x69,0x6d,0x2c,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x7d,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x28,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x7c,0x7c,0x20,0x65,0x6c,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x26,0x26,0x20,0x21,0x2f,0x5e,0x30,0x5c,0x64,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3f,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3a,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x22,0x22,0x20,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6c,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x72,0x61,0x6e,0x67,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x7a,0x79,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x6d,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x23,0x34,0x30,0x39,0x36,0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x65,0x73,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x64,0x65,0x65,0x70,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x64,0x0a,0x20,0x20,0x64,0x65,0x65,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x5f,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x5f,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x20,0x3d,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x26,0x26,0x20,0x21,0x66,0x6f,0x75,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x26,0x26,0x20,0x66,0x6f,0x75,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x65,0x64,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x65,0x64,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x66,0x69,0x6c,0x74,0x65,0x72,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x65,0x74,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2e,0x61,0x64,0x64,0x28,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x28,0x67,0x65,0x74,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x6c,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x6f,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x74,0x6f,0x20,0x77,0x61,0x69,0x74,0x20,0x66,0x6f,0x72,0x20,0x74,0x72,0x75,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x2f,0x66,0x61,0x6c,0x73,0x65,0x2d,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x73,0x65,0x74,0x43,0x68,0x65,0x63,0x6b,0x65,0x64,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x43,0x68,0x65,0x63,0x6b,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x43,0x68,0x65,0x63,0x6b,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x68,0x61,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x67,0x65,0x74,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x6c,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x28,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x6c,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x6f,0x6c,0x64,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x3c,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x3e,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x64,0x65,0x65,0x70,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x64,0x0a,0x20,0x20,0x64,0x65,0x65,0x70,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x7b,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x7d,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x20,0x3d,0x20,0x69,0x73,0x53,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x45,0x76,0x65,0x6e,0x74,0x4c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x28,0x65,0x6c,0x2c,0x20,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x22,0x2c,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x56,0x61,0x6c,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x65,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x28,0x6f,0x29,0x20,0x3d,0x3e,0x20,0x6f,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x29,0x2e,0x6d,0x61,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6f,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x3f,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x54,0x6f,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x29,0x29,0x20,0x3a,0x20,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x3f,0x20,0x69,0x73,0x53,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x20,0x3f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x56,0x61,0x6c,0x29,0x20,0x3a,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x56,0x61,0x6c,0x20,0x3a,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x56,0x61,0x6c,0x5b,0x30,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x61,0x73,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x5f,0x61,0x73,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x69,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x26,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x3c,0x73,0x65,0x6c,0x65,0x63,0x74,0x3e,0x20,0x72,0x65,0x6c,0x69,0x65,0x73,0x20,0x6f,0x6e,0x20,0x69,0x74,0x73,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x3c,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x3e,0x73,0x2e,0x0a,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x28,0x65,0x6c,0x2c,0x20,0x5f,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x5b,0x61,0x73,0x73,0x69,0x67,0x6e,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x6f,0x64,0x65,0x6c,0x41,0x73,0x73,0x69,0x67,0x6e,0x65,0x72,0x28,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6c,0x2e,0x5f,0x61,0x73,0x73,0x69,0x67,0x6e,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x56,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3c,0x73,0x65,0x6c,0x65,0x63,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3e,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x73,0x20,0x61,0x6e,0x20,0x41,0x72,0x72,0x61,0x79,0x20,0x6f,0x72,0x20,0x53,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x69,0x74,0x73,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x62,0x75,0x74,0x20,0x67,0x6f,0x74,0x20,0x24,0x7b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x70,0x72,0x6f,0x74,0x6f,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x38,0x2c,0x20,0x2d,0x31,0x29,0x7d,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x65,0x6c,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x56,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x20,0x7c,0x7c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x76,0x29,0x20,0x3d,0x3e,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3e,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x68,0x61,0x73,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x56,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x29,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x21,0x3d,0x3d,0x20,0x69,0x29,0x20,0x65,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x26,0x26,0x20,0x65,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x21,0x3d,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x5f,0x76,0x61,0x6c,0x75,0x65,0x22,0x20,0x69,0x6e,0x20,0x65,0x6c,0x20,0x3f,0x20,0x65,0x6c,0x2e,0x5f,0x76,0x61,0x6c,0x75,0x65,0x20,0x3a,0x20,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x56,0x61,0x6c,0x75,0x65,0x28,0x65,0x6c,0x2c,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3f,0x20,0x22,0x5f,0x74,0x72,0x75,0x65,0x56,0x61,0x6c,0x75,0x65,0x22,0x20,0x3a,0x20,0x22,0x5f,0x66,0x61,0x6c,0x73,0x65,0x56,0x61,0x6c,0x75,0x65,0x22,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x65,0x6c,0x20,0x3f,0x20,0x65,0x6c,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3a,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x4d,0x6f,0x64,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x22,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x4d,0x6f,0x64,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x22,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x4d,0x6f,0x64,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x62,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x4d,0x6f,0x64,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x53,0x45,0x4c,0x45,0x43,0x54,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x54,0x45,0x58,0x54,0x41,0x52,0x45,0x41,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x72,0x61,0x64,0x69,0x6f,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x6c,0x6c,0x4d,0x6f,0x64,0x65,0x6c,0x48,0x6f,0x6f,0x6b,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x68,0x6f,0x6f,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6e,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x54,0x6f,0x55,0x73,0x65,0x5b,0x68,0x6f,0x6f,0x6b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6e,0x20,0x26,0x26,0x20,0x66,0x6e,0x28,0x65,0x6c,0x2c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x65,0x76,0x56,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x56,0x4d,0x6f,0x64,0x65,0x6c,0x46,0x6f,0x72,0x53,0x53,0x52,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x28,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x45,0x71,0x75,0x61,0x6c,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x6c,0x6f,0x6f,0x73,0x65,0x49,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x3e,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x65,0x74,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x68,0x61,0x73,0x28,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x74,0x72,0x69,0x6e,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4d,0x6f,0x64,0x65,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4d,0x6f,0x64,0x65,0x6c,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x73,0x20,0x61,0x6e,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x20,0x74,0x61,0x67,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x62,0x75,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x69,0x73,0x20,0x6c,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x2e,0x74,0x6f,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x65,0x6c,0x54,0x6f,0x55,0x73,0x65,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x54,0x6f,0x55,0x73,0x65,0x2e,0x67,0x65,0x74,0x53,0x53,0x52,0x50,0x72,0x6f,0x70,0x73,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x2c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x22,0x63,0x74,0x72,0x6c,0x22,0x2c,0x20,0x22,0x73,0x68,0x69,0x66,0x74,0x22,0x2c,0x20,0x22,0x61,0x6c,0x74,0x22,0x2c,0x20,0x22,0x6d,0x65,0x74,0x61,0x22,0x5d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x75,0x61,0x72,0x64,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x73,0x74,0x6f,0x70,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x65,0x2e,0x73,0x74,0x6f,0x70,0x50,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x2c,0x0a,0x20,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x65,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x28,0x29,0x2c,0x0a,0x20,0x20,0x73,0x65,0x6c,0x66,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x65,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x21,0x3d,0x3d,0x20,0x65,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x54,0x61,0x72,0x67,0x65,0x74,0x2c,0x0a,0x20,0x20,0x63,0x74,0x72,0x6c,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x65,0x2e,0x63,0x74,0x72,0x6c,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x73,0x68,0x69,0x66,0x74,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x65,0x2e,0x73,0x68,0x69,0x66,0x74,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x61,0x6c,0x74,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x65,0x2e,0x61,0x6c,0x74,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x6d,0x65,0x74,0x61,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x65,0x2e,0x6d,0x65,0x74,0x61,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x6c,0x65,0x66,0x74,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x6e,0x20,0x65,0x20,0x26,0x26,0x20,0x65,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x30,0x2c,0x0a,0x20,0x20,0x6d,0x69,0x64,0x64,0x6c,0x65,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x6e,0x20,0x65,0x20,0x26,0x26,0x20,0x65,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x31,0x2c,0x0a,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x69,0x6e,0x20,0x65,0x20,0x26,0x26,0x20,0x65,0x2e,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x21,0x3d,0x3d,0x20,0x32,0x2c,0x0a,0x20,0x20,0x65,0x78,0x61,0x63,0x74,0x3a,0x20,0x28,0x65,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x20,0x3d,0x3e,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x65,0x5b,0x60,0x24,0x7b,0x6d,0x7d,0x4b,0x65,0x79,0x60,0x5d,0x20,0x26,0x26,0x20,0x21,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6d,0x29,0x29,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x28,0x66,0x6e,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x66,0x6e,0x2e,0x5f,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x73,0x20,0x7c,0x7c,0x20,0x28,0x66,0x6e,0x2e,0x5f,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x63,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x5b,0x63,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x75,0x61,0x72,0x64,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x75,0x61,0x72,0x64,0x73,0x5b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x5b,0x69,0x5d,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x75,0x61,0x72,0x64,0x20,0x26,0x26,0x20,0x67,0x75,0x61,0x72,0x64,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x65,0x73,0x63,0x3a,0x20,0x22,0x65,0x73,0x63,0x61,0x70,0x65,0x22,0x2c,0x0a,0x20,0x20,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x22,0x20,0x22,0x2c,0x0a,0x20,0x20,0x75,0x70,0x3a,0x20,0x22,0x61,0x72,0x72,0x6f,0x77,0x2d,0x75,0x70,0x22,0x2c,0x0a,0x20,0x20,0x6c,0x65,0x66,0x74,0x3a,0x20,0x22,0x61,0x72,0x72,0x6f,0x77,0x2d,0x6c,0x65,0x66,0x74,0x22,0x2c,0x0a,0x20,0x20,0x72,0x69,0x67,0x68,0x74,0x3a,0x20,0x22,0x61,0x72,0x72,0x6f,0x77,0x2d,0x72,0x69,0x67,0x68,0x74,0x22,0x2c,0x0a,0x20,0x20,0x64,0x6f,0x77,0x6e,0x3a,0x20,0x22,0x61,0x72,0x72,0x6f,0x77,0x2d,0x64,0x6f,0x77,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x3a,0x20,0x22,0x62,0x61,0x63,0x6b,0x73,0x70,0x61,0x63,0x65,0x22,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x28,0x66,0x6e,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x66,0x6e,0x2e,0x5f,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x20,0x7c,0x7c,0x20,0x28,0x66,0x6e,0x2e,0x5f,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x5b,0x63,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x5b,0x63,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x22,0x6b,0x65,0x79,0x22,0x20,0x69,0x6e,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x4b,0x65,0x79,0x20,0x3d,0x20,0x68,0x79,0x70,0x68,0x65,0x6e,0x61,0x74,0x65,0x28,0x65,0x76,0x65,0x6e,0x74,0x2e,0x6b,0x65,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6b,0x29,0x20,0x3d,0x3e,0x20,0x6b,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x4b,0x65,0x79,0x20,0x7c,0x7c,0x20,0x6b,0x65,0x79,0x4e,0x61,0x6d,0x65,0x73,0x5b,0x6b,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x4b,0x65,0x79,0x0a,0x20,0x20,0x20,0x20,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x20,0x70,0x61,0x74,0x63,0x68,0x50,0x72,0x6f,0x70,0x20,0x7d,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x4f,0x70,0x73,0x29,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x7c,0x7c,0x20,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3d,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3f,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x2e,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x70,0x20,0x3d,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x43,0x68,0x65,0x63,0x6b,0x28,0x61,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x43,0x68,0x65,0x63,0x6b,0x28,0x61,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x7d,0x20,0x3d,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x61,0x70,0x70,0x2e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x4f,0x72,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x4f,0x72,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x70,0x70,0x2e,0x5f,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x26,0x26,0x20,0x21,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x26,0x26,0x20,0x21,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x78,0x79,0x20,0x3d,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x52,0x6f,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x76,0x2d,0x63,0x6c,0x6f,0x61,0x6b,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x73,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x64,0x61,0x74,0x61,0x2d,0x76,0x2d,0x61,0x70,0x70,0x22,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x78,0x79,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x53,0x52,0x41,0x70,0x70,0x20,0x3d,0x20,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x70,0x70,0x20,0x3d,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x29,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x43,0x68,0x65,0x63,0x6b,0x28,0x61,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x43,0x68,0x65,0x63,0x6b,0x28,0x61,0x70,0x70,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x7d,0x20,0x3d,0x20,0x61,0x70,0x70,0x3b,0x0a,0x20,0x20,0x61,0x70,0x70,0x2e,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x4f,0x72,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x4f,0x72,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x52,0x6f,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x70,0x70,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x52,0x6f,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x53,0x56,0x47,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x73,0x76,0x67,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x6d,0x61,0x74,0x68,0x6d,0x6c,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x43,0x68,0x65,0x63,0x6b,0x28,0x61,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x61,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x22,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x22,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x48,0x54,0x4d,0x4c,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x56,0x47,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x43,0x68,0x65,0x63,0x6b,0x28,0x61,0x70,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4f,0x6e,0x6c,0x79,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x61,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x61,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x22,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x22,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x54,0x68,0x65,0x20,0x5c,0x60,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x5c,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2e,0x20,0x55,0x73,0x65,0x20,0x5c,0x60,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x5c,0x60,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x61,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x73,0x67,0x20,0x3d,0x20,0x60,0x54,0x68,0x65,0x20,0x5c,0x60,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5c,0x60,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x72,0x65,0x73,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x56,0x75,0x65,0x2e,0x6a,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x20,0x28,0x61,0x6b,0x61,0x20,0x22,0x66,0x75,0x6c,0x6c,0x20,0x62,0x75,0x69,0x6c,0x64,0x22,0x29,0x2e,0x20,0x53,0x69,0x6e,0x63,0x65,0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2d,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x75,0x69,0x6c,0x64,0x2c,0x20,0x5c,0x60,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5c,0x60,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x70,0x61,0x73,0x73,0x65,0x64,0x20,0x74,0x6f,0x20,0x5c,0x60,0x40,0x76,0x75,0x65,0x2f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x64,0x6f,0x6d,0x5c,0x60,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x73,0x65,0x74,0x75,0x70,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x0a,0x2d,0x20,0x46,0x6f,0x72,0x20,0x76,0x75,0x65,0x2d,0x6c,0x6f,0x61,0x64,0x65,0x72,0x3a,0x20,0x70,0x61,0x73,0x73,0x20,0x69,0x74,0x20,0x76,0x69,0x61,0x20,0x76,0x75,0x65,0x2d,0x6c,0x6f,0x61,0x64,0x65,0x72,0x27,0x73,0x20,0x5c,0x60,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5c,0x60,0x20,0x6c,0x6f,0x61,0x64,0x65,0x72,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x2e,0x0a,0x2d,0x20,0x46,0x6f,0x72,0x20,0x76,0x75,0x65,0x2d,0x63,0x6c,0x69,0x3a,0x20,0x73,0x65,0x65,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x63,0x6c,0x69,0x2e,0x76,0x75,0x65,0x6a,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x67,0x75,0x69,0x64,0x65,0x2f,0x77,0x65,0x62,0x70,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x23,0x6d,0x6f,0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x2d,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x6f,0x66,0x2d,0x61,0x2d,0x6c,0x6f,0x61,0x64,0x65,0x72,0x0a,0x2d,0x20,0x46,0x6f,0x72,0x20,0x76,0x69,0x74,0x65,0x3a,0x20,0x70,0x61,0x73,0x73,0x20,0x69,0x74,0x20,0x76,0x69,0x61,0x20,0x40,0x76,0x69,0x74,0x65,0x6a,0x73,0x2f,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2d,0x76,0x75,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x20,0x53,0x65,0x65,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x76,0x69,0x74,0x65,0x6a,0x73,0x2f,0x76,0x69,0x74,0x65,0x2d,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2d,0x76,0x75,0x65,0x2f,0x74,0x72,0x65,0x65,0x2f,0x6d,0x61,0x69,0x6e,0x2f,0x70,0x61,0x63,0x6b,0x61,0x67,0x65,0x73,0x2f,0x70,0x6c,0x75,0x67,0x69,0x6e,0x2d,0x76,0x75,0x65,0x23,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2d,0x66,0x6f,0x72,0x2d,0x70,0x61,0x73,0x73,0x69,0x6e,0x67,0x2d,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2d,0x74,0x6f,0x2d,0x76,0x75,0x65,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x73,0x66,0x63,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x61,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x22,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x6d,0x73,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x6d,0x73,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x61,0x70,0x70,0x3a,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x20,0x22,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x7d,0x22,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x65,0x64,0x20,0x6e,0x75,0x6c,0x6c,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x6f,0x66,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x6f,0x73,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x6d,0x6f,0x75,0x6e,0x74,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x20,0x61,0x20,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x5c,0x60,0x7b,0x6d,0x6f,0x64,0x65,0x3a,0x20,0x22,0x63,0x6c,0x6f,0x73,0x65,0x64,0x22,0x7d,0x5c,0x60,0x20,0x6d,0x61,0x79,0x20,0x6c,0x65,0x61,0x64,0x20,0x74,0x6f,0x20,0x75,0x6e,0x70,0x72,0x65,0x64,0x69,0x63,0x74,0x61,0x62,0x6c,0x65,0x20,0x62,0x75,0x67,0x73,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x6c,0x65,0x74,0x20,0x73,0x73,0x72,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x69,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x46,0x6f,0x72,0x53,0x53,0x52,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x73,0x72,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x49,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x56,0x4d,0x6f,0x64,0x65,0x6c,0x46,0x6f,0x72,0x53,0x53,0x52,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x56,0x53,0x68,0x6f,0x77,0x46,0x6f,0x72,0x53,0x53,0x52,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x20,0x3b,0x0a,0x0a,0x76,0x61,0x72,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x6f,0x6d,0x20,0x3d,0x20,0x2f,0x2a,0x23,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x2a,0x2f,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x66,0x72,0x65,0x65,0x7a,0x65,0x28,0x7b,0x0a,0x20,0x20,0x5f,0x5f,0x70,0x72,0x6f,0x74,0x6f,0x5f,0x5f,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x3a,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x2c,0x0a,0x20,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x44,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x73,0x3a,0x20,0x44,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x73,0x2c,0x0a,0x20,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3a,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2c,0x0a,0x20,0x20,0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x73,0x3a,0x20,0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x73,0x2c,0x0a,0x20,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x3a,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x2c,0x0a,0x20,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x3a,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x2c,0x0a,0x20,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x3a,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x0a,0x20,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x3a,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x0a,0x20,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x3a,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x2c,0x0a,0x20,0x20,0x54,0x65,0x78,0x74,0x3a,0x20,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x54,0x72,0x61,0x63,0x6b,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x3a,0x20,0x54,0x72,0x61,0x63,0x6b,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x2c,0x0a,0x20,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x3a,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x2c,0x0a,0x20,0x20,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x3a,0x20,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x2c,0x0a,0x20,0x20,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x4e,0x75,0x6d,0x62,0x65,0x72,0x3a,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x0a,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x3a,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x3a,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x3a,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x2c,0x0a,0x20,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x3a,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x2c,0x0a,0x20,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x55,0x74,0x69,0x6c,0x73,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x55,0x74,0x69,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3a,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x61,0x73,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x52,0x65,0x73,0x74,0x50,0x72,0x6f,0x78,0x79,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x52,0x65,0x73,0x74,0x50,0x72,0x6f,0x78,0x79,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x53,0x52,0x41,0x70,0x70,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x53,0x52,0x41,0x70,0x70,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x3a,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x6d,0x69,0x74,0x73,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x6d,0x69,0x74,0x73,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x78,0x70,0x6f,0x73,0x65,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x78,0x70,0x6f,0x73,0x65,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x73,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x53,0x52,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x53,0x52,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x6c,0x6f,0x74,0x73,0x3a,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x3a,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x3a,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2c,0x0a,0x20,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x3a,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x3a,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x2c,0x0a,0x20,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x3a,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x2c,0x0a,0x20,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x3a,0x20,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x68,0x3a,0x20,0x68,0x2c,0x0a,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x3a,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x68,0x61,0x73,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x68,0x61,0x73,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x64,0x6c,0x65,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x64,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x4d,0x65,0x64,0x69,0x61,0x51,0x75,0x65,0x72,0x79,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x4d,0x65,0x64,0x69,0x61,0x51,0x75,0x65,0x72,0x79,0x2c,0x0a,0x20,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x3a,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x69,0x74,0x43,0x75,0x73,0x74,0x6f,0x6d,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x3a,0x20,0x69,0x6e,0x69,0x74,0x43,0x75,0x73,0x74,0x6f,0x6d,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x69,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x46,0x6f,0x72,0x53,0x53,0x52,0x3a,0x20,0x69,0x6e,0x69,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x46,0x6f,0x72,0x53,0x53,0x52,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x3a,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x3a,0x20,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x3a,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x2c,0x0a,0x20,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x0a,0x20,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x69,0x73,0x52,0x65,0x66,0x3a,0x20,0x69,0x73,0x52,0x65,0x66,0x2c,0x0a,0x20,0x20,0x69,0x73,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4f,0x6e,0x6c,0x79,0x3a,0x20,0x69,0x73,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4f,0x6e,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x3a,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x2c,0x0a,0x20,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x6d,0x61,0x72,0x6b,0x52,0x61,0x77,0x3a,0x20,0x6d,0x61,0x72,0x6b,0x52,0x61,0x77,0x2c,0x0a,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x2c,0x0a,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x3a,0x20,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x3a,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x2c,0x0a,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x3a,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x41,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x41,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x3a,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x53,0x63,0x6f,0x70,0x65,0x44,0x69,0x73,0x70,0x6f,0x73,0x65,0x3a,0x20,0x6f,0x6e,0x53,0x63,0x6f,0x70,0x65,0x44,0x69,0x73,0x70,0x6f,0x73,0x65,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x53,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x3a,0x20,0x6f,0x6e,0x53,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x3a,0x20,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x3a,0x20,0x6f,0x6e,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x2c,0x0a,0x20,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x70,0x6f,0x70,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x3a,0x20,0x70,0x6f,0x70,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x3a,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x2c,0x0a,0x20,0x20,0x70,0x72,0x6f,0x78,0x79,0x52,0x65,0x66,0x73,0x3a,0x20,0x70,0x72,0x6f,0x78,0x79,0x52,0x65,0x66,0x73,0x2c,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x3a,0x20,0x70,0x75,0x73,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x3a,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x2c,0x0a,0x20,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x0a,0x20,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x72,0x65,0x66,0x3a,0x20,0x72,0x65,0x66,0x2c,0x0a,0x20,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x3a,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2c,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x3a,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x4c,0x69,0x73,0x74,0x3a,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x4c,0x69,0x73,0x74,0x2c,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x3a,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x3a,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x2c,0x0a,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x3a,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x2c,0x0a,0x20,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x3a,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x3a,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x3a,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x2c,0x0a,0x20,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x3a,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x2c,0x0a,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x3a,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x0a,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x3a,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x3a,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x2c,0x0a,0x20,0x20,0x73,0x73,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x4b,0x65,0x79,0x3a,0x20,0x73,0x73,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x73,0x73,0x72,0x55,0x74,0x69,0x6c,0x73,0x3a,0x20,0x73,0x73,0x72,0x55,0x74,0x69,0x6c,0x73,0x2c,0x0a,0x20,0x20,0x73,0x74,0x6f,0x70,0x3a,0x20,0x73,0x74,0x6f,0x70,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x3a,0x20,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x3a,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x3a,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x52,0x61,0x77,0x3a,0x20,0x74,0x6f,0x52,0x61,0x77,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x52,0x65,0x66,0x3a,0x20,0x74,0x6f,0x52,0x65,0x66,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x52,0x65,0x66,0x73,0x3a,0x20,0x74,0x6f,0x52,0x65,0x66,0x73,0x2c,0x0a,0x20,0x20,0x74,0x6f,0x56,0x61,0x6c,0x75,0x65,0x3a,0x20,0x74,0x6f,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x4e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x4e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x2c,0x0a,0x20,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x52,0x65,0x66,0x3a,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x52,0x65,0x66,0x2c,0x0a,0x20,0x20,0x75,0x6e,0x72,0x65,0x66,0x3a,0x20,0x75,0x6e,0x72,0x65,0x66,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x41,0x74,0x74,0x72,0x73,0x3a,0x20,0x75,0x73,0x65,0x41,0x74,0x74,0x72,0x73,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x3a,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x3a,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x3a,0x20,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x49,0x64,0x3a,0x20,0x75,0x73,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x3a,0x20,0x75,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x53,0x53,0x52,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x75,0x73,0x65,0x53,0x53,0x52,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x3a,0x20,0x75,0x73,0x65,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x53,0x6c,0x6f,0x74,0x73,0x3a,0x20,0x75,0x73,0x65,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x3a,0x20,0x75,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x2c,0x0a,0x20,0x20,0x75,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x3a,0x20,0x75,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x3a,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2c,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x3a,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x2c,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x3a,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x2c,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x3a,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x3a,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x76,0x53,0x68,0x6f,0x77,0x3a,0x20,0x76,0x53,0x68,0x6f,0x77,0x2c,0x0a,0x20,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x77,0x61,0x72,0x6e,0x3a,0x20,0x77,0x61,0x72,0x6e,0x2c,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x3a,0x20,0x77,0x61,0x74,0x63,0x68,0x2c,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x45,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x77,0x61,0x74,0x63,0x68,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x50,0x6f,0x73,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x77,0x61,0x74,0x63,0x68,0x50,0x6f,0x73,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x79,0x6e,0x63,0x45,0x66,0x66,0x65,0x63,0x74,0x3a,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x79,0x6e,0x63,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3a,0x20,0x77,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x3a,0x20,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x3a,0x20,0x77,0x69,0x74,0x68,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x3a,0x20,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x4d,0x65,0x6d,0x6f,0x3a,0x20,0x77,0x69,0x74,0x68,0x4d,0x65,0x6d,0x6f,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x77,0x69,0x74,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x3a,0x20,0x77,0x69,0x74,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x69,0x74,0x44,0x65,0x76,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x69,0x6e,0x66,0x6f,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x59,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x61,0x20,0x64,0x65,0x76,0x65,0x6c,0x6f,0x70,0x6d,0x65,0x6e,0x74,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x56,0x75,0x65,0x2e,0x0a,0x4d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x28,0x2a,0x2e,0x70,0x72,0x6f,0x64,0x2e,0x6a,0x73,0x29,0x20,0x77,0x68,0x65,0x6e,0x20,0x64,0x65,0x70,0x6c,0x6f,0x79,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x69,0x74,0x43,0x75,0x73,0x74,0x6f,0x6d,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x45,0x4c,0x45,0x50,0x4f,0x52,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x55,0x53,0x50,0x45,0x4e,0x53,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4b,0x45,0x45,0x50,0x5f,0x41,0x4c,0x49,0x56,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x42,0x41,0x53,0x45,0x5f,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x54,0x45,0x58,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x53,0x54,0x41,0x54,0x49,0x43,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x56,0x4e,0x6f,0x64,0x65,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x46,0x49,0x4c,0x54,0x45,0x52,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x57,0x49,0x54,0x48,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x4c,0x49,0x53,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x4c,0x69,0x73,0x74,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x53,0x4c,0x4f,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x53,0x4c,0x4f,0x54,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x4f,0x5f,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x52,0x49,0x4e,0x47,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4d,0x45,0x52,0x47,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x43,0x4c,0x41,0x53,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x53,0x54,0x59,0x4c,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x47,0x55,0x41,0x52,0x44,0x5f,0x52,0x45,0x41,0x43,0x54,0x49,0x56,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x41,0x4d,0x45,0x4c,0x49,0x5a,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x41,0x50,0x49,0x54,0x41,0x4c,0x49,0x5a,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x5f,0x4b,0x45,0x59,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x45,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5f,0x54,0x52,0x41,0x43,0x4b,0x49,0x4e,0x47,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x50,0x55,0x53,0x48,0x5f,0x53,0x43,0x4f,0x50,0x45,0x5f,0x49,0x44,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x70,0x75,0x73,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x50,0x4f,0x50,0x5f,0x53,0x43,0x4f,0x50,0x45,0x5f,0x49,0x44,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x70,0x6f,0x70,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x57,0x49,0x54,0x48,0x5f,0x43,0x54,0x58,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x55,0x4e,0x52,0x45,0x46,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x75,0x6e,0x72,0x65,0x66,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x49,0x53,0x5f,0x52,0x45,0x46,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x69,0x73,0x52,0x65,0x66,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x57,0x49,0x54,0x48,0x5f,0x4d,0x45,0x4d,0x4f,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x77,0x69,0x74,0x68,0x4d,0x65,0x6d,0x6f,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x49,0x53,0x5f,0x4d,0x45,0x4d,0x4f,0x5f,0x53,0x41,0x4d,0x45,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5b,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x5d,0x3a,0x20,0x60,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x54,0x45,0x4c,0x45,0x50,0x4f,0x52,0x54,0x5d,0x3a,0x20,0x60,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x53,0x55,0x53,0x50,0x45,0x4e,0x53,0x45,0x5d,0x3a,0x20,0x60,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x4b,0x45,0x45,0x50,0x5f,0x41,0x4c,0x49,0x56,0x45,0x5d,0x3a,0x20,0x60,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x42,0x41,0x53,0x45,0x5f,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5d,0x3a,0x20,0x60,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5d,0x3a,0x20,0x60,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x54,0x45,0x58,0x54,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x53,0x54,0x41,0x54,0x49,0x43,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x56,0x4e,0x6f,0x64,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5d,0x3a,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x5d,0x3a,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x5d,0x3a,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x46,0x49,0x4c,0x54,0x45,0x52,0x5d,0x3a,0x20,0x60,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x57,0x49,0x54,0x48,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x53,0x5d,0x3a,0x20,0x60,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x4c,0x49,0x53,0x54,0x5d,0x3a,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x4c,0x69,0x73,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x53,0x4c,0x4f,0x54,0x5d,0x3a,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x53,0x4c,0x4f,0x54,0x53,0x5d,0x3a,0x20,0x60,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x54,0x4f,0x5f,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x52,0x49,0x4e,0x47,0x5d,0x3a,0x20,0x60,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x4d,0x45,0x52,0x47,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x5d,0x3a,0x20,0x60,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x43,0x4c,0x41,0x53,0x53,0x5d,0x3a,0x20,0x60,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x53,0x54,0x59,0x4c,0x45,0x5d,0x3a,0x20,0x60,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x5d,0x3a,0x20,0x60,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x47,0x55,0x41,0x52,0x44,0x5f,0x52,0x45,0x41,0x43,0x54,0x49,0x56,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x5d,0x3a,0x20,0x60,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x53,0x5d,0x3a,0x20,0x60,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x41,0x4d,0x45,0x4c,0x49,0x5a,0x45,0x5d,0x3a,0x20,0x60,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x43,0x41,0x50,0x49,0x54,0x41,0x4c,0x49,0x5a,0x45,0x5d,0x3a,0x20,0x60,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x5f,0x4b,0x45,0x59,0x5d,0x3a,0x20,0x60,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x53,0x45,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5f,0x54,0x52,0x41,0x43,0x4b,0x49,0x4e,0x47,0x5d,0x3a,0x20,0x60,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x50,0x55,0x53,0x48,0x5f,0x53,0x43,0x4f,0x50,0x45,0x5f,0x49,0x44,0x5d,0x3a,0x20,0x60,0x70,0x75,0x73,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x50,0x4f,0x50,0x5f,0x53,0x43,0x4f,0x50,0x45,0x5f,0x49,0x44,0x5d,0x3a,0x20,0x60,0x70,0x6f,0x70,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x57,0x49,0x54,0x48,0x5f,0x43,0x54,0x58,0x5d,0x3a,0x20,0x60,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x55,0x4e,0x52,0x45,0x46,0x5d,0x3a,0x20,0x60,0x75,0x6e,0x72,0x65,0x66,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x49,0x53,0x5f,0x52,0x45,0x46,0x5d,0x3a,0x20,0x60,0x69,0x73,0x52,0x65,0x66,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x57,0x49,0x54,0x48,0x5f,0x4d,0x45,0x4d,0x4f,0x5d,0x3a,0x20,0x60,0x77,0x69,0x74,0x68,0x4d,0x65,0x6d,0x6f,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x49,0x53,0x5f,0x4d,0x45,0x4d,0x4f,0x5f,0x53,0x41,0x4d,0x45,0x5d,0x3a,0x20,0x60,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x60,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x67,0x65,0x74,0x4f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x5b,0x73,0x5d,0x20,0x3d,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x5b,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x3a,0x20,0x7b,0x20,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x31,0x2c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x20,0x31,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x20,0x30,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x65,0x6e,0x64,0x3a,0x20,0x7b,0x20,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x31,0x2c,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x20,0x31,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x20,0x30,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x22,0x22,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x6f,0x6f,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x22,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x69,0x73,0x74,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x74,0x61,0x67,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x57,0x49,0x54,0x48,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x53,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6b,0x65,0x79,0x29,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6b,0x65,0x79,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x3a,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x3a,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3f,0x20,0x33,0x20,0x3a,0x20,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x38,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x61,0x6c,0x6c,0x65,0x65,0x2c,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x65,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x3a,0x20,0x61,0x72,0x67,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x38,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x74,0x65,0x73,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x65,0x71,0x75,0x65,0x6e,0x74,0x2c,0x20,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x73,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x65,0x71,0x75,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6e,0x65,0x65,0x64,0x50,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x32,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x50,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x41,0x72,0x72,0x61,0x79,0x53,0x70,0x72,0x65,0x61,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x28,0x62,0x6f,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x32,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x64,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x73,0x73,0x72,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x73,0x72,0x20,0x7c,0x7c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x20,0x3a,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x73,0x73,0x72,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x73,0x72,0x20,0x7c,0x7c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x20,0x3a,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x54,0x6f,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x7b,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x69,0x6e,0x53,0x53,0x52,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x31,0x32,0x33,0x2c,0x20,0x31,0x32,0x33,0x5d,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x31,0x32,0x35,0x2c,0x20,0x31,0x32,0x35,0x5d,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x54,0x61,0x67,0x53,0x74,0x61,0x72,0x74,0x43,0x68,0x61,0x72,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x20,0x3e,0x3d,0x20,0x39,0x37,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x31,0x32,0x32,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3e,0x3d,0x20,0x36,0x35,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x3d,0x20,0x39,0x30,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x37,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x7c,0x7c,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x73,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x43,0x64,0x61,0x74,0x61,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x36,0x37,0x2c,0x20,0x36,0x38,0x2c,0x20,0x36,0x35,0x2c,0x20,0x38,0x34,0x2c,0x20,0x36,0x35,0x2c,0x20,0x39,0x31,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x43,0x44,0x41,0x54,0x41,0x5b,0x0a,0x20,0x20,0x43,0x64,0x61,0x74,0x61,0x45,0x6e,0x64,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x39,0x33,0x2c,0x20,0x39,0x33,0x2c,0x20,0x36,0x32,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x5d,0x5d,0x3e,0x0a,0x20,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x45,0x6e,0x64,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x34,0x35,0x2c,0x20,0x34,0x35,0x2c,0x20,0x36,0x32,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x2d,0x2d,0x3e,0x60,0x0a,0x20,0x20,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x64,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x36,0x30,0x2c,0x20,0x34,0x37,0x2c,0x20,0x31,0x31,0x35,0x2c,0x20,0x39,0x39,0x2c,0x20,0x31,0x31,0x34,0x2c,0x20,0x31,0x30,0x35,0x2c,0x20,0x31,0x31,0x32,0x2c,0x20,0x31,0x31,0x36,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x3c,0x5c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x60,0x0a,0x20,0x20,0x53,0x74,0x79,0x6c,0x65,0x45,0x6e,0x64,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x36,0x30,0x2c,0x20,0x34,0x37,0x2c,0x20,0x31,0x31,0x35,0x2c,0x20,0x31,0x31,0x36,0x2c,0x20,0x31,0x32,0x31,0x2c,0x20,0x31,0x30,0x38,0x2c,0x20,0x31,0x30,0x31,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x3c,0x2f,0x73,0x74,0x79,0x6c,0x65,0x60,0x0a,0x20,0x20,0x54,0x69,0x74,0x6c,0x65,0x45,0x6e,0x64,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x36,0x30,0x2c,0x20,0x34,0x37,0x2c,0x20,0x31,0x31,0x36,0x2c,0x20,0x31,0x30,0x35,0x2c,0x20,0x31,0x31,0x36,0x2c,0x20,0x31,0x30,0x38,0x2c,0x20,0x31,0x30,0x31,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x60,0x0a,0x20,0x20,0x54,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x45,0x6e,0x64,0x3a,0x20,0x6e,0x65,0x77,0x20,0x55,0x69,0x6e,0x74,0x38,0x41,0x72,0x72,0x61,0x79,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x36,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x34,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x31,0x31,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x31,0x30,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x31,0x32,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x31,0x31,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x39,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x31,0x31,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x31,0x30,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x39,0x37,0x0a,0x20,0x20,0x5d,0x29,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x60,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x0a,0x7d,0x3b,0x0a,0x63,0x6c,0x61,0x73,0x73,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x6f,0x72,0x28,0x73,0x74,0x61,0x63,0x6b,0x2c,0x20,0x63,0x62,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x20,0x3d,0x20,0x63,0x62,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x54,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x74,0x68,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x20,0x69,0x73,0x20,0x69,0x6e,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x54,0x68,0x65,0x20,0x72,0x65,0x61,0x64,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x54,0x68,0x65,0x20,0x62,0x65,0x67,0x69,0x6e,0x6e,0x69,0x6e,0x67,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x72,0x65,0x61,0x64,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x54,0x68,0x65,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x77,0x69,0x74,0x68,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x74,0x68,0x61,0x74,0x20,0x77,0x65,0x20,0x61,0x72,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x6c,0x79,0x20,0x6c,0x6f,0x6f,0x6b,0x69,0x6e,0x67,0x20,0x61,0x74,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x54,0x68,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x65,0x6e,0x74,0x69,0x74,0x79,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x74,0x69,0x74,0x79,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x53,0x6f,0x6d,0x65,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2c,0x20,0x65,0x67,0x2e,0x20,0x77,0x68,0x65,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x69,0x6e,0x67,0x20,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x2c,0x20,0x69,0x73,0x20,0x64,0x6f,0x6e,0x65,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x77,0x65,0x20,0x61,0x72,0x65,0x20,0x69,0x6e,0x20,0x61,0x6e,0x6f,0x74,0x68,0x65,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x6b,0x65,0x65,0x70,0x73,0x20,0x74,0x72,0x61,0x63,0x6b,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6f,0x74,0x68,0x65,0x72,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x74,0x79,0x70,0x65,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x46,0x6f,0x72,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x6f,0x66,0x20,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x61,0x6e,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x74,0x61,0x67,0x73,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x46,0x6f,0x72,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x69,0x6e,0x67,0x20,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x74,0x61,0x67,0x73,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x58,0x4d,0x4c,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x46,0x6f,0x72,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x69,0x6e,0x67,0x20,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x69,0x6e,0x20,0x76,0x2d,0x70,0x72,0x65,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x52,0x65,0x63,0x6f,0x72,0x64,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x20,0x66,0x6f,0x72,0x20,0x66,0x61,0x73,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x2f,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x20,0x63,0x61,0x6c,0x63,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x4f,0x70,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x43,0x6c,0x6f,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x74,0x20,0x69,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x61,0x73,0x65,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x4f,0x70,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x44,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x43,0x6c,0x6f,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x6c,0x69,0x6e,0x65,0x20,0x2f,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x20,0x69,0x6e,0x66,0x6f,0x72,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x2a,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x20,0x57,0x65,0x20,0x6b,0x6e,0x6f,0x77,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x69,0x73,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x67,0x6f,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x61,0x6e,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x0a,0x20,0x20,0x20,0x2a,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x73,0x6f,0x20,0x61,0x6c,0x6c,0x20,0x74,0x68,0x65,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x20,0x75,0x70,0x20,0x74,0x6f,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x68,0x61,0x76,0x65,0x20,0x62,0x65,0x65,0x6e,0x0a,0x20,0x20,0x20,0x2a,0x20,0x72,0x65,0x63,0x6f,0x72,0x64,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x67,0x65,0x74,0x50,0x6f,0x73,0x28,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x3b,0x20,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x69,0x20,0x2b,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x20,0x69,0x6e,0x64,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x65,0x65,0x6b,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x26,0x26,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x5b,0x30,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x70,0x65,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x70,0x65,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x5b,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x20,0x2d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3e,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x5b,0x30,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x53,0x74,0x61,0x72,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x45,0x6e,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x69,0x73,0x45,0x6e,0x64,0x20,0x3f,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x49,0x66,0x20,0x77,0x65,0x20,0x61,0x72,0x65,0x20,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x65,0x6e,0x64,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2c,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x65,0x20,0x74,0x61,0x67,0x20,0x6e,0x61,0x6d,0x65,0x20,0x68,0x61,0x73,0x20,0x65,0x6e,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4f,0x74,0x68,0x65,0x72,0x77,0x69,0x73,0x65,0x2c,0x20,0x64,0x6f,0x20,0x61,0x20,0x63,0x61,0x73,0x65,0x2d,0x69,0x6e,0x73,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x69,0x73,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x63,0x20,0x7c,0x20,0x33,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x5d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x45,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x4c,0x6f,0x6f,0x6b,0x20,0x66,0x6f,0x72,0x20,0x61,0x6e,0x20,0x65,0x6e,0x64,0x20,0x74,0x61,0x67,0x2e,0x20,0x46,0x6f,0x72,0x20,0x3c,0x74,0x69,0x74,0x6c,0x65,0x3e,0x20,0x61,0x6e,0x64,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x2c,0x20,0x61,0x6c,0x73,0x6f,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x20,0x65,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x7c,0x7c,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3c,0x20,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x61,0x63,0x74,0x75,0x61,0x6c,0x49,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x20,0x2b,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x63,0x20,0x7c,0x20,0x33,0x32,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x54,0x69,0x74,0x6c,0x65,0x45,0x6e,0x64,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x54,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x45,0x6e,0x64,0x20,0x26,0x26,0x20,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x26,0x26,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x5b,0x30,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x70,0x65,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x36,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x43,0x44,0x41,0x54,0x41,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x64,0x61,0x74,0x61,0x5b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2b,0x2b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x64,0x61,0x74,0x61,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x64,0x61,0x74,0x61,0x45,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x57,0x68,0x65,0x6e,0x20,0x77,0x65,0x20,0x77,0x61,0x69,0x74,0x20,0x66,0x6f,0x72,0x20,0x6f,0x6e,0x65,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x2c,0x20,0x77,0x65,0x20,0x63,0x61,0x6e,0x20,0x73,0x70,0x65,0x65,0x64,0x20,0x74,0x68,0x69,0x6e,0x67,0x73,0x20,0x75,0x70,0x0a,0x20,0x20,0x20,0x2a,0x20,0x62,0x79,0x20,0x73,0x6b,0x69,0x70,0x70,0x69,0x6e,0x67,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x74,0x68,0x65,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x75,0x6e,0x74,0x69,0x6c,0x20,0x77,0x65,0x20,0x66,0x69,0x6e,0x64,0x20,0x69,0x74,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x40,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x57,0x68,0x65,0x74,0x68,0x65,0x72,0x20,0x74,0x68,0x65,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x77,0x61,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x2b,0x2b,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x63,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x20,0x61,0x6e,0x64,0x20,0x43,0x44,0x41,0x54,0x41,0x20,0x65,0x6e,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x60,0x2d,0x2d,0x3e,0x60,0x20,0x61,0x6e,0x64,0x20,0x60,0x5d,0x5d,0x3e,0x60,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x54,0x68,0x65,0x69,0x72,0x20,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x20,0x71,0x75,0x61,0x6c,0x69,0x74,0x69,0x65,0x73,0x20,0x61,0x72,0x65,0x3a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x54,0x68,0x65,0x69,0x72,0x20,0x65,0x6e,0x64,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x64,0x69,0x73,0x74,0x69,0x6e,0x63,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x74,0x68,0x65,0x79,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x54,0x68,0x61,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x69,0x73,0x20,0x74,0x68,0x65,0x6e,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x65,0x64,0x2c,0x20,0x73,0x6f,0x20,0x77,0x65,0x20,0x68,0x61,0x76,0x65,0x20,0x74,0x6f,0x20,0x63,0x68,0x65,0x63,0x6b,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x73,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x20,0x2d,0x20,0x41,0x6c,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x20,0x62,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x73,0x6b,0x69,0x70,0x70,0x65,0x64,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4c,0x69,0x6b,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x2b,0x2b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x64,0x61,0x74,0x61,0x45,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x63,0x64,0x61,0x74,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x5b,0x30,0x5d,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x5b,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x31,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x28,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x74,0x65,0x72,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x65,0x6e,0x74,0x65,0x72,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x61,0x67,0x53,0x74,0x61,0x72,0x74,0x43,0x68,0x61,0x72,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x58,0x4d,0x4c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x35,0x20,0x3f,0x20,0x32,0x39,0x20,0x3a,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x67,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x6e,0x74,0x65,0x72,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x74,0x6f,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x73,0x28,0x60,0x3c,0x2f,0x60,0x20,0x2b,0x20,0x74,0x61,0x67,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x74,0x61,0x67,0x6e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x28,0x31,0x34,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x69,0x73,0x54,0x61,0x67,0x53,0x74,0x61,0x72,0x74,0x43,0x68,0x61,0x72,0x28,0x63,0x29,0x20,0x3f,0x20,0x39,0x20,0x3a,0x20,0x32,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x7c,0x7c,0x20,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x74,0x61,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x41,0x66,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x41,0x66,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x74,0x61,0x67,0x65,0x6e,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x65,0x6b,0x28,0x29,0x20,0x21,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x28,0x32,0x32,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x65,0x6b,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x74,0x61,0x67,0x65,0x6e,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x38,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x65,0x6b,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x36,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x38,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x34,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x53,0x65,0x6c,0x66,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x73,0x65,0x6c,0x66,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x74,0x61,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x7c,0x7c,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x6e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x45,0x6e,0x64,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x34,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x39,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x69,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x7c,0x7c,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x45,0x6e,0x64,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x69,0x72,0x41,0x72,0x67,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x7c,0x7c,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x61,0x72,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x45,0x6e,0x64,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x61,0x72,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x44,0x69,0x72,0x41,0x72,0x67,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x7c,0x7c,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x61,0x72,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x45,0x6e,0x64,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x69,0x72,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x7c,0x7c,0x20,0x69,0x73,0x45,0x6e,0x64,0x4f,0x66,0x54,0x61,0x67,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x45,0x6e,0x64,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x64,0x69,0x72,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x45,0x6e,0x64,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x6e,0x61,0x6d,0x65,0x65,0x6e,0x64,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x41,0x66,0x74,0x65,0x72,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x41,0x66,0x74,0x65,0x72,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x37,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x65,0x6e,0x64,0x28,0x30,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x65,0x6e,0x64,0x28,0x30,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x4e,0x6f,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x2c,0x20,0x71,0x75,0x6f,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x71,0x75,0x6f,0x74,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x64,0x61,0x74,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x34,0x20,0x3f,0x20,0x33,0x20,0x3a,0x20,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x44,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x2c,0x20,0x33,0x34,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x53,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x2c,0x20,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x4e,0x6f,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x29,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x64,0x61,0x74,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x65,0x6e,0x64,0x28,0x31,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x34,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x39,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x30,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x31,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x72,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x38,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x35,0x20,0x3f,0x20,0x32,0x35,0x20,0x3a,0x20,0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x36,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x36,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x69,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x45,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x32,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x61,0x73,0x74,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x54,0x6f,0x28,0x36,0x32,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x53,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x64,0x5b,0x33,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x72,0x74,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x28,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x53,0x63,0x72,0x69,0x70,0x74,0x45,0x6e,0x64,0x2c,0x20,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x53,0x74,0x79,0x6c,0x65,0x45,0x6e,0x64,0x5b,0x33,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x72,0x74,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x28,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x53,0x74,0x79,0x6c,0x65,0x45,0x6e,0x64,0x2c,0x20,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x54,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x54,0x69,0x74,0x6c,0x65,0x45,0x6e,0x64,0x5b,0x33,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x72,0x74,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x28,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x54,0x69,0x74,0x6c,0x65,0x45,0x6e,0x64,0x2c,0x20,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x54,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x45,0x6e,0x64,0x5b,0x33,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x72,0x74,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x28,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x54,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x45,0x6e,0x64,0x2c,0x20,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x45,0x6e,0x74,0x69,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x45,0x6e,0x74,0x69,0x74,0x79,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x49,0x74,0x65,0x72,0x61,0x74,0x65,0x73,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x74,0x68,0x65,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x72,0x72,0x65,0x73,0x70,0x6f,0x6e,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x53,0x74,0x61,0x74,0x65,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x61,0x72,0x65,0x20,0x6d,0x6f,0x72,0x65,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x68,0x69,0x74,0x20,0x61,0x72,0x65,0x20,0x68,0x69,0x67,0x68,0x65,0x72,0x20,0x75,0x70,0x2c,0x20,0x61,0x73,0x20,0x61,0x20,0x70,0x65,0x72,0x66,0x6f,0x72,0x6d,0x61,0x6e,0x63,0x65,0x20,0x69,0x6d,0x70,0x72,0x6f,0x76,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x70,0x65,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x31,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x53,0x74,0x61,0x72,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x32,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x36,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x43,0x44,0x41,0x54,0x41,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x39,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x44,0x6f,0x75,0x62,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x33,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x69,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x34,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x69,0x72,0x41,0x72,0x67,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x35,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x44,0x69,0x72,0x41,0x72,0x67,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x36,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x69,0x72,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x38,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x4c,0x69,0x6b,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x37,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x34,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x37,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x41,0x66,0x74,0x65,0x72,0x41,0x74,0x74,0x72,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x30,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x53,0x69,0x6e,0x67,0x6c,0x65,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x38,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x38,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x41,0x66,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x39,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x53,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x30,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x54,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x31,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x4e,0x6f,0x51,0x75,0x6f,0x74,0x65,0x73,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x37,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x53,0x65,0x6c,0x66,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x54,0x61,0x67,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x33,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x32,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x44,0x65,0x63,0x6c,0x61,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x35,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x42,0x65,0x66,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x34,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x50,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x49,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x28,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x33,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x49,0x6e,0x45,0x6e,0x74,0x69,0x74,0x79,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x69,0x6e,0x69,0x73,0x68,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x0a,0x20,0x20,0x20,0x2a,0x20,0x52,0x65,0x6d,0x6f,0x76,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x62,0x65,0x65,0x6e,0x20,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x74,0x68,0x65,0x20,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x0a,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x63,0x6c,0x65,0x61,0x6e,0x75,0x70,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x21,0x3d,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x20,0x26,0x26,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x30,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x64,0x61,0x74,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x69,0x6e,0x69,0x73,0x68,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x54,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x65,0x6e,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x2f,0x2a,0x2a,0x20,0x48,0x61,0x6e,0x64,0x6c,0x65,0x20,0x61,0x6e,0x79,0x20,0x74,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x20,0x64,0x61,0x74,0x61,0x2e,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x54,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x44,0x61,0x74,0x61,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x62,0x75,0x66,0x66,0x65,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x3e,0x3d,0x20,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x64,0x61,0x74,0x61,0x45,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x63,0x64,0x61,0x74,0x61,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x38,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x37,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x36,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x30,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x31,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x62,0x73,0x2e,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x65,0x6d,0x69,0x74,0x43,0x6f,0x64,0x65,0x50,0x6f,0x69,0x6e,0x74,0x28,0x63,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x57,0x61,0x72,0x6e,0x28,0x6d,0x73,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x77,0x61,0x72,0x6e,0x28,0x60,0x5b,0x56,0x75,0x65,0x20,0x77,0x61,0x72,0x6e,0x5d,0x20,0x24,0x7b,0x6d,0x73,0x67,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2c,0x20,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x73,0x67,0x20,0x3d,0x20,0x28,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x7c,0x7c,0x20,0x65,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x29,0x5b,0x63,0x6f,0x64,0x65,0x5d,0x20,0x2b,0x20,0x28,0x61,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7c,0x7c,0x20,0x60,0x60,0x29,0x20,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6d,0x73,0x67,0x29,0x29,0x3b,0x0a,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x63,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x0a,0x20,0x20,0x5b,0x30,0x5d,0x3a,0x20,0x22,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x5d,0x3a,0x20,0x22,0x43,0x44,0x41,0x54,0x41,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x69,0x6e,0x20,0x58,0x4d,0x4c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x5d,0x3a,0x20,0x22,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x5d,0x3a,0x20,0x22,0x45,0x6e,0x64,0x20,0x74,0x61,0x67,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x5d,0x3a,0x20,0x22,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x20,0x27,0x2f,0x27,0x20,0x69,0x6e,0x20,0x74,0x61,0x67,0x73,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x45,0x4f,0x46,0x20,0x69,0x6e,0x20,0x74,0x61,0x67,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x45,0x4f,0x46,0x20,0x69,0x6e,0x20,0x43,0x44,0x41,0x54,0x41,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x37,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x45,0x4f,0x46,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x38,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x45,0x4f,0x46,0x20,0x69,0x6e,0x20,0x73,0x63,0x72,0x69,0x70,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x39,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x45,0x4f,0x46,0x20,0x69,0x6e,0x20,0x74,0x61,0x67,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x30,0x5d,0x3a,0x20,0x22,0x49,0x6e,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x63,0x6c,0x6f,0x73,0x65,0x64,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x31,0x5d,0x3a,0x20,0x22,0x49,0x6e,0x63,0x6f,0x72,0x72,0x65,0x63,0x74,0x6c,0x79,0x20,0x6f,0x70,0x65,0x6e,0x65,0x64,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x32,0x5d,0x3a,0x20,0x22,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x20,0x74,0x61,0x67,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x20,0x55,0x73,0x65,0x20,0x27,0x26,0x6c,0x74,0x3b,0x27,0x20,0x74,0x6f,0x20,0x70,0x72,0x69,0x6e,0x74,0x20,0x27,0x3c,0x27,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x33,0x5d,0x3a,0x20,0x22,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x77,0x61,0x73,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x34,0x5d,0x3a,0x20,0x22,0x45,0x6e,0x64,0x20,0x74,0x61,0x67,0x20,0x6e,0x61,0x6d,0x65,0x20,0x77,0x61,0x73,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x35,0x5d,0x3a,0x20,0x22,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x77,0x61,0x73,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x36,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x27,0x3c,0x21,0x2d,0x2d,0x27,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x37,0x5d,0x3a,0x20,0x60,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x55,0x2b,0x30,0x30,0x32,0x32,0x20,0x28,0x22,0x29,0x2c,0x20,0x55,0x2b,0x30,0x30,0x32,0x37,0x20,0x28,0x27,0x29,0x2c,0x20,0x61,0x6e,0x64,0x20,0x55,0x2b,0x30,0x30,0x33,0x43,0x20,0x28,0x3c,0x29,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x38,0x5d,0x3a,0x20,0x22,0x55,0x6e,0x71,0x75,0x6f,0x74,0x65,0x64,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x55,0x2b,0x30,0x30,0x32,0x32,0x20,0x28,0x5c,0x22,0x29,0x2c,0x20,0x55,0x2b,0x30,0x30,0x32,0x37,0x20,0x28,0x27,0x29,0x2c,0x20,0x55,0x2b,0x30,0x30,0x33,0x43,0x20,0x28,0x3c,0x29,0x2c,0x20,0x55,0x2b,0x30,0x30,0x33,0x44,0x20,0x28,0x3d,0x29,0x2c,0x20,0x61,0x6e,0x64,0x20,0x55,0x2b,0x30,0x30,0x36,0x30,0x20,0x28,0x60,0x29,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x31,0x39,0x5d,0x3a,0x20,0x22,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x27,0x3d,0x27,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x31,0x5d,0x3a,0x20,0x22,0x27,0x3c,0x3f,0x27,0x20,0x69,0x73,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x69,0x6e,0x20,0x58,0x4d,0x4c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x30,0x5d,0x3a,0x20,0x60,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x32,0x5d,0x3a,0x20,0x22,0x49,0x6c,0x6c,0x65,0x67,0x61,0x6c,0x20,0x27,0x2f,0x27,0x20,0x69,0x6e,0x20,0x74,0x61,0x67,0x73,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x56,0x75,0x65,0x2d,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x70,0x61,0x72,0x73,0x65,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x0a,0x20,0x20,0x5b,0x32,0x33,0x5d,0x3a,0x20,0x22,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x65,0x6e,0x64,0x20,0x74,0x61,0x67,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x34,0x5d,0x3a,0x20,0x22,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x6e,0x64,0x20,0x74,0x61,0x67,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x35,0x5d,0x3a,0x20,0x22,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x64,0x20,0x73,0x69,0x67,0x6e,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x37,0x5d,0x3a,0x20,0x22,0x45,0x6e,0x64,0x20,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x20,0x66,0x6f,0x72,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x20,0x4e,0x6f,0x74,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x20,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x36,0x5d,0x3a,0x20,0x22,0x4c,0x65,0x67,0x61,0x6c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x6e,0x61,0x6d,0x65,0x20,0x77,0x61,0x73,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x2e,0x22,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x0a,0x20,0x20,0x5b,0x32,0x38,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x69,0x66,0x2f,0x76,0x2d,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x32,0x39,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x69,0x66,0x2f,0x65,0x6c,0x73,0x65,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x20,0x6d,0x75,0x73,0x74,0x20,0x75,0x73,0x65,0x20,0x75,0x6e,0x69,0x71,0x75,0x65,0x20,0x6b,0x65,0x79,0x73,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x30,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x65,0x6c,0x73,0x65,0x2f,0x76,0x2d,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x20,0x68,0x61,0x73,0x20,0x6e,0x6f,0x20,0x61,0x64,0x6a,0x61,0x63,0x65,0x6e,0x74,0x20,0x76,0x2d,0x69,0x66,0x20,0x6f,0x72,0x20,0x76,0x2d,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x31,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x66,0x6f,0x72,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x32,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x66,0x6f,0x72,0x20,0x68,0x61,0x73,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x33,0x5d,0x3a,0x20,0x60,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3e,0x20,0x6b,0x65,0x79,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x70,0x6c,0x61,0x63,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x20,0x74,0x61,0x67,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x34,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x62,0x69,0x6e,0x64,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x32,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x62,0x69,0x6e,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x61,0x6d,0x65,0x2d,0x6e,0x61,0x6d,0x65,0x20,0x73,0x68,0x6f,0x72,0x74,0x68,0x61,0x6e,0x64,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x73,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x35,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x36,0x5d,0x3a,0x20,0x60,0x55,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x20,0x6f,0x6e,0x20,0x3c,0x73,0x6c,0x6f,0x74,0x3e,0x20,0x6f,0x75,0x74,0x6c,0x65,0x74,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x37,0x5d,0x3a,0x20,0x60,0x4d,0x69,0x78,0x65,0x64,0x20,0x76,0x2d,0x73,0x6c,0x6f,0x74,0x20,0x75,0x73,0x61,0x67,0x65,0x20,0x6f,0x6e,0x20,0x62,0x6f,0x74,0x68,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x61,0x6e,0x64,0x20,0x6e,0x65,0x73,0x74,0x65,0x64,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x2e,0x20,0x57,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x72,0x65,0x20,0x61,0x72,0x65,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x20,0x6e,0x61,0x6d,0x65,0x64,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x61,0x6c,0x6c,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x75,0x73,0x65,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x20,0x73,0x79,0x6e,0x74,0x61,0x78,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x73,0x63,0x6f,0x70,0x65,0x20,0x61,0x6d,0x62,0x69,0x67,0x75,0x69,0x74,0x79,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x38,0x5d,0x3a,0x20,0x60,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x20,0x73,0x6c,0x6f,0x74,0x20,0x6e,0x61,0x6d,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x20,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x33,0x39,0x5d,0x3a,0x20,0x60,0x45,0x78,0x74,0x72,0x61,0x6e,0x65,0x6f,0x75,0x73,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x68,0x61,0x73,0x20,0x65,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x6c,0x79,0x20,0x6e,0x61,0x6d,0x65,0x64,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x20,0x54,0x68,0x65,0x73,0x65,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x30,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x73,0x6c,0x6f,0x74,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x6f,0x72,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x20,0x74,0x61,0x67,0x73,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x31,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x32,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x61,0x20,0x76,0x61,0x6c,0x69,0x64,0x20,0x4a,0x61,0x76,0x61,0x53,0x63,0x72,0x69,0x70,0x74,0x20,0x6d,0x65,0x6d,0x62,0x65,0x72,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x33,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x76,0x2d,0x66,0x6f,0x72,0x20,0x6f,0x72,0x20,0x76,0x2d,0x73,0x6c,0x6f,0x74,0x20,0x73,0x63,0x6f,0x70,0x65,0x20,0x76,0x61,0x72,0x69,0x61,0x62,0x6c,0x65,0x73,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x79,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x34,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x61,0x20,0x70,0x72,0x6f,0x70,0x2c,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x20,0x70,0x72,0x6f,0x70,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x74,0x20,0x77,0x72,0x69,0x74,0x61,0x62,0x6c,0x65,0x2e,0x0a,0x55,0x73,0x65,0x20,0x61,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x76,0x2d,0x6f,0x6e,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x74,0x68,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x78,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x35,0x5d,0x3a,0x20,0x60,0x45,0x72,0x72,0x6f,0x72,0x20,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x20,0x4a,0x61,0x76,0x61,0x53,0x63,0x72,0x69,0x70,0x74,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x3a,0x20,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x36,0x5d,0x3a,0x20,0x60,0x3c,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x3e,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x6f,0x6e,0x65,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x31,0x5d,0x3a,0x20,0x60,0x40,0x76,0x6e,0x6f,0x64,0x65,0x2d,0x2a,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x69,0x6e,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x6e,0x6f,0x20,0x6c,0x6f,0x6e,0x67,0x65,0x72,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x2e,0x20,0x55,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x76,0x75,0x65,0x3a,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x20,0x46,0x6f,0x72,0x20,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x2c,0x20,0x40,0x76,0x6e,0x6f,0x64,0x65,0x2d,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x64,0x20,0x74,0x6f,0x20,0x40,0x76,0x75,0x65,0x3a,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2e,0x20,0x40,0x76,0x6e,0x6f,0x64,0x65,0x2d,0x2a,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x20,0x68,0x61,0x73,0x20,0x62,0x65,0x65,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x69,0x6e,0x20,0x33,0x2e,0x34,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x67,0x65,0x6e,0x65,0x72,0x69,0x63,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x0a,0x20,0x20,0x5b,0x34,0x37,0x5d,0x3a,0x20,0x60,0x22,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x38,0x5d,0x3a,0x20,0x60,0x45,0x53,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x65,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x74,0x68,0x69,0x73,0x20,0x62,0x75,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x34,0x39,0x5d,0x3a,0x20,0x60,0x22,0x63,0x61,0x63,0x68,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x20,0x22,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x30,0x5d,0x3a,0x20,0x60,0x22,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x22,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x69,0x6e,0x20,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x20,0x6d,0x6f,0x64,0x65,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6a,0x75,0x73,0x74,0x20,0x74,0x6f,0x20,0x66,0x75,0x6c,0x66,0x69,0x6c,0x6c,0x20,0x74,0x79,0x70,0x65,0x73,0x0a,0x20,0x20,0x5b,0x35,0x33,0x5d,0x3a,0x20,0x60,0x60,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x20,0x3d,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x70,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x43,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x74,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x45,0x4c,0x45,0x50,0x4f,0x52,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x73,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x53,0x55,0x53,0x50,0x45,0x4e,0x53,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x6b,0x65,0x65,0x70,0x2d,0x61,0x6c,0x69,0x76,0x65,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4b,0x45,0x45,0x50,0x5f,0x41,0x4c,0x49,0x56,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x62,0x61,0x73,0x65,0x2d,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x42,0x41,0x53,0x45,0x5f,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x5c,0x64,0x7c,0x5b,0x5e,0x5c,0x24,0x5c,0x77,0x5c,0x78,0x41,0x30,0x2d,0x5c,0x75,0x46,0x46,0x46,0x46,0x5d,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x69,0x6d,0x70,0x6c,0x65,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x20,0x3d,0x20,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3d,0x3e,0x20,0x21,0x6e,0x6f,0x6e,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x46,0x69,0x72,0x73,0x74,0x49,0x64,0x65,0x6e,0x74,0x43,0x68,0x61,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x41,0x2d,0x5a,0x61,0x2d,0x7a,0x5f,0x24,0x5c,0x78,0x41,0x30,0x2d,0x5c,0x75,0x46,0x46,0x46,0x46,0x5d,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x49,0x64,0x65,0x6e,0x74,0x43,0x68,0x61,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5b,0x5c,0x2e,0x5c,0x3f,0x5c,0x77,0x24,0x5c,0x78,0x41,0x30,0x2d,0x5c,0x75,0x46,0x46,0x46,0x46,0x5d,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x73,0x2b,0x5b,0x2e,0x5b,0x5d,0x5c,0x73,0x2a,0x7c,0x5c,0x73,0x2a,0x5b,0x2e,0x5b,0x5d,0x5c,0x73,0x2b,0x2f,0x67,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x74,0x45,0x78,0x70,0x53,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x3d,0x3e,0x20,0x65,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x3f,0x20,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x3d,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x20,0x3d,0x20,0x67,0x65,0x74,0x45,0x78,0x70,0x53,0x6f,0x75,0x72,0x63,0x65,0x28,0x65,0x78,0x70,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x52,0x45,0x2c,0x20,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x73,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x61,0x74,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x61,0x72,0x20,0x3d,0x20,0x70,0x61,0x74,0x68,0x2e,0x63,0x68,0x61,0x72,0x41,0x74,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x30,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x5b,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x31,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x28,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x32,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x3f,0x20,0x76,0x61,0x6c,0x69,0x64,0x46,0x69,0x72,0x73,0x74,0x49,0x64,0x65,0x6e,0x74,0x43,0x68,0x61,0x72,0x52,0x45,0x20,0x3a,0x20,0x76,0x61,0x6c,0x69,0x64,0x49,0x64,0x65,0x6e,0x74,0x43,0x68,0x61,0x72,0x52,0x45,0x29,0x2e,0x74,0x65,0x73,0x74,0x28,0x63,0x68,0x61,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x73,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x27,0x60,0x20,0x7c,0x7c,0x20,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x22,0x60,0x20,0x7c,0x7c,0x20,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x60,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x5b,0x60,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x5d,0x60,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2d,0x2d,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x43,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x27,0x60,0x20,0x7c,0x7c,0x20,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x22,0x60,0x20,0x7c,0x7c,0x20,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x60,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x74,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x33,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x28,0x60,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x29,0x60,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x61,0x74,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x2d,0x2d,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x20,0x2f,0x2a,0x20,0x69,0x6e,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x2a,0x2f,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x61,0x72,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x74,0x65,0x53,0x74,0x61,0x63,0x6b,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x42,0x72,0x61,0x63,0x6b,0x65,0x74,0x43,0x6f,0x75,0x6e,0x74,0x20,0x26,0x26,0x20,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x50,0x61,0x72,0x65,0x6e,0x73,0x43,0x6f,0x75,0x6e,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6e,0x45,0x78,0x70,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x5c,0x73,0x2a,0x28,0x61,0x73,0x79,0x6e,0x63,0x5c,0x73,0x2a,0x29,0x3f,0x28,0x5c,0x28,0x5b,0x5e,0x29,0x5d,0x2a,0x3f,0x5c,0x29,0x7c,0x5b,0x5c,0x77,0x24,0x5f,0x5d,0x2b,0x29,0x5c,0x73,0x2a,0x28,0x3a,0x5b,0x5e,0x3d,0x5d,0x2b,0x29,0x3f,0x3d,0x3e,0x7c,0x5e,0x5c,0x73,0x2a,0x28,0x61,0x73,0x79,0x6e,0x63,0x5c,0x73,0x2b,0x29,0x3f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x3f,0x3a,0x5c,0x73,0x2b,0x5b,0x5c,0x77,0x24,0x5d,0x2b,0x29,0x3f,0x5c,0x73,0x2a,0x5c,0x28,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x46,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x3d,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x3d,0x3e,0x20,0x66,0x6e,0x45,0x78,0x70,0x52,0x45,0x2e,0x74,0x65,0x73,0x74,0x28,0x67,0x65,0x74,0x45,0x78,0x70,0x53,0x6f,0x75,0x72,0x63,0x65,0x28,0x65,0x78,0x70,0x29,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x46,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x69,0x73,0x46,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x28,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6d,0x73,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x6d,0x73,0x67,0x20,0x7c,0x7c,0x20,0x60,0x75,0x6e,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x45,0x6d,0x70,0x74,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x28,0x61,0x6c,0x6c,0x6f,0x77,0x45,0x6d,0x70,0x74,0x79,0x20,0x7c,0x7c,0x20,0x70,0x2e,0x65,0x78,0x70,0x29,0x20,0x26,0x26,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3f,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4f,0x6e,0x6c,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x45,0x6d,0x70,0x74,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4f,0x6e,0x6c,0x79,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x28,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x7c,0x7c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x45,0x6d,0x70,0x74,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x20,0x26,0x26,0x20,0x28,0x70,0x2e,0x65,0x78,0x70,0x20,0x7c,0x7c,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x45,0x6d,0x70,0x74,0x79,0x29,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x70,0x2e,0x61,0x72,0x67,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x61,0x72,0x67,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x21,0x21,0x28,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x61,0x72,0x67,0x29,0x20,0x26,0x26,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x56,0x42,0x69,0x6e,0x64,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x20,0x26,0x26,0x20,0x28,0x21,0x70,0x2e,0x61,0x72,0x67,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x3d,0x22,0x6f,0x62,0x6a,0x22,0x0a,0x20,0x20,0x20,0x20,0x70,0x2e,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x34,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x3a,0x5b,0x5f,0x63,0x74,0x78,0x2e,0x66,0x6f,0x6f,0x5d,0x0a,0x20,0x20,0x20,0x20,0x21,0x70,0x2e,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x3a,0x5b,0x66,0x6f,0x6f,0x5d,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x54,0x65,0x78,0x74,0x24,0x31,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x56,0x53,0x6c,0x6f,0x74,0x28,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x53,0x65,0x74,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x2c,0x20,0x47,0x55,0x41,0x52,0x44,0x5f,0x52,0x45,0x41,0x43,0x54,0x49,0x56,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x5d,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x55,0x6e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x61,0x6c,0x6c,0x65,0x65,0x29,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x53,0x65,0x74,0x2e,0x68,0x61,0x73,0x28,0x63,0x61,0x6c,0x6c,0x65,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x55,0x6e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x5d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x55,0x6e,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x72,0x65,0x74,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x20,0x3d,0x20,0x72,0x65,0x74,0x5b,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x20,0x3d,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x5b,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x70,0x72,0x6f,0x70,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x66,0x69,0x72,0x73,0x74,0x29,0x20,0x26,0x26,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x50,0x72,0x6f,0x70,0x28,0x70,0x72,0x6f,0x70,0x2c,0x20,0x66,0x69,0x72,0x73,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x53,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4d,0x45,0x52,0x47,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x70,0x72,0x6f,0x70,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x70,0x72,0x6f,0x70,0x5d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x21,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x26,0x26,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x50,0x72,0x6f,0x70,0x28,0x70,0x72,0x6f,0x70,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4d,0x45,0x52,0x47,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x70,0x72,0x6f,0x70,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x47,0x55,0x41,0x52,0x44,0x5f,0x52,0x45,0x41,0x43,0x54,0x49,0x56,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x20,0x3d,0x20,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x5b,0x63,0x61,0x6c,0x6c,0x50,0x61,0x74,0x68,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x32,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x61,0x6c,0x6c,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x32,0x5d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x57,0x69,0x74,0x68,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x50,0x72,0x6f,0x70,0x28,0x70,0x72,0x6f,0x70,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x4b,0x65,0x79,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x70,0x72,0x6f,0x70,0x4b,0x65,0x79,0x4e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x56,0x61,0x6c,0x69,0x64,0x41,0x73,0x73,0x65,0x74,0x49,0x64,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x5f,0x24,0x7b,0x74,0x79,0x70,0x65,0x7d,0x5f,0x24,0x7b,0x6e,0x61,0x6d,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5b,0x5e,0x5c,0x77,0x5d,0x2f,0x67,0x2c,0x20,0x28,0x73,0x65,0x61,0x72,0x63,0x68,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x65,0x61,0x72,0x63,0x68,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2d,0x22,0x20,0x3f,0x20,0x22,0x5f,0x22,0x20,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x56,0x61,0x6c,0x75,0x65,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x7d,0x60,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x4d,0x65,0x6d,0x6f,0x65,0x64,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x57,0x49,0x54,0x48,0x5f,0x4d,0x45,0x4d,0x4f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x31,0x5d,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x41,0x6c,0x69,0x61,0x73,0x52,0x45,0x20,0x3d,0x20,0x2f,0x28,0x5b,0x5c,0x73,0x5c,0x53,0x5d,0x2a,0x3f,0x29,0x5c,0x73,0x2b,0x28,0x3f,0x3a,0x69,0x6e,0x7c,0x6f,0x66,0x29,0x5c,0x73,0x2b,0x28,0x5c,0x53,0x5b,0x5c,0x73,0x5c,0x53,0x5d,0x2a,0x29,0x2f,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x50,0x61,0x72,0x73,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x3a,0x20,0x22,0x62,0x61,0x73,0x65,0x22,0x2c,0x0a,0x20,0x20,0x6e,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x3a,0x20,0x5b,0x60,0x7b,0x7b,0x60,0x2c,0x20,0x60,0x7d,0x7d,0x60,0x5d,0x2c,0x0a,0x20,0x20,0x67,0x65,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x30,0x2c,0x0a,0x20,0x20,0x69,0x73,0x56,0x6f,0x69,0x64,0x54,0x61,0x67,0x3a,0x20,0x4e,0x4f,0x2c,0x0a,0x20,0x20,0x69,0x73,0x50,0x72,0x65,0x54,0x61,0x67,0x3a,0x20,0x4e,0x4f,0x2c,0x0a,0x20,0x20,0x69,0x73,0x49,0x67,0x6e,0x6f,0x72,0x65,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x54,0x61,0x67,0x3a,0x20,0x4e,0x4f,0x2c,0x0a,0x20,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3a,0x20,0x4e,0x4f,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x3a,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x3a,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x57,0x61,0x72,0x6e,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x7d,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x50,0x61,0x72,0x73,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x69,0x6e,0x50,0x72,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x50,0x72,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x63,0x6b,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x54,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x28,0x73,0x74,0x61,0x63,0x6b,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x6f,0x6e,0x65,0x72,0x72,0x3a,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x54,0x65,0x78,0x74,0x28,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x74,0x65,0x78,0x74,0x65,0x6e,0x74,0x69,0x74,0x79,0x28,0x63,0x68,0x61,0x72,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x54,0x65,0x78,0x74,0x28,0x63,0x68,0x61,0x72,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x69,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x56,0x50,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x6e,0x54,0x65,0x78,0x74,0x28,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x6e,0x6e,0x65,0x72,0x53,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x6e,0x6e,0x65,0x72,0x45,0x6e,0x64,0x20,0x3d,0x20,0x65,0x6e,0x64,0x20,0x2d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x6e,0x6e,0x65,0x72,0x53,0x74,0x61,0x72,0x74,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6e,0x65,0x72,0x53,0x74,0x61,0x72,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x6e,0x6e,0x65,0x72,0x45,0x6e,0x64,0x20,0x2d,0x20,0x31,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6e,0x65,0x72,0x45,0x6e,0x64,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x69,0x6e,0x6e,0x65,0x72,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x45,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x26,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x28,0x65,0x78,0x70,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4e,0x6f,0x64,0x65,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x78,0x70,0x28,0x65,0x78,0x70,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x69,0x6e,0x6e,0x65,0x72,0x53,0x74,0x61,0x72,0x74,0x2c,0x20,0x69,0x6e,0x6e,0x65,0x72,0x45,0x6e,0x64,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x74,0x61,0x67,0x6e,0x61,0x6d,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x73,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x67,0x65,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x72,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x61,0x67,0x20,0x63,0x6c,0x6f,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x31,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x6f,0x70,0x65,0x6e,0x74,0x61,0x67,0x65,0x6e,0x64,0x28,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x28,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x63,0x6c,0x6f,0x73,0x65,0x74,0x61,0x67,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x56,0x6f,0x69,0x64,0x54,0x61,0x67,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x2e,0x74,0x61,0x67,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x32,0x34,0x2c,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x6a,0x20,0x3c,0x3d,0x20,0x69,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x54,0x61,0x67,0x28,0x65,0x6c,0x2c,0x20,0x65,0x6e,0x64,0x2c,0x20,0x6a,0x20,0x3c,0x20,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x66,0x6f,0x75,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x32,0x33,0x2c,0x20,0x62,0x61,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x36,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x73,0x65,0x6c,0x66,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x74,0x61,0x67,0x28,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x74,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x69,0x73,0x53,0x65,0x6c,0x66,0x43,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x28,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x54,0x61,0x67,0x28,0x73,0x74,0x61,0x63,0x6b,0x2e,0x73,0x68,0x69,0x66,0x74,0x28,0x29,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x6e,0x61,0x6d,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x64,0x69,0x72,0x6e,0x61,0x6d,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x72,0x61,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2e,0x22,0x20,0x7c,0x7c,0x20,0x72,0x61,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x3a,0x22,0x20,0x3f,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x20,0x3a,0x20,0x72,0x61,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x40,0x22,0x20,0x3f,0x20,0x22,0x6f,0x6e,0x22,0x20,0x3a,0x20,0x72,0x61,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x23,0x22,0x20,0x3f,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x20,0x3a,0x20,0x72,0x61,0x77,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x26,0x26,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x32,0x36,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x7c,0x7c,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x72,0x61,0x77,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x3a,0x20,0x72,0x61,0x77,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x72,0x61,0x77,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x2e,0x22,0x20,0x3f,0x20,0x5b,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x70,0x72,0x6f,0x70,0x22,0x29,0x5d,0x20,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x50,0x72,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x64,0x69,0x72,0x54,0x6f,0x41,0x74,0x74,0x72,0x28,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x64,0x69,0x72,0x61,0x72,0x67,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6e,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x56,0x50,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x3d,0x20,0x61,0x72,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x61,0x72,0x67,0x5b,0x30,0x5d,0x20,0x21,0x3d,0x3d,0x20,0x60,0x5b,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x61,0x72,0x67,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x78,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3f,0x20,0x61,0x72,0x67,0x20,0x3a,0x20,0x61,0x72,0x67,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x31,0x2c,0x20,0x2d,0x31,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3f,0x20,0x33,0x20,0x3a,0x20,0x30,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x64,0x69,0x72,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x56,0x50,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x3d,0x20,0x22,0x2e,0x22,0x20,0x2b,0x20,0x6d,0x6f,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x61,0x72,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x22,0x2e,0x22,0x20,0x2b,0x20,0x6d,0x6f,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6d,0x6f,0x64,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x64,0x61,0x74,0x61,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x2b,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x65,0x6e,0x74,0x69,0x74,0x79,0x28,0x63,0x68,0x61,0x72,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x2b,0x3d,0x20,0x63,0x68,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x65,0x6e,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x6e,0x61,0x6d,0x65,0x65,0x6e,0x64,0x28,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x3f,0x20,0x70,0x2e,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x32,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x61,0x74,0x74,0x72,0x69,0x62,0x65,0x6e,0x64,0x28,0x71,0x75,0x6f,0x74,0x65,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6c,0x6f,0x63,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x71,0x75,0x6f,0x74,0x65,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x26,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x71,0x75,0x6f,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x31,0x33,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x71,0x75,0x6f,0x74,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x3f,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x20,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x2d,0x20,0x31,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x2b,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6c,0x61,0x6e,0x67,0x22,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x68,0x74,0x6d,0x6c,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x65,0x6e,0x74,0x65,0x72,0x52,0x43,0x44,0x41,0x54,0x41,0x28,0x74,0x6f,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x73,0x28,0x60,0x3c,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x60,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x50,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x2f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x78,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x50,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x66,0x6f,0x72,0x50,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6f,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x37,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x70,0x72,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x4e,0x6f,0x64,0x65,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x34,0x2c,0x20,0x65,0x6e,0x64,0x20,0x2b,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x65,0x6e,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x73,0x74,0x61,0x74,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x73,0x74,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x2e,0x43,0x64,0x61,0x74,0x61,0x45,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x36,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x37,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x36,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x37,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x36,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x37,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x27,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x39,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x54,0x61,0x67,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x2c,0x20,0x65,0x6e,0x64,0x20,0x2d,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x32,0x34,0x2c,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x69,0x6e,0x64,0x65,0x78,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x63,0x64,0x61,0x74,0x61,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2e,0x6e,0x73,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x54,0x65,0x78,0x74,0x28,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x31,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x69,0x6e,0x67,0x69,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x20,0x3f,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2e,0x6e,0x73,0x20,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2d,0x20,0x31,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x52,0x45,0x20,0x3d,0x20,0x2f,0x2c,0x28,0x5b,0x5e,0x2c,0x5c,0x7d,0x5c,0x5d,0x5d,0x2a,0x29,0x28,0x3f,0x3a,0x2c,0x28,0x5b,0x5e,0x2c,0x5c,0x7d,0x5c,0x5d,0x5d,0x2a,0x29,0x29,0x3f,0x24,0x2f,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x72,0x69,0x70,0x50,0x61,0x72,0x65,0x6e,0x73,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5e,0x5c,0x28,0x7c,0x5c,0x29,0x24,0x2f,0x67,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6f,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x69,0x6e,0x70,0x75,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x6f,0x63,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x65,0x78,0x70,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x66,0x6f,0x72,0x41,0x6c,0x69,0x61,0x73,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x4d,0x61,0x74,0x63,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x2c,0x20,0x4c,0x48,0x53,0x2c,0x20,0x52,0x48,0x53,0x5d,0x20,0x3d,0x20,0x69,0x6e,0x4d,0x61,0x74,0x63,0x68,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x6c,0x69,0x61,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x61,0x73,0x50,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6e,0x64,0x20,0x3d,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2b,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x78,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x50,0x61,0x72,0x61,0x6d,0x20,0x3f,0x20,0x31,0x20,0x2f,0x2a,0x20,0x50,0x61,0x72,0x61,0x6d,0x73,0x20,0x2a,0x2f,0x20,0x3a,0x20,0x30,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x6c,0x69,0x61,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x52,0x48,0x53,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2c,0x20,0x65,0x78,0x70,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x52,0x48,0x53,0x2c,0x20,0x4c,0x48,0x53,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x78,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x4c,0x48,0x53,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x72,0x69,0x70,0x50,0x61,0x72,0x65,0x6e,0x73,0x52,0x45,0x2c,0x20,0x22,0x22,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x4f,0x66,0x66,0x73,0x65,0x74,0x20,0x3d,0x20,0x4c,0x48,0x53,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x66,0x6f,0x72,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x66,0x6f,0x72,0x49,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x52,0x45,0x2c,0x20,0x22,0x22,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6b,0x65,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x20,0x3d,0x20,0x65,0x78,0x70,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6b,0x65,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x4f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x6c,0x69,0x61,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6b,0x65,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x6b,0x65,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x61,0x74,0x63,0x68,0x5b,0x32,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x64,0x65,0x78,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x74,0x65,0x72,0x61,0x74,0x6f,0x72,0x4d,0x61,0x74,0x63,0x68,0x5b,0x32,0x5d,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x6c,0x69,0x61,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x78,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x78,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6b,0x65,0x79,0x20,0x3f,0x20,0x6b,0x65,0x79,0x4f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x6b,0x65,0x79,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3a,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x4f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x6c,0x69,0x61,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x69,0x6d,0x6d,0x65,0x64,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6e,0x64,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x28,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x65,0x6e,0x64,0x20,0x2b,0x20,0x31,0x2c,0x20,0x65,0x6e,0x64,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x61,0x64,0x64,0x4e,0x6f,0x64,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x73,0x20,0x7d,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x50,0x72,0x65,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x50,0x72,0x65,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x56,0x6f,0x69,0x64,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x54,0x61,0x67,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x58,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x54,0x65,0x78,0x74,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x61,0x67,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x20,0x26,0x26,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2e,0x74,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x26,0x26,0x20,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x26,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x61,0x73,0x74,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6c,0x61,0x73,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x6c,0x61,0x73,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x54,0x61,0x67,0x28,0x65,0x6c,0x2c,0x20,0x65,0x6e,0x64,0x2c,0x20,0x69,0x73,0x49,0x6d,0x70,0x6c,0x69,0x65,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6d,0x70,0x6c,0x69,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x65,0x6c,0x2e,0x6c,0x6f,0x63,0x2c,0x20,0x62,0x61,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x28,0x65,0x6e,0x64,0x2c,0x20,0x36,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x65,0x6c,0x2e,0x6c,0x6f,0x63,0x2c,0x20,0x6c,0x6f,0x6f,0x6b,0x41,0x68,0x65,0x61,0x64,0x28,0x65,0x6e,0x64,0x2c,0x20,0x36,0x32,0x29,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x53,0x46,0x43,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x6c,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x65,0x6c,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x65,0x6c,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x4c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x61,0x67,0x2c,0x20,0x6e,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x56,0x50,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x28,0x65,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x65,0x6c,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x52,0x43,0x44,0x41,0x54,0x41,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x49,0x67,0x6e,0x6f,0x72,0x65,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x72,0x73,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x66,0x69,0x72,0x73,0x74,0x20,0x26,0x26,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5e,0x5c,0x72,0x3f,0x5c,0x6e,0x2f,0x2c,0x20,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x50,0x72,0x65,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x50,0x72,0x65,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x50,0x72,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x56,0x50,0x72,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x56,0x50,0x72,0x65,0x42,0x6f,0x75,0x6e,0x64,0x61,0x72,0x79,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x58,0x4d,0x4c,0x20,0x26,0x26,0x20,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x20,0x3f,0x20,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x2e,0x6e,0x73,0x20,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x73,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x58,0x4d,0x4c,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6c,0x6f,0x6f,0x6b,0x41,0x68,0x65,0x61,0x64,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x20,0x21,0x3d,0x3d,0x20,0x63,0x20,0x26,0x26,0x20,0x69,0x20,0x3c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x69,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x69,0x6e,0x64,0x65,0x78,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x20,0x21,0x3d,0x3d,0x20,0x63,0x20,0x26,0x26,0x20,0x69,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x44,0x69,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x69,0x66,0x22,0x2c,0x20,0x22,0x65,0x6c,0x73,0x65,0x22,0x2c,0x20,0x22,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x22,0x2c,0x20,0x22,0x66,0x6f,0x72,0x22,0x2c,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x5d,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x28,0x7b,0x20,0x74,0x61,0x67,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x44,0x69,0x72,0x2e,0x68,0x61,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x7b,0x20,0x74,0x61,0x67,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x74,0x61,0x67,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x30,0x29,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x43,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x20,0x26,0x26,0x20,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x73,0x22,0x20,0x26,0x26,0x20,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x75,0x65,0x3a,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x55,0x70,0x70,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x20,0x3e,0x20,0x36,0x34,0x20,0x26,0x26,0x20,0x63,0x20,0x3c,0x20,0x39,0x31,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x73,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x52,0x45,0x20,0x3d,0x20,0x2f,0x5c,0x72,0x5c,0x6e,0x2f,0x67,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x20,0x74,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x22,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x6e,0x50,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x6c,0x6c,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x20,0x2b,0x20,0x31,0x5d,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x20,0x2b,0x20,0x31,0x5d,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x76,0x20,0x7c,0x7c,0x20,0x21,0x6e,0x65,0x78,0x74,0x20,0x7c,0x7c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x20,0x26,0x26,0x20,0x28,0x70,0x72,0x65,0x76,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x28,0x6e,0x65,0x78,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7c,0x7c,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x28,0x6e,0x65,0x78,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x7c,0x7c,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x43,0x68,0x61,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x22,0x20,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x73,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x52,0x45,0x2c,0x20,0x22,0x5c,0x6e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x42,0x6f,0x6f,0x6c,0x65,0x61,0x6e,0x29,0x20,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x73,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x41,0x6c,0x6c,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x43,0x68,0x61,0x72,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x20,0x3d,0x20,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x20,0x7c,0x7c,0x20,0x63,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x28,0x73,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x61,0x72,0x49,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x73,0x74,0x72,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x73,0x74,0x72,0x2e,0x63,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x41,0x74,0x28,0x69,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x65,0x76,0x43,0x68,0x61,0x72,0x49,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x2b,0x3d,0x20,0x22,0x20,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x61,0x72,0x49,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x2b,0x3d,0x20,0x73,0x74,0x72,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x43,0x68,0x61,0x72,0x49,0x73,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x28,0x73,0x74,0x61,0x63,0x6b,0x5b,0x30,0x5d,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x29,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x3a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x28,0x73,0x74,0x61,0x72,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x40,0x74,0x73,0x2d,0x65,0x78,0x70,0x65,0x63,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x6c,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x3a,0x20,0x65,0x6e,0x64,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x65,0x6e,0x64,0x20,0x3a,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x28,0x65,0x6e,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x40,0x74,0x73,0x2d,0x65,0x78,0x70,0x65,0x63,0x74,0x2d,0x65,0x72,0x72,0x6f,0x72,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x6c,0x61,0x74,0x65,0x20,0x61,0x74,0x74,0x61,0x63,0x68,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x65,0x6e,0x64,0x20,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x3f,0x20,0x65,0x6e,0x64,0x20,0x3a,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x73,0x74,0x61,0x72,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x4c,0x6f,0x63,0x28,0x6c,0x6f,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x74,0x4c,0x6f,0x63,0x45,0x6e,0x64,0x28,0x6c,0x6f,0x63,0x2c,0x20,0x65,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x67,0x65,0x74,0x50,0x6f,0x73,0x28,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x6f,0x63,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x69,0x63,0x65,0x28,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x65,0x6e,0x64,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x69,0x72,0x54,0x6f,0x41,0x74,0x74,0x72,0x28,0x64,0x69,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x74,0x74,0x72,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x64,0x69,0x72,0x2e,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x3a,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x2b,0x20,0x64,0x69,0x72,0x2e,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x0a,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x20,0x3c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x61,0x74,0x74,0x72,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x74,0x74,0x72,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x78,0x70,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x30,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x30,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x2f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x20,0x6c,0x6f,0x63,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x70,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x65,0x6d,0x69,0x74,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x6f,0x64,0x65,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x6f,0x64,0x65,0x2c,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x65,0x6e,0x54,0x61,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x56,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x22,0x22,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x53,0x74,0x61,0x72,0x74,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x41,0x74,0x74,0x72,0x45,0x6e,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x73,0x74,0x61,0x63,0x6b,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x73,0x65,0x50,0x61,0x72,0x73,0x65,0x28,0x69,0x6e,0x70,0x75,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x69,0x6e,0x70,0x75,0x74,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x50,0x61,0x72,0x73,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x63,0x6f,0x64,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x5b,0x40,0x76,0x75,0x65,0x2f,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x63,0x6f,0x72,0x65,0x5d,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x62,0x75,0x69,0x6c,0x64,0x73,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x68,0x74,0x6d,0x6c,0x22,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x70,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x66,0x63,0x22,0x20,0x3f,0x20,0x32,0x20,0x3a,0x20,0x30,0x3b,0x0a,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x69,0x6e,0x58,0x4d,0x4c,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x26,0x26,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x4f,0x70,0x65,0x6e,0x20,0x3d,0x20,0x74,0x6f,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x73,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x30,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x43,0x6c,0x6f,0x73,0x65,0x20,0x3d,0x20,0x74,0x6f,0x43,0x68,0x61,0x72,0x43,0x6f,0x64,0x65,0x73,0x28,0x64,0x65,0x6c,0x69,0x6d,0x69,0x74,0x65,0x72,0x73,0x5b,0x31,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x6f,0x6f,0x74,0x28,0x5b,0x5d,0x2c,0x20,0x69,0x6e,0x70,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x69,0x7a,0x65,0x72,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x70,0x75,0x74,0x29,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x67,0x65,0x74,0x4c,0x6f,0x63,0x28,0x30,0x2c,0x20,0x69,0x6e,0x70,0x75,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x64,0x65,0x6e,0x73,0x65,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x6f,0x6f,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x77,0x61,0x6c,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x52,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x20,0x69,0x73,0x20,0x75,0x6e,0x66,0x6f,0x72,0x74,0x75,0x6e,0x61,0x74,0x65,0x6c,0x79,0x20,0x6e,0x6f,0x6e,0x2d,0x68,0x6f,0x69,0x73,0x74,0x61,0x62,0x6c,0x65,0x20,0x64,0x75,0x65,0x20,0x74,0x6f,0x20,0x70,0x6f,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x61,0x6c,0x6c,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x61,0x6c,0x6b,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x64,0x6f,0x4e,0x6f,0x74,0x48,0x6f,0x69,0x73,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x69,0x6e,0x46,0x6f,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x6f,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x64,0x6f,0x4e,0x6f,0x74,0x48,0x6f,0x69,0x73,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3f,0x20,0x30,0x20,0x3a,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3e,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x43,0x61,0x63,0x68,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x61,0x67,0x20,0x3d,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x7c,0x7c,0x20,0x66,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x31,0x32,0x20,0x7c,0x7c,0x20,0x66,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3e,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x64,0x6f,0x4e,0x6f,0x74,0x48,0x6f,0x69,0x73,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3f,0x20,0x30,0x20,0x3a,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x20,0x3e,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x43,0x61,0x63,0x68,0x65,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x53,0x6c,0x6f,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x6c,0x6b,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x69,0x6e,0x46,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x53,0x6c,0x6f,0x74,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x6c,0x6b,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x32,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x32,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x32,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x6c,0x6b,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x5b,0x69,0x32,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x5b,0x69,0x32,0x5d,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x46,0x6f,0x72,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x43,0x61,0x63,0x68,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x20,0x26,0x26,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x67,0x65,0x74,0x53,0x6c,0x6f,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x73,0x6c,0x6f,0x74,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x26,0x26,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x53,0x6c,0x6f,0x74,0x4e,0x6f,0x64,0x65,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x61,0x72,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x73,0x6c,0x6f,0x74,0x2e,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x61,0x63,0x68,0x65,0x64,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x74,0x6f,0x43,0x61,0x63,0x68,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x46,0x6f,0x72,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x6d,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2e,0x6e,0x65,0x65,0x64,0x41,0x72,0x72,0x61,0x79,0x53,0x70,0x72,0x65,0x61,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x53,0x6c,0x6f,0x74,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x32,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x32,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x7c,0x7c,0x20,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x20,0x26,0x26,0x20,0x73,0x6c,0x6f,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x43,0x61,0x63,0x68,0x65,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x48,0x6f,0x69,0x73,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x48,0x6f,0x69,0x73,0x74,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x67,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x21,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x54,0x79,0x70,0x65,0x20,0x3c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x20,0x3d,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x20,0x3c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x20,0x26,0x26,0x20,0x70,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x70,0x2e,0x65,0x78,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x54,0x79,0x70,0x65,0x20,0x3c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x20,0x3d,0x20,0x65,0x78,0x70,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x2e,0x73,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x20,0x3c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x48,0x6f,0x69,0x73,0x74,0x65,0x64,0x48,0x65,0x6c,0x70,0x65,0x72,0x53,0x65,0x74,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x0a,0x20,0x20,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x43,0x4c,0x41,0x53,0x53,0x2c,0x0a,0x20,0x20,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x53,0x54,0x59,0x4c,0x45,0x2c,0x0a,0x20,0x20,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x2c,0x0a,0x20,0x20,0x47,0x55,0x41,0x52,0x44,0x5f,0x52,0x45,0x41,0x43,0x54,0x49,0x56,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x0a,0x5d,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x4f,0x66,0x48,0x65,0x6c,0x70,0x65,0x72,0x43,0x61,0x6c,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x29,0x20,0x26,0x26,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x48,0x6f,0x69,0x73,0x74,0x65,0x64,0x48,0x65,0x6c,0x70,0x65,0x72,0x53,0x65,0x74,0x2e,0x68,0x61,0x73,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x61,0x72,0x67,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x4f,0x66,0x48,0x65,0x6c,0x70,0x65,0x72,0x43,0x61,0x6c,0x6c,0x28,0x61,0x72,0x67,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x50,0x72,0x6f,0x70,0x73,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6b,0x65,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6b,0x65,0x79,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x54,0x79,0x70,0x65,0x20,0x3c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x6b,0x65,0x79,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x4f,0x66,0x48,0x65,0x6c,0x70,0x65,0x72,0x43,0x61,0x6c,0x6c,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x20,0x3c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x54,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x54,0x79,0x70,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x4e,0x6f,0x64,0x65,0x50,0x72,0x6f,0x70,0x73,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x22,0x2c,0x0a,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x68,0x6f,0x69,0x73,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x68,0x6d,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x48,0x6f,0x69,0x73,0x74,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x2c,0x0a,0x20,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x4e,0x4f,0x4f,0x50,0x2c,0x0a,0x20,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x73,0x6c,0x6f,0x74,0x74,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x73,0x73,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x53,0x53,0x52,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x73,0x73,0x72,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x20,0x3d,0x20,0x60,0x60,0x2c,0x0a,0x20,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x20,0x3d,0x20,0x45,0x4d,0x50,0x54,0x59,0x5f,0x4f,0x42,0x4a,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x69,0x73,0x54,0x53,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x20,0x3d,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x57,0x61,0x72,0x6e,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x0a,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x5c,0x3f,0x2e,0x2a,0x24,0x2f,0x2c,0x20,0x22,0x22,0x29,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x2f,0x28,0x5b,0x5e,0x2f,0x5c,0x5c,0x5d,0x2b,0x29,0x5c,0x2e,0x5c,0x77,0x2b,0x24,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x66,0x4e,0x61,0x6d,0x65,0x3a,0x20,0x6e,0x61,0x6d,0x65,0x4d,0x61,0x74,0x63,0x68,0x20,0x26,0x26,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x6e,0x61,0x6d,0x65,0x4d,0x61,0x74,0x63,0x68,0x5b,0x31,0x5d,0x29,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x69,0x73,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6d,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x48,0x6f,0x69,0x73,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x50,0x6c,0x75,0x67,0x69,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x74,0x65,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x53,0x53,0x52,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x54,0x53,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x74,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x69,0x73,0x74,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x43,0x61,0x63,0x68,0x65,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x73,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x46,0x6f,0x72,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x53,0x6c,0x6f,0x74,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x50,0x72,0x65,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x4f,0x6e,0x63,0x65,0x3a,0x20,0x30,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x67,0x72,0x61,0x6e,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x72,0x6f,0x6f,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x56,0x4f,0x6e,0x63,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x67,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7c,0x7c,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x73,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x2b,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x67,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x75,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x75,0x6e,0x74,0x20,0x2d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x75,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x64,0x65,0x6c,0x65,0x74,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x73,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x75,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x5f,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x5b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x6e,0x61,0x6d,0x65,0x29,0x5d,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x4e,0x6f,0x64,0x65,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x64,0x20,0x69,0x73,0x20,0x61,0x6c,0x72,0x65,0x61,0x64,0x79,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x5d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x43,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x20,0x72,0x6f,0x6f,0x74,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6d,0x6f,0x76,0x61,0x6c,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3f,0x20,0x6c,0x69,0x73,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3f,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3a,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6d,0x6f,0x76,0x61,0x6c,0x49,0x6e,0x64,0x65,0x78,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x6f,0x77,0x20,0x6e,0x65,0x77,0x20,0x45,0x72,0x72,0x6f,0x72,0x28,0x60,0x6e,0x6f,0x64,0x65,0x20,0x62,0x65,0x69,0x6e,0x67,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x6f,0x64,0x65,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x4e,0x6f,0x64,0x65,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3e,0x20,0x72,0x65,0x6d,0x6f,0x76,0x61,0x6c,0x49,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x4e,0x6f,0x64,0x65,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x72,0x65,0x6d,0x6f,0x76,0x61,0x6c,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x4e,0x6f,0x64,0x65,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x3a,0x20,0x4e,0x4f,0x4f,0x50,0x2c,0x0a,0x20,0x20,0x20,0x20,0x61,0x64,0x64,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x6f,0x69,0x73,0x74,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x65,0x78,0x70,0x29,0x29,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x5f,0x68,0x6f,0x69,0x73,0x74,0x65,0x64,0x5f,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x7d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x2e,0x68,0x6f,0x69,0x73,0x74,0x65,0x64,0x20,0x3d,0x20,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x28,0x65,0x78,0x70,0x2c,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x4e,0x6f,0x64,0x65,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x68,0x6f,0x69,0x73,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x73,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x6f,0x6f,0x74,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x2e,0x2e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x6b,0x65,0x79,0x73,0x28,0x29,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6d,0x70,0x6f,0x72,0x74,0x73,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x73,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x6f,0x6f,0x74,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x72,0x6f,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x69,0x6e,0x67,0x6c,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x52,0x6f,0x6f,0x74,0x28,0x72,0x6f,0x6f,0x74,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x54,0x6f,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x33,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x32,0x30,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6f,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x64,0x65,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x67,0x72,0x61,0x6e,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x4e,0x6f,0x64,0x65,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x52,0x65,0x6d,0x6f,0x76,0x65,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x32,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x32,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x32,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x78,0x69,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x69,0x32,0x5d,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x73,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x73,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x54,0x4f,0x5f,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x52,0x49,0x4e,0x47,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x63,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x74,0x79,0x70,0x65,0x73,0x2c,0x20,0x66,0x75,0x72,0x74,0x68,0x65,0x72,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x20,0x64,0x6f,0x77,0x6e,0x77,0x61,0x72,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x32,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x32,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x32,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x5b,0x69,0x32,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x5b,0x69,0x5d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x61,0x6c,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x61,0x6d,0x65,0x29,0x20,0x3f,0x20,0x28,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3a,0x20,0x28,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x74,0x65,0x73,0x74,0x28,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x69,0x73,0x56,0x53,0x6c,0x6f,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x6d,0x61,0x74,0x63,0x68,0x65,0x73,0x28,0x70,0x72,0x6f,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x69,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x78,0x69,0x74,0x20,0x3d,0x20,0x66,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x69,0x74,0x46,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x50,0x55,0x52,0x45,0x5f,0x41,0x4e,0x4e,0x4f,0x54,0x41,0x54,0x49,0x4f,0x4e,0x20,0x3d,0x20,0x60,0x2f,0x2a,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x2a,0x2f,0x60,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6c,0x69,0x61,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x3d,0x20,0x28,0x73,0x29,0x20,0x3d,0x3e,0x20,0x60,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x5b,0x73,0x5d,0x7d,0x3a,0x20,0x5f,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x5b,0x73,0x5d,0x7d,0x60,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x61,0x73,0x74,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x4d,0x61,0x70,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x60,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x76,0x75,0x65,0x2e,0x68,0x74,0x6d,0x6c,0x60,0x2c,0x0a,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x49,0x6d,0x70,0x6f,0x72,0x74,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x60,0x56,0x75,0x65,0x60,0x2c,0x0a,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x60,0x76,0x75,0x65,0x60,0x2c,0x0a,0x20,0x20,0x73,0x73,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x22,0x76,0x75,0x65,0x2f,0x73,0x65,0x72,0x76,0x65,0x72,0x2d,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x73,0x73,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x69,0x73,0x54,0x53,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x69,0x6e,0x53,0x53,0x52,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x4d,0x61,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x65,0x6e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x49,0x6d,0x70,0x6f,0x72,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x54,0x53,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x53,0x53,0x52,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x61,0x73,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x3a,0x20,0x60,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x75,0x6d,0x6e,0x3a,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x66,0x66,0x73,0x65,0x74,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x3a,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x72,0x65,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x5f,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x5b,0x6b,0x65,0x79,0x5d,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x32,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x6e,0x65,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x64,0x65,0x20,0x2b,0x3d,0x20,0x63,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x2b,0x2b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x4e,0x65,0x77,0x4c,0x69,0x6e,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x4e,0x65,0x77,0x4c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x2d,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x22,0x5c,0x6e,0x22,0x20,0x2b,0x20,0x60,0x20,0x20,0x60,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x6e,0x29,0x2c,0x20,0x30,0x20,0x2f,0x2a,0x20,0x53,0x74,0x61,0x72,0x74,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x28,0x61,0x73,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x28,0x61,0x73,0x74,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x29,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x61,0x73,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x73,0x65,0x57,0x69,0x74,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x21,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x26,0x26,0x20,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x61,0x6d,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x50,0x72,0x65,0x61,0x6d,0x62,0x6c,0x65,0x28,0x61,0x73,0x74,0x2c,0x20,0x70,0x72,0x65,0x61,0x6d,0x62,0x6c,0x65,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x73,0x73,0x72,0x20,0x3f,0x20,0x60,0x73,0x73,0x72,0x52,0x65,0x6e,0x64,0x65,0x72,0x60,0x20,0x3a,0x20,0x60,0x72,0x65,0x6e,0x64,0x65,0x72,0x60,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x73,0x20,0x3d,0x20,0x73,0x73,0x72,0x20,0x3f,0x20,0x5b,0x22,0x5f,0x63,0x74,0x78,0x22,0x2c,0x20,0x22,0x5f,0x70,0x75,0x73,0x68,0x22,0x2c,0x20,0x22,0x5f,0x70,0x61,0x72,0x65,0x6e,0x74,0x22,0x2c,0x20,0x22,0x5f,0x61,0x74,0x74,0x72,0x73,0x22,0x5d,0x20,0x3a,0x20,0x5b,0x22,0x5f,0x63,0x74,0x78,0x22,0x2c,0x20,0x22,0x5f,0x63,0x61,0x63,0x68,0x65,0x22,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x73,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x24,0x7b,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x7d,0x28,0x24,0x7b,0x73,0x69,0x67,0x6e,0x61,0x74,0x75,0x72,0x65,0x7d,0x29,0x20,0x7b,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x73,0x65,0x57,0x69,0x74,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x77,0x69,0x74,0x68,0x20,0x28,0x5f,0x63,0x74,0x78,0x29,0x20,0x7b,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x61,0x6c,0x69,0x61,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x7d,0x20,0x7d,0x20,0x3d,0x20,0x5f,0x56,0x75,0x65,0x0a,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x31,0x20,0x2f,0x2a,0x20,0x45,0x6e,0x64,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x41,0x73,0x73,0x65,0x74,0x73,0x28,0x61,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x61,0x73,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x41,0x73,0x73,0x65,0x74,0x73,0x28,0x61,0x73,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x20,0x22,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x22,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x6c,0x65,0x74,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x61,0x73,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x24,0x7b,0x69,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x60,0x2c,0x20,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x5f,0x74,0x65,0x6d,0x70,0x24,0x7b,0x69,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x61,0x73,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x61,0x73,0x74,0x2e,0x74,0x65,0x6d,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x0a,0x60,0x2c,0x20,0x30,0x20,0x2f,0x2a,0x20,0x53,0x74,0x61,0x72,0x74,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x73,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x61,0x73,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x6e,0x75,0x6c,0x6c,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x75,0x73,0x65,0x57,0x69,0x74,0x68,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x61,0x6d,0x62,0x6c,0x65,0x3a,0x20,0x60,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x70,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x61,0x70,0x20,0x3f,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6d,0x61,0x70,0x2e,0x74,0x6f,0x4a,0x53,0x4f,0x4e,0x28,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x50,0x72,0x65,0x61,0x6d,0x62,0x6c,0x65,0x28,0x61,0x73,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x73,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4e,0x61,0x6d,0x65,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x75,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x41,0x72,0x72,0x61,0x79,0x2e,0x66,0x72,0x6f,0x6d,0x28,0x61,0x73,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x56,0x75,0x65,0x20,0x3d,0x20,0x24,0x7b,0x56,0x75,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x7d,0x0a,0x60,0x2c,0x20,0x2d,0x31,0x20,0x2f,0x2a,0x20,0x45,0x6e,0x64,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x45,0x4c,0x45,0x4d,0x45,0x4e,0x54,0x5f,0x56,0x4e,0x4f,0x44,0x45,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x54,0x45,0x58,0x54,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x53,0x54,0x41,0x54,0x49,0x43,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x61,0x6c,0x69,0x61,0x73,0x48,0x65,0x6c,0x70,0x65,0x72,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x2c,0x20,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x24,0x7b,0x73,0x74,0x61,0x74,0x69,0x63,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x7d,0x20,0x7d,0x20,0x3d,0x20,0x5f,0x56,0x75,0x65,0x0a,0x60,0x2c,0x20,0x2d,0x31,0x20,0x2f,0x2a,0x20,0x45,0x6e,0x64,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x6e,0x48,0x6f,0x69,0x73,0x74,0x73,0x28,0x61,0x73,0x74,0x2e,0x68,0x6f,0x69,0x73,0x74,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x41,0x73,0x73,0x65,0x74,0x73,0x28,0x61,0x73,0x73,0x65,0x74,0x73,0x2c,0x20,0x74,0x79,0x70,0x65,0x2c,0x20,0x7b,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x2c,0x20,0x69,0x73,0x54,0x53,0x20,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x72,0x20,0x3d,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x20,0x3f,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x20,0x3a,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x61,0x73,0x73,0x65,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x64,0x20,0x3d,0x20,0x61,0x73,0x73,0x65,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x69,0x64,0x2e,0x65,0x6e,0x64,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x5f,0x5f,0x73,0x65,0x6c,0x66,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x20,0x3d,0x20,0x69,0x64,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x2d,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x24,0x7b,0x74,0x6f,0x56,0x61,0x6c,0x69,0x64,0x41,0x73,0x73,0x65,0x74,0x49,0x64,0x28,0x69,0x64,0x2c,0x20,0x74,0x79,0x70,0x65,0x29,0x7d,0x20,0x3d,0x20,0x24,0x7b,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x72,0x7d,0x28,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x69,0x64,0x29,0x7d,0x24,0x7b,0x6d,0x61,0x79,0x62,0x65,0x53,0x65,0x6c,0x66,0x52,0x65,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x3f,0x20,0x60,0x2c,0x20,0x74,0x72,0x75,0x65,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x29,0x24,0x7b,0x69,0x73,0x54,0x53,0x20,0x3f,0x20,0x60,0x21,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3c,0x20,0x61,0x73,0x73,0x65,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x48,0x6f,0x69,0x73,0x74,0x73,0x28,0x68,0x6f,0x69,0x73,0x74,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x6f,0x69,0x73,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x72,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x68,0x6f,0x69,0x73,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x68,0x6f,0x69,0x73,0x74,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x68,0x6f,0x69,0x73,0x74,0x65,0x64,0x5f,0x24,0x7b,0x69,0x20,0x2b,0x20,0x31,0x7d,0x20,0x3d,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x65,0x78,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x72,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x54,0x65,0x78,0x74,0x28,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x29,0x20,0x7c,0x7c,0x20,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x7c,0x7c,0x20,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x7c,0x7c,0x20,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x20,0x7c,0x7c,0x20,0x6e,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x33,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x29,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x54,0x65,0x78,0x74,0x28,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x5b,0x60,0x29,0x3b,0x0a,0x20,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x28,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x5d,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x28,0x6e,0x6f,0x64,0x65,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x20,0x26,0x26,0x20,0x70,0x75,0x73,0x68,0x28,0x22,0x2c,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x61,0x20,0x26,0x26,0x20,0x70,0x75,0x73,0x68,0x28,0x22,0x2c,0x20,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x66,0x6f,0x72,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2f,0x69,0x66,0x2f,0x66,0x6f,0x72,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x20,0x41,0x70,0x70,0x6c,0x79,0x20,0x61,0x70,0x70,0x72,0x6f,0x70,0x72,0x69,0x61,0x74,0x65,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x66,0x69,0x72,0x73,0x74,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x54,0x65,0x78,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x37,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x38,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x62,0x6f,0x64,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x53,0x53,0x52,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x74,0x79,0x70,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x32,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x33,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x32,0x36,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x76,0x38,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x28,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x60,0x75,0x6e,0x68,0x61,0x6e,0x64,0x6c,0x65,0x64,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x68,0x61,0x75,0x73,0x74,0x69,0x76,0x65,0x43,0x68,0x65,0x63,0x6b,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x78,0x68,0x61,0x75,0x73,0x74,0x69,0x76,0x65,0x43,0x68,0x65,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x54,0x65,0x78,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2c,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3f,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x49,0x6e,0x74,0x65,0x72,0x70,0x6f,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x70,0x75,0x72,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x72,0x65,0x29,0x20,0x70,0x75,0x73,0x68,0x28,0x50,0x55,0x52,0x45,0x5f,0x41,0x4e,0x4e,0x4f,0x54,0x41,0x54,0x49,0x4f,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x54,0x4f,0x5f,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x52,0x49,0x4e,0x47,0x29,0x7d,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x41,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4b,0x65,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5b,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x65,0x78,0x74,0x20,0x3d,0x20,0x69,0x73,0x53,0x69,0x6d,0x70,0x6c,0x65,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x74,0x65,0x78,0x74,0x2c,0x20,0x2d,0x32,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x6e,0x65,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5b,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x5d,0x60,0x2c,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x70,0x75,0x72,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x50,0x55,0x52,0x45,0x5f,0x41,0x4e,0x4e,0x4f,0x54,0x41,0x54,0x49,0x4f,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x29,0x7d,0x28,0x24,0x7b,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7d,0x29,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2d,0x33,0x20,0x2f,0x2a,0x20,0x55,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x20,0x2a,0x2f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x70,0x75,0x72,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x53,0x74,0x72,0x69,0x6e,0x67,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3c,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x2b,0x20,0x60,0x20,0x2f,0x2a,0x20,0x24,0x7b,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x5b,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x5d,0x7d,0x20,0x2a,0x2f,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x29,0x2e,0x6d,0x61,0x70,0x28,0x4e,0x75,0x6d,0x62,0x65,0x72,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x20,0x3e,0x20,0x30,0x20,0x26,0x26,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x26,0x20,0x6e,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x5b,0x6e,0x5d,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x2c,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x2b,0x20,0x60,0x20,0x2f,0x2a,0x20,0x24,0x7b,0x66,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x7d,0x20,0x2a,0x2f,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x57,0x49,0x54,0x48,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x53,0x29,0x20,0x2b,0x20,0x60,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x28,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x29,0x7d,0x28,0x24,0x7b,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x20,0x3f,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x20,0x3a,0x20,0x60,0x60,0x7d,0x29,0x2c,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x50,0x55,0x52,0x45,0x5f,0x41,0x4e,0x4e,0x4f,0x54,0x41,0x54,0x49,0x4f,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x3d,0x20,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3f,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x3a,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x61,0x6c,0x6c,0x48,0x65,0x6c,0x70,0x65,0x72,0x29,0x20,0x2b,0x20,0x60,0x28,0x60,0x2c,0x20,0x2d,0x32,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x6e,0x65,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x75,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x41,0x72,0x67,0x73,0x28,0x5b,0x74,0x61,0x67,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x2c,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x4e,0x75,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x41,0x72,0x67,0x73,0x28,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x61,0x72,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x73,0x5b,0x69,0x5d,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x67,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x69,0x20,0x2b,0x20,0x31,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x61,0x72,0x67,0x29,0x20,0x3d,0x3e,0x20,0x61,0x72,0x67,0x20,0x7c,0x7c,0x20,0x60,0x6e,0x75,0x6c,0x6c,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x70,0x75,0x72,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x29,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3a,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x75,0x72,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x50,0x55,0x52,0x45,0x5f,0x41,0x4e,0x4e,0x4f,0x54,0x41,0x54,0x49,0x4f,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x2b,0x20,0x60,0x28,0x60,0x2c,0x20,0x2d,0x32,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x6e,0x65,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x7b,0x7d,0x60,0x2c,0x20,0x2d,0x32,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x6e,0x65,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x20,0x7c,0x7c,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x34,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3f,0x20,0x60,0x7b,0x60,0x20,0x3a,0x20,0x60,0x7b,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x26,0x26,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x41,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x4b,0x65,0x79,0x28,0x6b,0x65,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x3a,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x2c,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x26,0x26,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x6d,0x75,0x6c,0x74,0x69,0x6c,0x69,0x6e,0x65,0x73,0x20,0x3f,0x20,0x60,0x7d,0x60,0x20,0x3a,0x20,0x60,0x20,0x7d,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x2c,0x20,0x62,0x6f,0x64,0x79,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x2c,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5f,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x4e,0x61,0x6d,0x65,0x4d,0x61,0x70,0x5b,0x57,0x49,0x54,0x48,0x5f,0x43,0x54,0x58,0x5d,0x7d,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x28,0x60,0x2c,0x20,0x2d,0x32,0x20,0x2f,0x2a,0x20,0x4e,0x6f,0x6e,0x65,0x20,0x2a,0x2f,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x20,0x3d,0x3e,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7c,0x7c,0x20,0x62,0x6f,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x7b,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x4c,0x69,0x73,0x74,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x72,0x65,0x74,0x75,0x72,0x6e,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x62,0x6f,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x62,0x6f,0x64,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7c,0x7c,0x20,0x62,0x6f,0x64,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x65,0x73,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x65,0x71,0x75,0x65,0x6e,0x74,0x2c,0x20,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x3a,0x20,0x6e,0x65,0x65,0x64,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x73,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x73,0x50,0x61,0x72,0x65,0x6e,0x73,0x20,0x3d,0x20,0x21,0x69,0x73,0x53,0x69,0x6d,0x70,0x6c,0x65,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x28,0x74,0x65,0x73,0x74,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x73,0x50,0x61,0x72,0x65,0x6e,0x73,0x20,0x26,0x26,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x74,0x65,0x73,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x73,0x50,0x61,0x72,0x65,0x6e,0x73,0x20,0x26,0x26,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x74,0x65,0x73,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6e,0x65,0x65,0x64,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x6e,0x65,0x65,0x64,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7c,0x7c,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x3f,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x63,0x6f,0x6e,0x73,0x65,0x71,0x75,0x65,0x6e,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x6e,0x65,0x65,0x64,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x6e,0x65,0x65,0x64,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7c,0x7c,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x3a,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4e,0x65,0x73,0x74,0x65,0x64,0x20,0x3d,0x20,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4e,0x65,0x73,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x4e,0x65,0x73,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x64,0x65,0x6e,0x74,0x4c,0x65,0x76,0x65,0x6c,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6e,0x65,0x65,0x64,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x26,0x26,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x77,0x69,0x74,0x68,0x6f,0x75,0x74,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x6e,0x43,0x61,0x63,0x68,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x75,0x73,0x68,0x2c,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x2c,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6e,0x65,0x65,0x64,0x50,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x2c,0x20,0x6e,0x65,0x65,0x64,0x41,0x72,0x72,0x61,0x79,0x53,0x70,0x72,0x65,0x61,0x64,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x41,0x72,0x72,0x61,0x79,0x53,0x70,0x72,0x65,0x61,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5b,0x2e,0x2e,0x2e,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5f,0x63,0x61,0x63,0x68,0x65,0x5b,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x7d,0x5d,0x20,0x7c,0x7c,0x20,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x50,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x53,0x45,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5f,0x54,0x52,0x41,0x43,0x4b,0x49,0x4e,0x47,0x29,0x7d,0x28,0x2d,0x31,0x29,0x2c,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5f,0x63,0x61,0x63,0x68,0x65,0x5b,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x7d,0x5d,0x20,0x3d,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x50,0x61,0x75,0x73,0x65,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x2e,0x63,0x61,0x63,0x68,0x65,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x7d,0x2c,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x24,0x7b,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x53,0x45,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5f,0x54,0x52,0x41,0x43,0x4b,0x49,0x4e,0x47,0x29,0x7d,0x28,0x31,0x29,0x2c,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x5f,0x63,0x61,0x63,0x68,0x65,0x5b,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x69,0x6e,0x64,0x65,0x78,0x7d,0x5d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x69,0x6e,0x64,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x41,0x72,0x72,0x61,0x79,0x53,0x70,0x72,0x65,0x61,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x5d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x68,0x69,0x62,0x69,0x74,0x65,0x64,0x4b,0x65,0x79,0x77,0x6f,0x72,0x64,0x52,0x45,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x67,0x45,0x78,0x70,0x28,0x0a,0x20,0x20,0x22,0x5c,0x5c,0x62,0x22,0x20,0x2b,0x20,0x22,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x61,0x77,0x61,0x69,0x74,0x2c,0x62,0x72,0x65,0x61,0x6b,0x2c,0x63,0x61,0x73,0x65,0x2c,0x63,0x61,0x74,0x63,0x68,0x2c,0x63,0x6c,0x61,0x73,0x73,0x2c,0x63,0x6f,0x6e,0x73,0x74,0x2c,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x2c,0x64,0x65,0x62,0x75,0x67,0x67,0x65,0x72,0x2c,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x2c,0x64,0x65,0x6c,0x65,0x74,0x65,0x2c,0x64,0x6f,0x2c,0x65,0x6c,0x73,0x65,0x2c,0x65,0x78,0x70,0x6f,0x72,0x74,0x2c,0x65,0x78,0x74,0x65,0x6e,0x64,0x73,0x2c,0x66,0x69,0x6e,0x61,0x6c,0x6c,0x79,0x2c,0x66,0x6f,0x72,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x69,0x66,0x2c,0x69,0x6d,0x70,0x6f,0x72,0x74,0x2c,0x6c,0x65,0x74,0x2c,0x6e,0x65,0x77,0x2c,0x72,0x65,0x74,0x75,0x72,0x6e,0x2c,0x73,0x75,0x70,0x65,0x72,0x2c,0x73,0x77,0x69,0x74,0x63,0x68,0x2c,0x74,0x68,0x72,0x6f,0x77,0x2c,0x74,0x72,0x79,0x2c,0x76,0x61,0x72,0x2c,0x76,0x6f,0x69,0x64,0x2c,0x77,0x68,0x69,0x6c,0x65,0x2c,0x77,0x69,0x74,0x68,0x2c,0x79,0x69,0x65,0x6c,0x64,0x22,0x2e,0x73,0x70,0x6c,0x69,0x74,0x28,0x22,0x2c,0x22,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x5c,0x5c,0x62,0x7c,0x5c,0x5c,0x62,0x22,0x29,0x20,0x2b,0x20,0x22,0x5c,0x5c,0x62,0x22,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x72,0x69,0x70,0x53,0x74,0x72,0x69,0x6e,0x67,0x52,0x45,0x20,0x3d,0x20,0x2f,0x27,0x28,0x3f,0x3a,0x5b,0x5e,0x27,0x5c,0x5c,0x5d,0x7c,0x5c,0x5c,0x2e,0x29,0x2a,0x27,0x7c,0x22,0x28,0x3f,0x3a,0x5b,0x5e,0x22,0x5c,0x5c,0x5d,0x7c,0x5c,0x5c,0x2e,0x29,0x2a,0x22,0x7c,0x60,0x28,0x3f,0x3a,0x5b,0x5e,0x60,0x5c,0x5c,0x5d,0x7c,0x5c,0x5c,0x2e,0x29,0x2a,0x5c,0x24,0x5c,0x7b,0x7c,0x5c,0x7d,0x28,0x3f,0x3a,0x5b,0x5e,0x60,0x5c,0x5c,0x5d,0x7c,0x5c,0x5c,0x2e,0x29,0x2a,0x60,0x7c,0x60,0x28,0x3f,0x3a,0x5b,0x5e,0x60,0x5c,0x5c,0x5d,0x7c,0x5c,0x5c,0x2e,0x29,0x2a,0x60,0x2f,0x67,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x61,0x73,0x50,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x61,0x73,0x52,0x61,0x77,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x52,0x61,0x77,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3f,0x20,0x60,0x20,0x24,0x7b,0x65,0x78,0x70,0x7d,0x20,0x60,0x20,0x3a,0x20,0x60,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x24,0x7b,0x61,0x73,0x50,0x61,0x72,0x61,0x6d,0x73,0x20,0x3f,0x20,0x60,0x28,0x24,0x7b,0x65,0x78,0x70,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x7d,0x60,0x20,0x3a,0x20,0x60,0x28,0x24,0x7b,0x65,0x78,0x70,0x7d,0x29,0x60,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x65,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x4d,0x61,0x74,0x63,0x68,0x20,0x3d,0x20,0x65,0x78,0x70,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x73,0x74,0x72,0x69,0x70,0x53,0x74,0x72,0x69,0x6e,0x67,0x52,0x45,0x2c,0x20,0x22,0x22,0x29,0x2e,0x6d,0x61,0x74,0x63,0x68,0x28,0x70,0x72,0x6f,0x68,0x69,0x62,0x69,0x74,0x65,0x64,0x4b,0x65,0x79,0x77,0x6f,0x72,0x64,0x52,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x4d,0x61,0x74,0x63,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x60,0x61,0x76,0x6f,0x69,0x64,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x4a,0x61,0x76,0x61,0x53,0x63,0x72,0x69,0x70,0x74,0x20,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x20,0x61,0x73,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x24,0x7b,0x6b,0x65,0x79,0x77,0x6f,0x72,0x64,0x4d,0x61,0x74,0x63,0x68,0x5b,0x30,0x5d,0x7d,0x22,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x34,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x20,0x26,0x26,0x20,0x65,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x21,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x22,0x20,0x26,0x26,0x20,0x61,0x72,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6c,0x6f,0x74,0x20,0x61,0x72,0x67,0x73,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x65,0x64,0x20,0x61,0x73,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x21,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x20,0x3d,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x61,0x72,0x67,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x61,0x73,0x50,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x61,0x73,0x52,0x61,0x77,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x56,0x61,0x72,0x73,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x61,0x73,0x50,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x61,0x73,0x52,0x61,0x77,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x49,0x66,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x61,0x6c,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x0a,0x20,0x20,0x2f,0x5e,0x28,0x69,0x66,0x7c,0x65,0x6c,0x73,0x65,0x7c,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x29,0x24,0x2f,0x2c,0x0a,0x20,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x49,0x66,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x28,0x69,0x66,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x69,0x73,0x52,0x6f,0x6f,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x69,0x66,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x2d,0x2d,0x20,0x3e,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x2b,0x3d,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x52,0x6f,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x46,0x6f,0x72,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x67,0x65,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x28,0x69,0x66,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x2e,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x46,0x6f,0x72,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x2b,0x20,0x69,0x66,0x4e,0x6f,0x64,0x65,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x49,0x66,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x65,0x6c,0x73,0x65,0x22,0x20,0x26,0x26,0x20,0x28,0x21,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x20,0x7c,0x7c,0x20,0x21,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x20,0x3f,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x20,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x32,0x38,0x2c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x74,0x72,0x75,0x65,0x60,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x66,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x66,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x66,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x4c,0x6f,0x63,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x3a,0x20,0x5b,0x62,0x72,0x61,0x6e,0x63,0x68,0x5d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x28,0x69,0x66,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x28,0x69,0x66,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x73,0x2e,0x69,0x6e,0x64,0x65,0x78,0x4f,0x66,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x2d,0x2d,0x20,0x3e,0x3d,0x20,0x2d,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x3d,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x64,0x65,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x26,0x26,0x20,0x21,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x64,0x65,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x65,0x6c,0x73,0x65,0x2d,0x69,0x66,0x22,0x20,0x26,0x26,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x5b,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x30,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x64,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x66,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x23,0x33,0x36,0x31,0x39,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x20,0x69,0x66,0x20,0x74,0x68,0x65,0x20,0x76,0x2d,0x69,0x66,0x20,0x69,0x73,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x3c,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x2e,0x2e,0x2e,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x73,0x2c,0x20,0x2e,0x2e,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x75,0x73,0x65,0x72,0x4b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x7b,0x20,0x75,0x73,0x65,0x72,0x4b,0x65,0x79,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x61,0x6d,0x65,0x4b,0x65,0x79,0x28,0x75,0x73,0x65,0x72,0x4b,0x65,0x79,0x2c,0x20,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x75,0x73,0x65,0x72,0x4b,0x65,0x79,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x78,0x69,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x28,0x73,0x69,0x62,0x6c,0x69,0x6e,0x67,0x2c,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x76,0x65,0x72,0x73,0x65,0x4e,0x6f,0x64,0x65,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x20,0x6f,0x6e,0x45,0x78,0x69,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x30,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x49,0x66,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x49,0x66,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x65,0x6c,0x73,0x65,0x22,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x49,0x66,0x20,0x26,0x26,0x20,0x21,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x66,0x6f,0x72,0x22,0x29,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3a,0x20,0x5b,0x6e,0x6f,0x64,0x65,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x75,0x73,0x65,0x72,0x4b,0x65,0x79,0x3a,0x20,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x60,0x6b,0x65,0x79,0x60,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x49,0x66,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x46,0x6f,0x72,0x42,0x72,0x61,0x6e,0x63,0x68,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x6b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x6b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x70,0x61,0x73,0x73,0x20,0x69,0x6e,0x20,0x61,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x73,0x6f,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x68,0x65,0x20,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x64,0x65,0x20,0x63,0x61,0x6c,0x6c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6c,0x6f,0x73,0x65,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x43,0x4f,0x4d,0x4d,0x45,0x4e,0x54,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x22,0x76,0x2d,0x69,0x66,0x22,0x27,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x6b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x28,0x62,0x72,0x61,0x6e,0x63,0x68,0x2c,0x20,0x6b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x60,0x6b,0x65,0x79,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x6b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x7d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x53,0x74,0x75,0x62,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x0a,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x20,0x3d,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x28,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x36,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x49,0x66,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x33,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x32,0x30,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x66,0x69,0x72,0x73,0x74,0x43,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x20,0x3d,0x20,0x67,0x65,0x74,0x4d,0x65,0x6d,0x6f,0x65,0x64,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x72,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x54,0x6f,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x28,0x76,0x6e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x2c,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x53,0x61,0x6d,0x65,0x4b,0x65,0x79,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x20,0x7c,0x7c,0x20,0x61,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x62,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x62,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x61,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x45,0x78,0x70,0x20,0x3d,0x20,0x62,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x45,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x34,0x20,0x7c,0x7c,0x20,0x65,0x78,0x70,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x21,0x3d,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x45,0x78,0x70,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x7c,0x7c,0x20,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x45,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x50,0x61,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x42,0x69,0x6e,0x64,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x5f,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x65,0x78,0x70,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x20,0x26,0x26,0x20,0x65,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x21,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x34,0x20,0x7c,0x7c,0x20,0x21,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x35,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x61,0x72,0x67,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x42,0x69,0x6e,0x64,0x53,0x68,0x6f,0x72,0x74,0x68,0x61,0x6e,0x64,0x28,0x64,0x69,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x60,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x20,0x7c,0x7c,0x20,0x22,0x22,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x60,0x24,0x7b,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x20,0x7c,0x7c,0x20,0x22,0x22,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6d,0x6f,0x64,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x6f,0x64,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x61,0x6d,0x65,0x6c,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x43,0x41,0x4d,0x45,0x4c,0x49,0x5a,0x45,0x29,0x7d,0x28,0x24,0x7b,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x29,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x43,0x41,0x4d,0x45,0x4c,0x49,0x5a,0x45,0x29,0x7d,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6d,0x6f,0x64,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x6f,0x64,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x6f,0x70,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x61,0x72,0x67,0x2c,0x20,0x22,0x2e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6d,0x6f,0x64,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x6f,0x64,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x74,0x74,0x72,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x28,0x61,0x72,0x67,0x2c,0x20,0x22,0x5e,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x61,0x72,0x67,0x2c,0x20,0x65,0x78,0x70,0x29,0x5d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x42,0x69,0x6e,0x64,0x53,0x68,0x6f,0x72,0x74,0x68,0x61,0x6e,0x64,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x72,0x67,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x70,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x65,0x66,0x69,0x78,0x20,0x3d,0x20,0x28,0x61,0x72,0x67,0x2c,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x20,0x2b,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x60,0x5c,0x60,0x24,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x7d,0x5c,0x24,0x7b,0x24,0x7b,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x7d,0x5c,0x60,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x60,0x27,0x24,0x7b,0x70,0x72,0x65,0x66,0x69,0x78,0x7d,0x27,0x20,0x2b,0x20,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x46,0x6f,0x72,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x61,0x6c,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x0a,0x20,0x20,0x22,0x66,0x6f,0x72,0x22,0x2c,0x0a,0x20,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x2c,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x46,0x6f,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x28,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x45,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x4c,0x49,0x53,0x54,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x3d,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x6d,0x6f,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x6d,0x65,0x6d,0x6f,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x60,0x6b,0x65,0x79,0x60,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x21,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x42,0x69,0x6e,0x64,0x53,0x68,0x6f,0x72,0x74,0x68,0x61,0x6e,0x64,0x28,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x45,0x78,0x70,0x20,0x3d,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x20,0x26,0x26,0x20,0x28,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x20,0x3f,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x2e,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x3d,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x45,0x78,0x70,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x60,0x6b,0x65,0x79,0x60,0x2c,0x20,0x6b,0x65,0x79,0x45,0x78,0x70,0x29,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x61,0x62,0x6c,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x63,0x6f,0x6e,0x73,0x74,0x54,0x79,0x70,0x65,0x20,0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x61,0x62,0x6c,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x3f,0x20,0x36,0x34,0x20,0x3a,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x20,0x3f,0x20,0x31,0x32,0x38,0x20,0x3a,0x20,0x32,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x45,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x69,0x73,0x53,0x74,0x61,0x62,0x6c,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x63,0x2c,0x20,0x22,0x6b,0x65,0x79,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x33,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x20,0x3d,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3a,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x29,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x20,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x28,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x57,0x72,0x61,0x70,0x70,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x46,0x52,0x41,0x47,0x4d,0x45,0x4e,0x54,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x5d,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x28,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x6b,0x65,0x79,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x21,0x3d,0x3d,0x20,0x21,0x69,0x73,0x53,0x74,0x61,0x62,0x6c,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x21,0x69,0x73,0x53,0x74,0x61,0x62,0x6c,0x65,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4f,0x50,0x45,0x4e,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x67,0x65,0x74,0x56,0x4e,0x6f,0x64,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2e,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x6d,0x6f,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x6f,0x6f,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x6f,0x72,0x4c,0x6f,0x6f,0x70,0x50,0x61,0x72,0x61,0x6d,0x73,0x28,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x5f,0x63,0x61,0x63,0x68,0x65,0x64,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6f,0x70,0x2e,0x62,0x6f,0x64,0x79,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x6d,0x65,0x6d,0x6f,0x20,0x3d,0x20,0x28,0x60,0x2c,0x20,0x6d,0x65,0x6d,0x6f,0x2e,0x65,0x78,0x70,0x2c,0x20,0x60,0x29,0x60,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x69,0x66,0x20,0x28,0x5f,0x63,0x61,0x63,0x68,0x65,0x64,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x6b,0x65,0x79,0x45,0x78,0x70,0x20,0x3f,0x20,0x5b,0x60,0x20,0x26,0x26,0x20,0x5f,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x6b,0x65,0x79,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x2c,0x20,0x6b,0x65,0x79,0x45,0x78,0x70,0x5d,0x20,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x20,0x26,0x26,0x20,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x49,0x53,0x5f,0x4d,0x45,0x4d,0x4f,0x5f,0x53,0x41,0x4d,0x45,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x7d,0x28,0x5f,0x63,0x61,0x63,0x68,0x65,0x64,0x2c,0x20,0x5f,0x6d,0x65,0x6d,0x6f,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x63,0x61,0x63,0x68,0x65,0x64,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x60,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5f,0x69,0x74,0x65,0x6d,0x20,0x3d,0x20,0x60,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x5f,0x69,0x74,0x65,0x6d,0x2e,0x6d,0x65,0x6d,0x6f,0x20,0x3d,0x20,0x5f,0x6d,0x65,0x6d,0x6f,0x60,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x69,0x74,0x65,0x6d,0x60,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x45,0x78,0x70,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x6f,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x5f,0x63,0x61,0x63,0x68,0x65,0x60,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x45,0x78,0x70,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x6f,0x72,0x4c,0x6f,0x6f,0x70,0x50,0x61,0x72,0x61,0x6d,0x73,0x28,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x2e,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x46,0x6f,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x31,0x2c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x66,0x6f,0x72,0x50,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x32,0x2c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x46,0x6f,0x72,0x50,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x61,0x64,0x64,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x7d,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x41,0x6c,0x69,0x61,0x73,0x3a,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x41,0x6c,0x69,0x61,0x73,0x3a,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x49,0x6e,0x64,0x65,0x78,0x41,0x6c,0x69,0x61,0x73,0x3a,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3f,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3a,0x20,0x5b,0x6e,0x6f,0x64,0x65,0x5d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x4e,0x6f,0x64,0x65,0x28,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x46,0x6f,0x72,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x78,0x69,0x74,0x20,0x3d,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x43,0x6f,0x64,0x65,0x67,0x65,0x6e,0x28,0x66,0x6f,0x72,0x4e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x46,0x6f,0x72,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x45,0x78,0x69,0x74,0x29,0x20,0x6f,0x6e,0x45,0x78,0x69,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x46,0x6f,0x72,0x50,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x69,0x6e,0x64,0x65,0x78,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x2e,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x6f,0x72,0x4c,0x6f,0x6f,0x70,0x50,0x61,0x72,0x61,0x6d,0x73,0x28,0x7b,0x20,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x20,0x7d,0x2c,0x20,0x6d,0x65,0x6d,0x6f,0x41,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x61,0x72,0x61,0x6d,0x73,0x4c,0x69,0x73,0x74,0x28,0x5b,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x2c,0x20,0x2e,0x2e,0x2e,0x6d,0x65,0x6d,0x6f,0x41,0x72,0x67,0x73,0x5d,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x61,0x72,0x61,0x6d,0x73,0x4c,0x69,0x73,0x74,0x28,0x61,0x72,0x67,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x61,0x72,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x0a,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x69,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x73,0x5b,0x69,0x5d,0x29,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x61,0x72,0x67,0x73,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x30,0x2c,0x20,0x69,0x20,0x2b,0x20,0x31,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x61,0x72,0x67,0x2c,0x20,0x69,0x32,0x29,0x20,0x3d,0x3e,0x20,0x61,0x72,0x67,0x20,0x7c,0x7c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x5f,0x60,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x28,0x69,0x32,0x20,0x2b,0x20,0x31,0x29,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x60,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x63,0x6b,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x73,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x53,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x53,0x6c,0x6f,0x74,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x53,0x6c,0x6f,0x74,0x2b,0x2b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x53,0x6c,0x6f,0x74,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x75,0x69,0x6c,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x46,0x6e,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x5f,0x76,0x46,0x6f,0x72,0x45,0x78,0x70,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3f,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x6c,0x6f,0x63,0x20,0x3a,0x20,0x6c,0x6f,0x63,0x0a,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x62,0x75,0x69,0x6c,0x64,0x53,0x6c,0x6f,0x74,0x46,0x6e,0x20,0x3d,0x20,0x62,0x75,0x69,0x6c,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x46,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x57,0x49,0x54,0x48,0x5f,0x43,0x54,0x58,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x53,0x6c,0x6f,0x74,0x20,0x3e,0x20,0x30,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x46,0x6f,0x72,0x20,0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x61,0x72,0x67,0x2c,0x20,0x65,0x78,0x70,0x20,0x7d,0x20,0x3d,0x20,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x61,0x72,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x20,0x7c,0x7c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x53,0x6c,0x6f,0x74,0x46,0x6e,0x28,0x65,0x78,0x70,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x4e,0x61,0x6d,0x65,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x65,0x6e,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x42,0x72,0x61,0x6e,0x63,0x68,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7c,0x7c,0x20,0x21,0x28,0x73,0x6c,0x6f,0x74,0x44,0x69,0x72,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x37,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x44,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3a,0x20,0x73,0x6c,0x6f,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x73,0x6c,0x6f,0x74,0x4c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x3a,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x60,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x3a,0x20,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x64,0x69,0x72,0x4c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x44,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3f,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x60,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x46,0x6f,0x72,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x22,0x66,0x6f,0x72,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x62,0x75,0x69,0x6c,0x64,0x53,0x6c,0x6f,0x74,0x46,0x6e,0x28,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x76,0x46,0x6f,0x72,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x4c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x49,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x45,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x49,0x66,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x22,0x69,0x66,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x49,0x66,0x2e,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x28,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x42,0x72,0x61,0x6e,0x63,0x68,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x45,0x6c,0x73,0x65,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x5e,0x65,0x6c,0x73,0x65,0x28,0x2d,0x69,0x66,0x29,0x3f,0x24,0x2f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x45,0x6d,0x70,0x74,0x79,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6a,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x65,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x6a,0x2d,0x2d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x76,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x65,0x76,0x20,0x26,0x26,0x20,0x69,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x4e,0x6f,0x64,0x65,0x28,0x70,0x72,0x65,0x76,0x29,0x20,0x26,0x26,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x70,0x72,0x65,0x76,0x2c,0x20,0x2f,0x5e,0x28,0x65,0x6c,0x73,0x65,0x2d,0x29,0x3f,0x69,0x66,0x24,0x2f,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x5b,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x28,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2e,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x39,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2e,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2e,0x61,0x6c,0x74,0x65,0x72,0x6e,0x61,0x74,0x65,0x20,0x3d,0x20,0x76,0x45,0x6c,0x73,0x65,0x2e,0x65,0x78,0x70,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x45,0x6c,0x73,0x65,0x2e,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x42,0x72,0x61,0x6e,0x63,0x68,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x46,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x28,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x63,0x6f,0x6e,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x42,0x72,0x61,0x6e,0x63,0x68,0x49,0x6e,0x64,0x65,0x78,0x2b,0x2b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x30,0x2c,0x20,0x76,0x45,0x6c,0x73,0x65,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x76,0x46,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x76,0x46,0x6f,0x72,0x2e,0x66,0x6f,0x72,0x50,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6e,0x61,0x6c,0x69,0x7a,0x65,0x46,0x6f,0x72,0x50,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x28,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x4c,0x49,0x53,0x54,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x6f,0x72,0x4c,0x6f,0x6f,0x70,0x50,0x61,0x72,0x61,0x6d,0x73,0x28,0x70,0x61,0x72,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x28,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x33,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x46,0x6f,0x72,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x69,0x63,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x65,0x6e,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x68,0x61,0x73,0x28,0x73,0x74,0x61,0x74,0x69,0x63,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x33,0x38,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x4c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x6e,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x61,0x64,0x64,0x28,0x73,0x74,0x61,0x74,0x69,0x63,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x61,0x74,0x69,0x63,0x53,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x4e,0x61,0x6d,0x65,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x6c,0x6f,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x32,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6e,0x20,0x3d,0x20,0x62,0x75,0x69,0x6c,0x64,0x53,0x6c,0x6f,0x74,0x46,0x6e,0x28,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x32,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x60,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x60,0x2c,0x20,0x66,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x62,0x75,0x69,0x6c,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x23,0x33,0x37,0x36,0x36,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x74,0x68,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x3a,0x20,0x27,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x27,0x2c,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x73,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x77,0x69,0x6c,0x6c,0x20,0x65,0x6e,0x64,0x20,0x75,0x70,0x20,0x69,0x6e,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x20,0x49,0x67,0x6e,0x6f,0x72,0x65,0x20,0x69,0x66,0x20,0x61,0x6c,0x6c,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x61,0x72,0x65,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6e,0x6f,0x64,0x65,0x32,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x32,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4e,0x61,0x6d,0x65,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x6c,0x6f,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x33,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x53,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x69,0x6d,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3f,0x20,0x32,0x20,0x3a,0x20,0x68,0x61,0x73,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x65,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x3f,0x20,0x33,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x63,0x6f,0x6e,0x63,0x61,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x5f,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x32,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x62,0x75,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x3d,0x20,0x63,0x61,0x6e,0x20,0x73,0x6b,0x69,0x70,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x62,0x75,0x74,0x20,0x6d,0x75,0x73,0x74,0x20,0x72,0x75,0x6e,0x20,0x64,0x69,0x66,0x66,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x31,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x61,0x6e,0x64,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x63,0x61,0x6e,0x20,0x73,0x6b,0x69,0x70,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x61,0x74,0x69,0x6f,0x6e,0x20,0x41,0x4e,0x44,0x20,0x64,0x69,0x66,0x66,0x20,0x61,0x73,0x20,0x6f,0x70,0x74,0x69,0x6d,0x69,0x7a,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x20,0x2b,0x20,0x28,0x60,0x20,0x2f,0x2a,0x20,0x24,0x7b,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x73,0x54,0x65,0x78,0x74,0x5b,0x73,0x6c,0x6f,0x74,0x46,0x6c,0x61,0x67,0x5d,0x7d,0x20,0x2a,0x2f,0x60,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x53,0x4c,0x4f,0x54,0x53,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x6e,0x2c,0x20,0x69,0x6e,0x64,0x65,0x78,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x60,0x6e,0x61,0x6d,0x65,0x60,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x60,0x66,0x6e,0x60,0x2c,0x20,0x66,0x6e,0x29,0x0a,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x60,0x6b,0x65,0x79,0x60,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x69,0x6e,0x64,0x65,0x78,0x29,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x65,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x65,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x39,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x65,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x30,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x31,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x46,0x6f,0x72,0x77,0x61,0x72,0x64,0x65,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x32,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x3f,0x20,0x21,0x21,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x3a,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x57,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x49,0x6d,0x70,0x6f,0x72,0x74,0x4d,0x61,0x70,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x6f,0x73,0x74,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x61,0x67,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x3d,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3a,0x20,0x60,0x22,0x24,0x7b,0x74,0x61,0x67,0x7d,0x22,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x69,0x73,0x4f,0x62,0x6a,0x65,0x63,0x74,0x28,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x29,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x2e,0x63,0x61,0x6c,0x6c,0x65,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x76,0x6e,0x6f,0x64,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x6d,0x61,0x79,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x20,0x74,0x6f,0x20,0x70,0x6c,0x61,0x69,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x45,0x4c,0x45,0x50,0x4f,0x52,0x54,0x20,0x7c,0x7c,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x53,0x55,0x53,0x50,0x45,0x4e,0x53,0x45,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x3c,0x73,0x76,0x67,0x3e,0x20,0x61,0x6e,0x64,0x20,0x3c,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x3e,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x20,0x66,0x6f,0x72,0x63,0x65,0x64,0x20,0x69,0x6e,0x74,0x6f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x20,0x73,0x6f,0x20,0x74,0x68,0x61,0x74,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x73,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x67,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x20,0x69,0x73,0x53,0x56,0x47,0x20,0x66,0x6c,0x61,0x67,0x20,0x61,0x74,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x20,0x28,0x23,0x36,0x33,0x39,0x2c,0x20,0x23,0x36,0x34,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x74,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x6c,0x79,0x20,0x77,0x65,0x62,0x2d,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x2c,0x20,0x62,0x75,0x74,0x20,0x73,0x70,0x6c,0x69,0x74,0x74,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x6c,0x6f,0x67,0x69,0x63,0x20,0x6f,0x75,0x74,0x20,0x6f,0x66,0x20,0x63,0x6f,0x72,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x65,0x61,0x64,0x73,0x20,0x74,0x6f,0x20,0x74,0x6f,0x6f,0x20,0x6d,0x75,0x63,0x68,0x20,0x75,0x6e,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x78,0x69,0x74,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x42,0x75,0x69,0x6c,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x62,0x75,0x69,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x42,0x75,0x69,0x6c,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x42,0x75,0x69,0x6c,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x42,0x75,0x69,0x6c,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x42,0x75,0x69,0x6c,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x26,0x26,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x64,0x69,0x72,0x29,0x20,0x3d,0x3e,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x41,0x72,0x67,0x73,0x28,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x42,0x75,0x69,0x6c,0x64,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x4b,0x45,0x45,0x50,0x5f,0x41,0x4c,0x49,0x56,0x45,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x31,0x30,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x36,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x42,0x75,0x69,0x6c,0x64,0x41,0x73,0x53,0x6c,0x6f,0x74,0x73,0x20,0x3d,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x20,0x72,0x65,0x61,0x6c,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x61,0x6e,0x64,0x20,0x68,0x61,0x73,0x20,0x64,0x65,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x68,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x54,0x45,0x4c,0x45,0x50,0x4f,0x52,0x54,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x65,0x78,0x70,0x6c,0x61,0x69,0x6e,0x65,0x64,0x20,0x61,0x62,0x6f,0x76,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x4b,0x45,0x45,0x50,0x5f,0x41,0x4c,0x49,0x56,0x45,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x42,0x75,0x69,0x6c,0x64,0x41,0x73,0x53,0x6c,0x6f,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x20,0x7d,0x20,0x3d,0x20,0x62,0x75,0x69,0x6c,0x64,0x53,0x6c,0x6f,0x74,0x73,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x53,0x6c,0x6f,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x31,0x30,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x54,0x45,0x4c,0x45,0x50,0x4f,0x52,0x54,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x54,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x35,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x54,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x54,0x65,0x78,0x74,0x43,0x68,0x69,0x6c,0x64,0x20,0x7c,0x7c,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x20,0x26,0x26,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x43,0x61,0x6c,0x6c,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x54,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x3f,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x20,0x3a,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x6e,0x6f,0x64,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x21,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x73,0x73,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x74,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x3d,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x69,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x20,0x65,0x6d,0x70,0x74,0x79,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x6f,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x78,0x70,0x6c,0x69,0x63,0x69,0x74,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x7c,0x7c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x69,0x73,0x60,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x20,0x26,0x26,0x20,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x75,0x65,0x3a,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x61,0x67,0x20,0x3d,0x20,0x69,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x20,0x3d,0x20,0x69,0x73,0x43,0x6f,0x72,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x73,0x72,0x29,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x75,0x69,0x6c,0x74,0x49,0x6e,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x43,0x4f,0x4d,0x50,0x4f,0x4e,0x45,0x4e,0x54,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2e,0x61,0x64,0x64,0x28,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x6f,0x56,0x61,0x6c,0x69,0x64,0x41,0x73,0x73,0x65,0x74,0x49,0x64,0x28,0x74,0x61,0x67,0x2c,0x20,0x60,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x60,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x69,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x73,0x73,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x61,0x67,0x2c,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4c,0x6f,0x63,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x52,0x65,0x66,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x43,0x6c,0x61,0x73,0x73,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x53,0x74,0x79,0x6c,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x45,0x76,0x65,0x6e,0x74,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x56,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x73,0x68,0x4d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x20,0x3d,0x20,0x28,0x61,0x72,0x67,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x64,0x65,0x64,0x75,0x70,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x29,0x2c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x29,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x61,0x72,0x67,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x75,0x73,0x68,0x52,0x65,0x66,0x56,0x46,0x6f,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x73,0x2e,0x76,0x46,0x6f,0x72,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x72,0x65,0x66,0x5f,0x66,0x6f,0x72,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x6e,0x61,0x6c,0x79,0x7a,0x65,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x20,0x28,0x7b,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x45,0x76,0x65,0x6e,0x74,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x69,0x73,0x4f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x76,0x65,0x6e,0x74,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x26,0x26,0x20,0x28,0x21,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x69,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x6f,0x6d,0x69,0x74,0x20,0x74,0x68,0x65,0x20,0x66,0x6c,0x61,0x67,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x69,0x63,0x6b,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x67,0x69,0x76,0x65,0x73,0x20,0x63,0x6c,0x69,0x63,0x6b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x64,0x65,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x22,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x6f,0x6d,0x69,0x74,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x6f,0x6d,0x69,0x74,0x20,0x6f,0x6e,0x56,0x6e,0x6f,0x64,0x65,0x58,0x58,0x58,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x45,0x76,0x65,0x6e,0x74,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x76,0x65,0x6e,0x74,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x26,0x26,0x20,0x69,0x73,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x50,0x72,0x6f,0x70,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x56,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x76,0x65,0x6e,0x74,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x30,0x20,0x7c,0x7c,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x29,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x72,0x65,0x66,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x52,0x65,0x66,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x43,0x6c,0x61,0x73,0x73,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x53,0x74,0x79,0x6c,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6b,0x65,0x79,0x22,0x20,0x26,0x26,0x20,0x21,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x20,0x7c,0x7c,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x26,0x26,0x20,0x21,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6c,0x6f,0x63,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x72,0x65,0x66,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x52,0x65,0x66,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x52,0x65,0x66,0x56,0x46,0x6f,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x73,0x22,0x20,0x26,0x26,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x75,0x65,0x3a,0x22,0x29,0x20,0x7c,0x7c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x22,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3f,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x6f,0x63,0x20,0x3a,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x61,0x72,0x67,0x2c,0x20,0x65,0x78,0x70,0x2c,0x20,0x6c,0x6f,0x63,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x56,0x4f,0x6e,0x20,0x3d,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x22,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x6c,0x6f,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x30,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x63,0x65,0x22,0x20,0x7c,0x7c,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x65,0x6d,0x6f,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x73,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x61,0x72,0x67,0x2c,0x20,0x22,0x69,0x73,0x22,0x29,0x20,0x26,0x26,0x20,0x28,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4f,0x6e,0x20,0x26,0x26,0x20,0x73,0x73,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x23,0x39,0x33,0x38,0x3a,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x6b,0x65,0x79,0x73,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x20,0x66,0x6f,0x72,0x63,0x65,0x64,0x20,0x69,0x6e,0x74,0x6f,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x61,0x72,0x67,0x2c,0x20,0x22,0x6b,0x65,0x79,0x22,0x29,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x75,0x70,0x64,0x61,0x74,0x65,0x20,0x68,0x6f,0x6f,0x6b,0x73,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x66,0x6f,0x72,0x63,0x65,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x73,0x6f,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x69,0x6e,0x76,0x6f,0x6b,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x65,0x66,0x6f,0x72,0x65,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x56,0x4f,0x6e,0x20,0x26,0x26,0x20,0x68,0x61,0x73,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x61,0x72,0x67,0x2c,0x20,0x22,0x76,0x75,0x65,0x3a,0x62,0x65,0x66,0x6f,0x72,0x65,0x2d,0x75,0x70,0x64,0x61,0x74,0x65,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x61,0x72,0x67,0x2c,0x20,0x22,0x72,0x65,0x66,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x52,0x65,0x66,0x56,0x46,0x6f,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x28,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x7c,0x7c,0x20,0x69,0x73,0x56,0x4f,0x6e,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x73,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x52,0x65,0x66,0x56,0x46,0x6f,0x72,0x4d,0x61,0x72,0x6b,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x4d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x4d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x65,0x65,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x53,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x3a,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3f,0x20,0x5b,0x65,0x78,0x70,0x5d,0x20,0x3a,0x20,0x5b,0x65,0x78,0x70,0x2c,0x20,0x60,0x74,0x72,0x75,0x65,0x60,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x3f,0x20,0x33,0x34,0x20,0x3a,0x20,0x33,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x42,0x69,0x6e,0x64,0x20,0x26,0x26,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x28,0x6d,0x6f,0x64,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x6f,0x64,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x6f,0x70,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x6e,0x61,0x6d,0x65,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x32,0x2c,0x20,0x6e,0x65,0x65,0x64,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x70,0x72,0x6f,0x70,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x73,0x73,0x72,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x32,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x61,0x6e,0x61,0x6c,0x79,0x7a,0x65,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x56,0x4f,0x6e,0x20,0x26,0x26,0x20,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x61,0x72,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x4d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x70,0x72,0x6f,0x70,0x73,0x32,0x2c,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4c,0x6f,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x2e,0x2e,0x2e,0x70,0x72,0x6f,0x70,0x73,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x65,0x64,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x6e,0x65,0x65,0x64,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x49,0x6d,0x70,0x6f,0x72,0x74,0x4d,0x61,0x70,0x2e,0x73,0x65,0x74,0x28,0x70,0x72,0x6f,0x70,0x2c,0x20,0x6e,0x65,0x65,0x64,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x75,0x73,0x68,0x4d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4d,0x45,0x52,0x47,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x72,0x67,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x4c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x31,0x36,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x43,0x6c,0x61,0x73,0x73,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x53,0x74,0x79,0x6c,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x45,0x76,0x65,0x6e,0x74,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x20,0x26,0x26,0x20,0x28,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x33,0x32,0x29,0x20,0x26,0x26,0x20,0x28,0x68,0x61,0x73,0x52,0x65,0x66,0x20,0x7c,0x7c,0x20,0x68,0x61,0x73,0x56,0x6e,0x6f,0x64,0x65,0x48,0x6f,0x6f,0x6b,0x20,0x7c,0x7c,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x20,0x7c,0x3d,0x20,0x35,0x31,0x32,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x20,0x26,0x26,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x35,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x4b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x4b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x2d,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x69,0x5d,0x2e,0x6b,0x65,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x4b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x4b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x20,0x3d,0x20,0x69,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x21,0x6b,0x65,0x79,0x2e,0x69,0x73,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6c,0x61,0x73,0x73,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x63,0x6c,0x61,0x73,0x73,0x4b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x73,0x74,0x79,0x6c,0x65,0x4b,0x65,0x79,0x49,0x6e,0x64,0x65,0x78,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6c,0x61,0x73,0x73,0x50,0x72,0x6f,0x70,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x63,0x6c,0x61,0x73,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x43,0x4c,0x41,0x53,0x53,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x63,0x6c,0x61,0x73,0x73,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x69,0x73,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x64,0x20,0x69,0x6e,0x74,0x6f,0x20,0x61,0x6e,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x6f,0x20,0x75,0x73,0x65,0x20,0x60,0x68,0x61,0x73,0x53,0x74,0x79,0x6c,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x60,0x20,0x74,0x6f,0x20,0x65,0x6e,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x74,0x20,0x69,0x73,0x20,0x61,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x68,0x61,0x73,0x53,0x74,0x79,0x6c,0x65,0x42,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x7c,0x7c,0x20,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x60,0x5b,0x60,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x3a,0x73,0x74,0x79,0x6c,0x65,0x20,0x61,0x6e,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x20,0x62,0x6f,0x74,0x68,0x20,0x65,0x78,0x69,0x73,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x76,0x2d,0x62,0x69,0x6e,0x64,0x3a,0x73,0x74,0x79,0x6c,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x6c,0x69,0x74,0x65,0x72,0x61,0x6c,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x37,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x53,0x54,0x59,0x4c,0x45,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x73,0x74,0x79,0x6c,0x65,0x50,0x72,0x6f,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x31,0x34,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x4e,0x4f,0x52,0x4d,0x41,0x4c,0x49,0x5a,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x47,0x55,0x41,0x52,0x44,0x5f,0x52,0x45,0x41,0x43,0x54,0x49,0x56,0x45,0x5f,0x50,0x52,0x4f,0x50,0x53,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x70,0x72,0x6f,0x70,0x73,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x3a,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x55,0x73,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x28,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x4d,0x61,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x65,0x72,0x74,0x69,0x65,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x72,0x6f,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x20,0x7c,0x7c,0x20,0x21,0x70,0x72,0x6f,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x73,0x2e,0x67,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x20,0x7c,0x7c,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6c,0x61,0x73,0x73,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x50,0x72,0x6f,0x70,0x73,0x2e,0x73,0x65,0x74,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x72,0x6f,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x64,0x75,0x70,0x65,0x64,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x72,0x67,0x65,0x41,0x73,0x41,0x72,0x72,0x61,0x79,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2c,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x69,0x6e,0x63,0x6f,0x6d,0x69,0x6e,0x67,0x2e,0x76,0x61,0x6c,0x75,0x65,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x69,0x73,0x74,0x69,0x6e,0x67,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x69,0x6c,0x64,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x41,0x72,0x67,0x73,0x28,0x64,0x69,0x72,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x3d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x49,0x6d,0x70,0x6f,0x72,0x74,0x4d,0x61,0x70,0x2e,0x67,0x65,0x74,0x28,0x64,0x69,0x72,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x52,0x45,0x53,0x4f,0x4c,0x56,0x45,0x5f,0x44,0x49,0x52,0x45,0x43,0x54,0x49,0x56,0x45,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x61,0x64,0x64,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x74,0x6f,0x56,0x61,0x6c,0x69,0x64,0x41,0x73,0x73,0x65,0x74,0x49,0x64,0x28,0x64,0x69,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x60,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x60,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x76,0x6f,0x69,0x64,0x20,0x30,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x6b,0x65,0x79,0x73,0x28,0x64,0x69,0x72,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x76,0x6f,0x69,0x64,0x20,0x30,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x76,0x6f,0x69,0x64,0x20,0x30,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x75,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x74,0x72,0x75,0x65,0x60,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x20,0x3d,0x3e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x2c,0x20,0x74,0x72,0x75,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x72,0x72,0x61,0x79,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x64,0x69,0x72,0x41,0x72,0x67,0x73,0x2c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x50,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x4e,0x61,0x6d,0x65,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x60,0x5b,0x60,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x2c,0x20,0x6c,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6c,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x4e,0x61,0x6d,0x65,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x2b,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x20,0x3c,0x20,0x6c,0x20,0x2d,0x20,0x31,0x29,0x20,0x70,0x72,0x6f,0x70,0x73,0x4e,0x61,0x6d,0x65,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x2b,0x3d,0x20,0x22,0x2c,0x20,0x22,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x70,0x72,0x6f,0x70,0x73,0x4e,0x61,0x6d,0x65,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x2b,0x20,0x60,0x5d,0x60,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x22,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x7d,0x20,0x3d,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x6c,0x6f,0x74,0x41,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3f,0x20,0x60,0x5f,0x63,0x74,0x78,0x2e,0x24,0x73,0x6c,0x6f,0x74,0x73,0x60,0x20,0x3a,0x20,0x60,0x24,0x73,0x6c,0x6f,0x74,0x73,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x7b,0x7d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4c,0x65,0x6e,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x41,0x72,0x67,0x73,0x5b,0x32,0x5d,0x20,0x3d,0x20,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4c,0x65,0x6e,0x20,0x3d,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x41,0x72,0x67,0x73,0x5b,0x33,0x5d,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x5d,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4c,0x65,0x6e,0x20,0x3d,0x20,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x26,0x26,0x20,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x6c,0x6f,0x74,0x74,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4c,0x65,0x6e,0x20,0x3d,0x20,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x41,0x72,0x67,0x73,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x4c,0x65,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x52,0x45,0x4e,0x44,0x45,0x52,0x5f,0x53,0x4c,0x4f,0x54,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x41,0x72,0x67,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x60,0x22,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x60,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6e,0x61,0x6d,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x50,0x72,0x6f,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x70,0x2e,0x61,0x72,0x67,0x2c,0x20,0x22,0x6e,0x61,0x6d,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x70,0x2e,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x70,0x2e,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x2e,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x6e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x70,0x2e,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x20,0x26,0x26,0x20,0x70,0x2e,0x61,0x72,0x67,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x70,0x2e,0x61,0x72,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x2e,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x70,0x2e,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x50,0x72,0x6f,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x50,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x2c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x7d,0x20,0x3d,0x20,0x62,0x75,0x69,0x6c,0x64,0x50,0x72,0x6f,0x70,0x73,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4e,0x61,0x6d,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x70,0x72,0x6f,0x70,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x33,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x73,0x6c,0x6f,0x74,0x50,0x72,0x6f,0x70,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x24,0x31,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x6f,0x72,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6c,0x6f,0x63,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x61,0x72,0x67,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x20,0x26,0x26,0x20,0x21,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x33,0x35,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x72,0x67,0x2e,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x6e,0x6f,0x64,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x31,0x2c,0x20,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x75,0x65,0x3a,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x60,0x76,0x6e,0x6f,0x64,0x65,0x2d,0x24,0x7b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2e,0x73,0x6c,0x69,0x63,0x65,0x28,0x34,0x29,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x22,0x76,0x6e,0x6f,0x64,0x65,0x22,0x29,0x20,0x7c,0x7c,0x20,0x21,0x2f,0x5b,0x41,0x2d,0x5a,0x5d,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x20,0x3f,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x6e,0x6f,0x6e,0x2d,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x61,0x6e,0x64,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x6c,0x69,0x66,0x65,0x63,0x79,0x63,0x6c,0x65,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x2c,0x20,0x61,0x75,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x74,0x20,0x74,0x6f,0x20,0x63,0x61,0x6d,0x65,0x6c,0x43,0x61,0x73,0x65,0x2e,0x20,0x53,0x65,0x65,0x20,0x69,0x73,0x73,0x75,0x65,0x20,0x23,0x32,0x32,0x34,0x39,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x28,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x29,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x72,0x65,0x73,0x65,0x72,0x76,0x65,0x20,0x63,0x61,0x73,0x65,0x20,0x66,0x6f,0x72,0x20,0x70,0x6c,0x61,0x69,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x73,0x20,0x74,0x68,0x61,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x75,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2c,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x6d,0x61,0x79,0x20,0x62,0x65,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x27,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x65,0x76,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x6f,0x6e,0x3a,0x24,0x7b,0x72,0x61,0x77,0x4e,0x61,0x6d,0x65,0x7d,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x5f,0x4b,0x45,0x59,0x29,0x7d,0x28,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x29,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x75,0x6e,0x73,0x68,0x69,0x66,0x74,0x28,0x60,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x54,0x4f,0x5f,0x48,0x41,0x4e,0x44,0x4c,0x45,0x52,0x5f,0x4b,0x45,0x59,0x29,0x7d,0x28,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x20,0x26,0x26,0x20,0x21,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x20,0x26,0x26,0x20,0x21,0x65,0x78,0x70,0x20,0x26,0x26,0x20,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x56,0x4f,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x20,0x3d,0x20,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x78,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x21,0x28,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x20,0x7c,0x7c,0x20,0x69,0x73,0x46,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x78,0x70,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x60,0x3b,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x69,0x73,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3f,0x20,0x60,0x24,0x65,0x76,0x65,0x6e,0x74,0x60,0x20,0x3a,0x20,0x60,0x24,0x7b,0x60,0x60,0x7d,0x28,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x60,0x7d,0x20,0x3d,0x3e,0x20,0x24,0x7b,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3f,0x20,0x60,0x7b,0x60,0x20,0x3a,0x20,0x60,0x28,0x60,0x7d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x53,0x74,0x61,0x74,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x3f,0x20,0x60,0x7d,0x60,0x20,0x3a,0x20,0x60,0x29,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x7c,0x7c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x7d,0x60,0x2c,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x20,0x3d,0x20,0x61,0x75,0x67,0x6d,0x65,0x6e,0x74,0x6f,0x72,0x28,0x72,0x65,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x68,0x6f,0x75,0x6c,0x64,0x43,0x61,0x63,0x68,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x28,0x72,0x65,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x30,0x5d,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x69,0x73,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x68,0x61,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x78,0x74,0x24,0x31,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x73,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x6a,0x20,0x3d,0x20,0x69,0x20,0x2b,0x20,0x31,0x3b,0x20,0x6a,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x6a,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x78,0x74,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x6a,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x78,0x74,0x24,0x31,0x28,0x6e,0x65,0x78,0x74,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x63,0x68,0x69,0x6c,0x64,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x70,0x75,0x73,0x68,0x28,0x60,0x20,0x2b,0x20,0x60,0x2c,0x20,0x6e,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x73,0x70,0x6c,0x69,0x63,0x65,0x28,0x6a,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6a,0x2d,0x2d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6e,0x74,0x61,0x69,0x6e,0x65,0x72,0x20,0x3d,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x68,0x61,0x73,0x54,0x65,0x78,0x74,0x20,0x7c,0x7c,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x61,0x20,0x70,0x6c,0x61,0x69,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x73,0x69,0x6e,0x67,0x6c,0x65,0x20,0x74,0x65,0x78,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x6c,0x65,0x61,0x76,0x65,0x20,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x61,0x73,0x2d,0x69,0x73,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x68,0x61,0x73,0x20,0x64,0x65,0x64,0x69,0x63,0x61,0x74,0x65,0x64,0x20,0x66,0x61,0x73,0x74,0x20,0x70,0x61,0x74,0x68,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x69,0x73,0x20,0x62,0x79,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x6c,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x72,0x6f,0x6f,0x74,0x20,0x69,0x74,0x27,0x73,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x61,0x6e,0x79,0x77,0x61,0x79,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x23,0x33,0x37,0x35,0x36,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x20,0x63,0x61,0x6e,0x20,0x70,0x6f,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x6c,0x79,0x20,0x61,0x64,0x64,0x20,0x44,0x4f,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x61,0x72,0x62,0x69,0x74,0x72,0x61,0x72,0x69,0x6c,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x65,0x20,0x6e,0x65,0x65,0x64,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x20,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x61,0x74,0x20,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x61,0x76,0x6f,0x69,0x64,0x20,0x61,0x63,0x63,0x69,0x64,0x65,0x6e,0x74,0x61,0x6c,0x6c,0x79,0x20,0x6f,0x76,0x65,0x72,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x44,0x4f,0x4d,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x61,0x64,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x79,0x20,0x74,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x74,0x68,0x72,0x6f,0x75,0x67,0x68,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x21,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x66,0x69,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x5b,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x20,0x6d,0x6f,0x64,0x65,0x2c,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x20,0x74,0x61,0x67,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x6e,0x6f,0x20,0x73,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x61,0x73,0x20,0x61,0x20,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x73,0x6f,0x20,0x69,0x74,0x73,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x6d,0x75,0x73,0x74,0x20,0x62,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x65,0x64,0x20,0x69,0x6e,0x74,0x6f,0x20,0x76,0x6e,0x6f,0x64,0x65,0x73,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x54,0x65,0x78,0x74,0x24,0x31,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x38,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x6c,0x6c,0x41,0x72,0x67,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x32,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x21,0x3d,0x3d,0x20,0x22,0x20,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x73,0x73,0x72,0x20,0x26,0x26,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x63,0x68,0x69,0x6c,0x64,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x41,0x72,0x67,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x20,0x2b,0x20,0x28,0x60,0x20,0x2f,0x2a,0x20,0x24,0x7b,0x50,0x61,0x74,0x63,0x68,0x46,0x6c,0x61,0x67,0x4e,0x61,0x6d,0x65,0x73,0x5b,0x31,0x5d,0x7d,0x20,0x2a,0x2f,0x60,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x31,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x43,0x52,0x45,0x41,0x54,0x45,0x5f,0x54,0x45,0x58,0x54,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x6c,0x6c,0x41,0x72,0x67,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x65,0x6e,0x24,0x31,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x6f,0x6e,0x63,0x65,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x73,0x65,0x65,0x6e,0x24,0x31,0x2e,0x68,0x61,0x73,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x56,0x4f,0x6e,0x63,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x53,0x53,0x52,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x6e,0x24,0x31,0x2e,0x61,0x64,0x64,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x56,0x4f,0x6e,0x63,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x53,0x45,0x54,0x5f,0x42,0x4c,0x4f,0x43,0x4b,0x5f,0x54,0x52,0x41,0x43,0x4b,0x49,0x4e,0x47,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x6e,0x56,0x4f,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x75,0x72,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x72,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x75,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x6f,0x64,0x65,0x6c,0x24,0x31,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x78,0x70,0x2c,0x20,0x61,0x72,0x67,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x31,0x2c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x6f,0x70,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x61,0x77,0x45,0x78,0x70,0x20,0x3d,0x20,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x78,0x70,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x65,0x78,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x3f,0x20,0x65,0x78,0x70,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x72,0x61,0x77,0x45,0x78,0x70,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x65,0x74,0x61,0x64,0x61,0x74,0x61,0x5b,0x72,0x61,0x77,0x45,0x78,0x70,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x6f,0x70,0x73,0x22,0x20,0x7c,0x7c,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x6f,0x70,0x73,0x2d,0x61,0x6c,0x69,0x61,0x73,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x34,0x2c,0x20,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x6f,0x70,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x79,0x62,0x65,0x52,0x65,0x66,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x53,0x74,0x72,0x69,0x6e,0x67,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x20,0x7c,0x7c,0x20,0x21,0x69,0x73,0x4d,0x65,0x6d,0x62,0x65,0x72,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x78,0x70,0x29,0x20,0x26,0x26,0x20,0x21,0x6d,0x61,0x79,0x62,0x65,0x52,0x65,0x66,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x32,0x2c,0x20,0x65,0x78,0x70,0x2e,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x6f,0x70,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x20,0x3f,0x20,0x61,0x72,0x67,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x61,0x72,0x67,0x20,0x3f,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x61,0x72,0x67,0x29,0x20,0x3f,0x20,0x60,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x24,0x7b,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x28,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x7d,0x60,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x27,0x22,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x22,0x20,0x2b,0x20,0x27,0x2c,0x20,0x61,0x72,0x67,0x5d,0x29,0x20,0x3a,0x20,0x60,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x60,0x3b,0x0a,0x20,0x20,0x6c,0x65,0x74,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x6d,0x65,0x6e,0x74,0x45,0x78,0x70,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x41,0x72,0x67,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x73,0x54,0x53,0x20,0x3f,0x20,0x60,0x28,0x24,0x65,0x76,0x65,0x6e,0x74,0x3a,0x20,0x61,0x6e,0x79,0x29,0x60,0x20,0x3a,0x20,0x60,0x24,0x65,0x76,0x65,0x6e,0x74,0x60,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x6d,0x65,0x6e,0x74,0x45,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x41,0x72,0x67,0x7d,0x20,0x3d,0x3e,0x20,0x28,0x28,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x29,0x20,0x3d,0x20,0x24,0x65,0x76,0x65,0x6e,0x74,0x29,0x60,0x0a,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x3a,0x20,0x66,0x6f,0x6f,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x70,0x72,0x6f,0x70,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x22,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x3a,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x3a,0x20,0x24,0x65,0x76,0x65,0x6e,0x74,0x20,0x3d,0x3e,0x20,0x28,0x66,0x6f,0x6f,0x20,0x3d,0x20,0x24,0x65,0x76,0x65,0x6e,0x74,0x29,0x0a,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x65,0x76,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x61,0x73,0x73,0x69,0x67,0x6e,0x6d,0x65,0x6e,0x74,0x45,0x78,0x70,0x29,0x0a,0x20,0x20,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x64,0x69,0x72,0x2e,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x2e,0x6d,0x61,0x70,0x28,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x28,0x69,0x73,0x53,0x69,0x6d,0x70,0x6c,0x65,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x28,0x6d,0x29,0x20,0x3f,0x20,0x6d,0x20,0x3a,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6d,0x29,0x29,0x20,0x2b,0x20,0x60,0x3a,0x20,0x74,0x72,0x75,0x65,0x60,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x60,0x2c,0x20,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x4b,0x65,0x79,0x20,0x3d,0x20,0x61,0x72,0x67,0x20,0x3f,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x61,0x72,0x67,0x29,0x20,0x3f,0x20,0x60,0x24,0x7b,0x61,0x72,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x60,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x61,0x72,0x67,0x2c,0x20,0x27,0x20,0x2b,0x20,0x22,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x22,0x27,0x5d,0x29,0x20,0x3a,0x20,0x60,0x6d,0x6f,0x64,0x65,0x6c,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x4b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x7b,0x20,0x24,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x7d,0x20,0x7d,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x6f,0x70,0x73,0x28,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x20,0x7d,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x65,0x65,0x6e,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x57,0x65,0x61,0x6b,0x53,0x65,0x74,0x28,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x65,0x6d,0x6f,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x69,0x72,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x6d,0x65,0x6d,0x6f,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x69,0x72,0x20,0x7c,0x7c,0x20,0x73,0x65,0x65,0x6e,0x2e,0x68,0x61,0x73,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x73,0x65,0x65,0x6e,0x2e,0x61,0x64,0x64,0x28,0x6e,0x6f,0x64,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x4e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x26,0x26,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x33,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x74,0x54,0x6f,0x42,0x6c,0x6f,0x63,0x6b,0x28,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x57,0x49,0x54,0x48,0x5f,0x4d,0x45,0x4d,0x4f,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x65,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x20,0x63,0x6f,0x64,0x65,0x67,0x65,0x6e,0x4e,0x6f,0x64,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x5f,0x63,0x61,0x63,0x68,0x65,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x63,0x61,0x63,0x68,0x65,0x64,0x2e,0x70,0x75,0x73,0x68,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x65,0x73,0x65,0x74,0x28,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x63,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x49,0x66,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x65,0x6d,0x6f,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x46,0x6f,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x5b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x5d,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x6c,0x6f,0x74,0x4f,0x75,0x74,0x6c,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x63,0x6b,0x53,0x6c,0x6f,0x74,0x53,0x63,0x6f,0x70,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x54,0x65,0x78,0x74,0x0a,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x24,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x69,0x6e,0x64,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x42,0x69,0x6e,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x6f,0x64,0x65,0x6c,0x24,0x31,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x5d,0x3b,0x0a,0x7d,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x20,0x7c,0x7c,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x4f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4d,0x6f,0x64,0x65,0x20,0x3d,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x3b,0x0a,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x37,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4d,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x38,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x63,0x61,0x63,0x68,0x65,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x34,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x73,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x4d,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x49,0x64,0x65,0x6e,0x74,0x69,0x66,0x69,0x65,0x72,0x73,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x73,0x74,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x20,0x3f,0x20,0x62,0x61,0x73,0x65,0x50,0x61,0x72,0x73,0x65,0x28,0x73,0x6f,0x75,0x72,0x63,0x65,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x3a,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x5b,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x5d,0x20,0x3d,0x20,0x67,0x65,0x74,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x50,0x72,0x65,0x73,0x65,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x28,0x0a,0x20,0x20,0x20,0x20,0x61,0x73,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x72,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x3a,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x72,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x28,0x61,0x73,0x74,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x64,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x6f,0x70,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x28,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x5d,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x52,0x41,0x44,0x49,0x4f,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x43,0x48,0x45,0x43,0x4b,0x42,0x4f,0x58,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x54,0x45,0x58,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x53,0x45,0x4c,0x45,0x43,0x54,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4f,0x4e,0x5f,0x57,0x49,0x54,0x48,0x5f,0x4d,0x4f,0x44,0x49,0x46,0x49,0x45,0x52,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x76,0x4f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x47,0x75,0x61,0x72,0x64,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x4f,0x4e,0x5f,0x57,0x49,0x54,0x48,0x5f,0x4b,0x45,0x59,0x53,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x76,0x4f,0x6e,0x4b,0x65,0x79,0x73,0x47,0x75,0x61,0x72,0x64,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x5f,0x53,0x48,0x4f,0x57,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x76,0x53,0x68,0x6f,0x77,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x60,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x60,0x20,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5f,0x47,0x52,0x4f,0x55,0x50,0x20,0x3d,0x20,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x28,0x0a,0x20,0x20,0x60,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x60,0x20,0x0a,0x29,0x3b,0x0a,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x48,0x65,0x6c,0x70,0x65,0x72,0x73,0x28,0x7b,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x52,0x41,0x44,0x49,0x4f,0x5d,0x3a,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x43,0x48,0x45,0x43,0x4b,0x42,0x4f,0x58,0x5d,0x3a,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x54,0x45,0x58,0x54,0x5d,0x3a,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x53,0x45,0x4c,0x45,0x43,0x54,0x5d,0x3a,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x5d,0x3a,0x20,0x60,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4f,0x4e,0x5f,0x57,0x49,0x54,0x48,0x5f,0x4d,0x4f,0x44,0x49,0x46,0x49,0x45,0x52,0x53,0x5d,0x3a,0x20,0x60,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x4f,0x4e,0x5f,0x57,0x49,0x54,0x48,0x5f,0x4b,0x45,0x59,0x53,0x5d,0x3a,0x20,0x60,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x56,0x5f,0x53,0x48,0x4f,0x57,0x5d,0x3a,0x20,0x60,0x76,0x53,0x68,0x6f,0x77,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5d,0x3a,0x20,0x60,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5f,0x47,0x52,0x4f,0x55,0x50,0x5d,0x3a,0x20,0x60,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x60,0x0a,0x7d,0x29,0x3b,0x0a,0x0a,0x6c,0x65,0x74,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x48,0x74,0x6d,0x6c,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x28,0x72,0x61,0x77,0x2c,0x20,0x61,0x73,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x22,0x64,0x69,0x76,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x73,0x41,0x74,0x74,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x64,0x69,0x76,0x20,0x66,0x6f,0x6f,0x3d,0x22,0x24,0x7b,0x72,0x61,0x77,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x22,0x2f,0x67,0x2c,0x20,0x22,0x26,0x71,0x75,0x6f,0x74,0x3b,0x22,0x29,0x7d,0x22,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x67,0x65,0x74,0x41,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x28,0x22,0x66,0x6f,0x6f,0x22,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x72,0x61,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x72,0x2e,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x70,0x61,0x72,0x73,0x65,0x4d,0x6f,0x64,0x65,0x3a,0x20,0x22,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x69,0x73,0x56,0x6f,0x69,0x64,0x54,0x61,0x67,0x2c,0x0a,0x20,0x20,0x69,0x73,0x4e,0x61,0x74,0x69,0x76,0x65,0x54,0x61,0x67,0x3a,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x3d,0x3e,0x20,0x69,0x73,0x48,0x54,0x4d,0x4c,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x53,0x56,0x47,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4d,0x61,0x74,0x68,0x4d,0x4c,0x54,0x61,0x67,0x28,0x74,0x61,0x67,0x29,0x2c,0x0a,0x20,0x20,0x69,0x73,0x50,0x72,0x65,0x54,0x61,0x67,0x3a,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x3d,0x3e,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x65,0x22,0x2c,0x0a,0x20,0x20,0x69,0x73,0x49,0x67,0x6e,0x6f,0x72,0x65,0x4e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x54,0x61,0x67,0x3a,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x3d,0x3e,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x70,0x72,0x65,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x22,0x2c,0x0a,0x20,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x45,0x6e,0x74,0x69,0x74,0x69,0x65,0x73,0x3a,0x20,0x64,0x65,0x63,0x6f,0x64,0x65,0x48,0x74,0x6d,0x6c,0x42,0x72,0x6f,0x77,0x73,0x65,0x72,0x20,0x2c,0x0a,0x20,0x20,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2d,0x67,0x72,0x6f,0x75,0x70,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x5f,0x47,0x52,0x4f,0x55,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x68,0x74,0x6d,0x6c,0x2e,0x73,0x70,0x65,0x63,0x2e,0x77,0x68,0x61,0x74,0x77,0x67,0x2e,0x6f,0x72,0x67,0x2f,0x6d,0x75,0x6c,0x74,0x69,0x70,0x61,0x67,0x65,0x2f,0x70,0x61,0x72,0x73,0x69,0x6e,0x67,0x2e,0x68,0x74,0x6d,0x6c,0x23,0x74,0x72,0x65,0x65,0x2d,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x64,0x69,0x73,0x70,0x61,0x74,0x63,0x68,0x65,0x72,0x0a,0x20,0x20,0x67,0x65,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x28,0x74,0x61,0x67,0x2c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x72,0x6f,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x6e,0x73,0x20,0x3d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x3f,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x6e,0x73,0x20,0x3a,0x20,0x72,0x6f,0x6f,0x74,0x4e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x6e,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x2d,0x78,0x6d,0x6c,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x61,0x29,0x20,0x3d,0x3e,0x20,0x61,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x20,0x26,0x26,0x20,0x61,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x65,0x6e,0x63,0x6f,0x64,0x69,0x6e,0x67,0x22,0x20,0x26,0x26,0x20,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x26,0x26,0x20,0x28,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x22,0x20,0x7c,0x7c,0x20,0x61,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x78,0x68,0x74,0x6d,0x6c,0x2b,0x78,0x6d,0x6c,0x22,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x2f,0x5e,0x6d,0x28,0x3f,0x3a,0x5b,0x69,0x6f,0x6e,0x73,0x5d,0x7c,0x74,0x65,0x78,0x74,0x29,0x24,0x2f,0x2e,0x74,0x65,0x73,0x74,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x29,0x20,0x26,0x26,0x20,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6d,0x67,0x6c,0x79,0x70,0x68,0x22,0x20,0x26,0x26,0x20,0x74,0x61,0x67,0x20,0x21,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x6c,0x69,0x67,0x6e,0x6d,0x61,0x72,0x6b,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x66,0x6f,0x72,0x65,0x69,0x67,0x6e,0x4f,0x62,0x6a,0x65,0x63,0x74,0x22,0x20,0x7c,0x7c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x64,0x65,0x73,0x63,0x22,0x20,0x7c,0x7c,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x73,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x73,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x76,0x67,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x61,0x74,0x68,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x73,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x74,0x79,0x6c,0x65,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x66,0x6f,0x72,0x45,0x61,0x63,0x68,0x28,0x28,0x70,0x2c,0x20,0x69,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x36,0x20,0x26,0x26,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x20,0x26,0x26,0x20,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x69,0x5d,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x60,0x62,0x69,0x6e,0x64,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x72,0x67,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x73,0x74,0x79,0x6c,0x65,0x60,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x70,0x2e,0x6c,0x6f,0x63,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x3a,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x43,0x53,0x53,0x28,0x70,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x20,0x70,0x2e,0x6c,0x6f,0x63,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x70,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x73,0x65,0x49,0x6e,0x6c,0x69,0x6e,0x65,0x43,0x53,0x53,0x20,0x3d,0x20,0x28,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x53,0x74,0x79,0x6c,0x65,0x28,0x63,0x73,0x73,0x54,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x64,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x33,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x63,0x6f,0x64,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x64,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x44,0x4f,0x4d,0x45,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x44,0x4f,0x4d,0x45,0x72,0x72,0x6f,0x72,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x5b,0x35,0x33,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x68,0x74,0x6d,0x6c,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x34,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x68,0x74,0x6d,0x6c,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x35,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x74,0x65,0x78,0x74,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x36,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x74,0x65,0x78,0x74,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x37,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x63,0x61,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x3e,0x2c,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x20,0x61,0x6e,0x64,0x20,0x3c,0x73,0x65,0x6c,0x65,0x63,0x74,0x3e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x38,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x6f,0x6e,0x20,0x70,0x6c,0x61,0x69,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x35,0x39,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x66,0x69,0x6c,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x73,0x20,0x73,0x69,0x6e,0x63,0x65,0x20,0x74,0x68,0x65,0x79,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x61,0x64,0x2d,0x6f,0x6e,0x6c,0x79,0x2e,0x20,0x55,0x73,0x65,0x20,0x61,0x20,0x76,0x2d,0x6f,0x6e,0x3a,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x6c,0x69,0x73,0x74,0x65,0x6e,0x65,0x72,0x20,0x69,0x6e,0x73,0x74,0x65,0x61,0x64,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x30,0x5d,0x3a,0x20,0x60,0x55,0x6e,0x6e,0x65,0x63,0x65,0x73,0x73,0x61,0x72,0x79,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x75,0x73,0x65,0x64,0x20,0x61,0x6c,0x6f,0x6e,0x67,0x73,0x69,0x64,0x65,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x2e,0x20,0x49,0x74,0x20,0x77,0x69,0x6c,0x6c,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x65,0x72,0x65,0x20,0x77,0x69,0x74,0x68,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x27,0x73,0x20,0x62,0x65,0x68,0x61,0x76,0x69,0x6f,0x72,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x31,0x5d,0x3a,0x20,0x60,0x76,0x2d,0x73,0x68,0x6f,0x77,0x20,0x69,0x73,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x65,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x32,0x5d,0x3a,0x20,0x60,0x3c,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3e,0x20,0x65,0x78,0x70,0x65,0x63,0x74,0x73,0x20,0x65,0x78,0x61,0x63,0x74,0x6c,0x79,0x20,0x6f,0x6e,0x65,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6f,0x72,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2e,0x60,0x2c,0x0a,0x20,0x20,0x5b,0x36,0x33,0x5d,0x3a,0x20,0x60,0x54,0x61,0x67,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x73,0x69,0x64,0x65,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x20,0x28,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x61,0x6e,0x64,0x20,0x3c,0x73,0x74,0x79,0x6c,0x65,0x3e,0x29,0x20,0x61,0x72,0x65,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x73,0x2e,0x60,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x48,0x74,0x6d,0x6c,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x78,0x70,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x33,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x34,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x60,0x2c,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x7c,0x7c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x54,0x65,0x78,0x74,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x78,0x70,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x35,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x35,0x36,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x74,0x65,0x78,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x60,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x78,0x70,0x20,0x3f,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x54,0x79,0x70,0x65,0x28,0x65,0x78,0x70,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3e,0x20,0x30,0x20,0x3f,0x20,0x65,0x78,0x70,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x54,0x4f,0x5f,0x44,0x49,0x53,0x50,0x4c,0x41,0x59,0x5f,0x53,0x54,0x52,0x49,0x4e,0x47,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5b,0x65,0x78,0x70,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x22,0x22,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x5d,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x6f,0x64,0x65,0x6c,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x6f,0x64,0x65,0x6c,0x24,0x31,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x35,0x38,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x61,0x72,0x67,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x44,0x69,0x72,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x22,0x62,0x69,0x6e,0x64,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x61,0x6c,0x75,0x65,0x20,0x26,0x26,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x41,0x72,0x67,0x4f,0x66,0x28,0x76,0x61,0x6c,0x75,0x65,0x2e,0x61,0x72,0x67,0x2c,0x20,0x22,0x76,0x61,0x6c,0x75,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x74,0x61,0x67,0x20,0x7d,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x70,0x75,0x74,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x22,0x20,0x7c,0x7c,0x20,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x54,0x45,0x58,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x69,0x73,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x69,0x6e,0x70,0x75,0x74,0x22,0x20,0x7c,0x7c,0x20,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x79,0x70,0x65,0x20,0x3d,0x20,0x66,0x69,0x6e,0x64,0x50,0x72,0x6f,0x70,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x60,0x74,0x79,0x70,0x65,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x79,0x70,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x77,0x69,0x74,0x63,0x68,0x20,0x28,0x74,0x79,0x70,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x72,0x61,0x64,0x69,0x6f,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x52,0x41,0x44,0x49,0x4f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x43,0x48,0x45,0x43,0x4b,0x42,0x4f,0x58,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x73,0x65,0x20,0x22,0x66,0x69,0x6c,0x65,0x22,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x35,0x39,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x4b,0x65,0x79,0x56,0x42,0x69,0x6e,0x64,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x44,0x59,0x4e,0x41,0x4d,0x49,0x43,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x20,0x3d,0x20,0x56,0x5f,0x4d,0x4f,0x44,0x45,0x4c,0x5f,0x53,0x45,0x4c,0x45,0x43,0x54,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x65,0x63,0x6b,0x44,0x75,0x70,0x6c,0x69,0x63,0x61,0x74,0x65,0x64,0x56,0x61,0x6c,0x75,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x6e,0x65,0x65,0x64,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x6f,0x55,0x73,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x35,0x37,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x28,0x70,0x29,0x20,0x3d,0x3e,0x20,0x21,0x28,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x34,0x20,0x26,0x26,0x20,0x70,0x2e,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x45,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x60,0x70,0x61,0x73,0x73,0x69,0x76,0x65,0x2c,0x6f,0x6e,0x63,0x65,0x2c,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x60,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x70,0x72,0x6f,0x70,0x61,0x67,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6d,0x61,0x6e,0x61,0x67,0x65,0x6d,0x65,0x6e,0x74,0x0a,0x20,0x20,0x60,0x73,0x74,0x6f,0x70,0x2c,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x2c,0x73,0x65,0x6c,0x66,0x2c,0x63,0x74,0x72,0x6c,0x2c,0x73,0x68,0x69,0x66,0x74,0x2c,0x61,0x6c,0x74,0x2c,0x6d,0x65,0x74,0x61,0x2c,0x65,0x78,0x61,0x63,0x74,0x2c,0x6d,0x69,0x64,0x64,0x6c,0x65,0x60,0x0a,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x79,0x62,0x65,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x22,0x6c,0x65,0x66,0x74,0x2c,0x72,0x69,0x67,0x68,0x74,0x22,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x45,0x76,0x65,0x6e,0x74,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x4d,0x61,0x70,0x28,0x60,0x6f,0x6e,0x6b,0x65,0x79,0x75,0x70,0x2c,0x6f,0x6e,0x6b,0x65,0x79,0x64,0x6f,0x77,0x6e,0x2c,0x6f,0x6e,0x6b,0x65,0x79,0x70,0x72,0x65,0x73,0x73,0x60,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x6c,0x65,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x20,0x3d,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x5b,0x69,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x45,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x61,0x79,0x62,0x65,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x6b,0x65,0x79,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x45,0x76,0x65,0x6e,0x74,0x28,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x43,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x28,0x6b,0x65,0x79,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6c,0x69,0x63,0x6b,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x6b,0x65,0x79,0x29,0x20,0x26,0x26,0x20,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x22,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x43,0x6c,0x69,0x63,0x6b,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x65,0x76,0x65,0x6e,0x74,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x3a,0x20,0x6b,0x65,0x79,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x34,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x60,0x28,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x60,0x29,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x6f,0x6e,0x43,0x6c,0x69,0x63,0x6b,0x22,0x20,0x3f,0x20,0x22,0x24,0x7b,0x65,0x76,0x65,0x6e,0x74,0x7d,0x22,0x20,0x3a,0x20,0x28,0x60,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x60,0x29,0x60,0x0a,0x20,0x20,0x5d,0x29,0x20,0x3a,0x20,0x6b,0x65,0x79,0x3b,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x24,0x31,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x28,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x65,0x74,0x20,0x7b,0x20,0x6b,0x65,0x79,0x2c,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x45,0x78,0x70,0x20,0x7d,0x20,0x3d,0x20,0x62,0x61,0x73,0x65,0x52,0x65,0x73,0x75,0x6c,0x74,0x2e,0x70,0x72,0x6f,0x70,0x73,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x65,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x20,0x7d,0x20,0x3d,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x28,0x6b,0x65,0x79,0x2c,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x64,0x69,0x72,0x2e,0x6c,0x6f,0x63,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x43,0x6c,0x69,0x63,0x6b,0x28,0x6b,0x65,0x79,0x2c,0x20,0x60,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x6d,0x65,0x6e,0x75,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x73,0x28,0x22,0x6d,0x69,0x64,0x64,0x6c,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x43,0x6c,0x69,0x63,0x6b,0x28,0x6b,0x65,0x79,0x2c,0x20,0x60,0x6f,0x6e,0x4d,0x6f,0x75,0x73,0x65,0x75,0x70,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x45,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x56,0x5f,0x4f,0x4e,0x5f,0x57,0x49,0x54,0x48,0x5f,0x4d,0x4f,0x44,0x49,0x46,0x49,0x45,0x52,0x53,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x45,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6e,0x6f,0x6e,0x4b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x26,0x26,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x65,0x76,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x20,0x69,0x73,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x2c,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x77,0x72,0x61,0x70,0x20,0x77,0x69,0x74,0x68,0x20,0x6b,0x65,0x79,0x73,0x20,0x67,0x75,0x61,0x72,0x64,0x0a,0x20,0x20,0x20,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x6b,0x65,0x79,0x29,0x20,0x7c,0x7c,0x20,0x69,0x73,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x45,0x76,0x65,0x6e,0x74,0x28,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x28,0x29,0x29,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x45,0x78,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x61,0x6c,0x6c,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x56,0x5f,0x4f,0x4e,0x5f,0x57,0x49,0x54,0x48,0x5f,0x4b,0x45,0x59,0x53,0x29,0x2c,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x45,0x78,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x6b,0x65,0x79,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x50,0x6f,0x73,0x74,0x66,0x69,0x78,0x20,0x3d,0x20,0x65,0x76,0x65,0x6e,0x74,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2e,0x6d,0x61,0x70,0x28,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x29,0x2e,0x6a,0x6f,0x69,0x6e,0x28,0x22,0x22,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x69,0x73,0x53,0x74,0x61,0x74,0x69,0x63,0x45,0x78,0x70,0x28,0x6b,0x65,0x79,0x29,0x20,0x3f,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x69,0x6d,0x70,0x6c,0x65,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x60,0x24,0x7b,0x6b,0x65,0x79,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x7d,0x24,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x50,0x6f,0x73,0x74,0x66,0x69,0x78,0x7d,0x60,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x3a,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x75,0x6e,0x64,0x45,0x78,0x70,0x72,0x65,0x73,0x73,0x69,0x6f,0x6e,0x28,0x5b,0x60,0x28,0x60,0x2c,0x20,0x6b,0x65,0x79,0x2c,0x20,0x60,0x29,0x20,0x2b,0x20,0x22,0x24,0x7b,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x50,0x6f,0x73,0x74,0x66,0x69,0x78,0x7d,0x22,0x60,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x50,0x72,0x6f,0x70,0x65,0x72,0x74,0x79,0x28,0x6b,0x65,0x79,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x72,0x45,0x78,0x70,0x29,0x5d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x68,0x6f,0x77,0x20,0x3d,0x20,0x28,0x64,0x69,0x72,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x65,0x78,0x70,0x2c,0x20,0x6c,0x6f,0x63,0x20,0x7d,0x20,0x3d,0x20,0x64,0x69,0x72,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x78,0x70,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x36,0x31,0x2c,0x20,0x6c,0x6f,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6e,0x65,0x65,0x64,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x68,0x65,0x6c,0x70,0x65,0x72,0x28,0x56,0x5f,0x53,0x48,0x4f,0x57,0x29,0x0a,0x20,0x20,0x7d,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x69,0x73,0x42,0x75,0x69,0x6c,0x74,0x49,0x6e,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x54,0x52,0x41,0x4e,0x53,0x49,0x54,0x49,0x4f,0x4e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x61,0x72,0x74,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2d,0x20,0x31,0x5d,0x2e,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x6f,0x75,0x72,0x63,0x65,0x3a,0x20,0x22,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x20,0x6f,0x66,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x37,0x20,0x26,0x26,0x20,0x70,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x68,0x6f,0x77,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x70,0x72,0x6f,0x70,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x36,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3a,0x20,0x22,0x70,0x65,0x72,0x73,0x69,0x73,0x74,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x6f,0x63,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x61,0x6c,0x75,0x65,0x3a,0x20,0x76,0x6f,0x69,0x64,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x3a,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x28,0x6e,0x6f,0x64,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x28,0x63,0x29,0x20,0x3d,0x3e,0x20,0x63,0x2e,0x74,0x79,0x70,0x65,0x20,0x21,0x3d,0x3d,0x20,0x33,0x20,0x26,0x26,0x20,0x21,0x28,0x63,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x32,0x20,0x26,0x26,0x20,0x21,0x63,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x3d,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x30,0x5d,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x21,0x3d,0x3d,0x20,0x31,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x31,0x20,0x7c,0x7c,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x39,0x20,0x26,0x26,0x20,0x63,0x68,0x69,0x6c,0x64,0x2e,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x2e,0x73,0x6f,0x6d,0x65,0x28,0x68,0x61,0x73,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x65,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x53,0x69,0x64,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x54,0x61,0x67,0x73,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x20,0x7c,0x7c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x44,0x4f,0x4d,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x36,0x33,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x4e,0x6f,0x64,0x65,0x28,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x48,0x54,0x4d,0x4c,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x2c,0x20,0x63,0x68,0x69,0x6c,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x69,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x56,0x61,0x6c,0x69,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x56,0x61,0x6c,0x69,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x70,0x61,0x72,0x65,0x6e,0x74,0x5d,0x2e,0x68,0x61,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x20,0x69,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x56,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x6e,0x6c,0x79,0x56,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x5b,0x63,0x68,0x69,0x6c,0x64,0x5d,0x2e,0x68,0x61,0x73,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x69,0x6e,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x6e,0x6f,0x77,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x5b,0x70,0x61,0x72,0x65,0x6e,0x74,0x5d,0x2e,0x68,0x61,0x73,0x28,0x63,0x68,0x69,0x6c,0x64,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x68,0x69,0x6c,0x64,0x20,0x69,0x6e,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x6e,0x6f,0x77,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x5b,0x63,0x68,0x69,0x6c,0x64,0x5d,0x2e,0x68,0x61,0x73,0x28,0x70,0x61,0x72,0x65,0x6e,0x74,0x29,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x68,0x31,0x22,0x2c,0x20,0x22,0x68,0x32,0x22,0x2c,0x20,0x22,0x68,0x33,0x22,0x2c,0x20,0x22,0x68,0x34,0x22,0x2c,0x20,0x22,0x68,0x35,0x22,0x2c,0x20,0x22,0x68,0x36,0x22,0x5d,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x5d,0x29,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x6c,0x79,0x56,0x61,0x6c,0x69,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x68,0x65,0x61,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x61,0x73,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x61,0x73,0x65,0x66,0x72,0x6f,0x6e,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x67,0x73,0x6f,0x75,0x6e,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6c,0x69,0x6e,0x6b,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6d,0x65,0x74,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x74,0x69,0x74,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6e,0x6f,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6e,0x6f,0x66,0x72,0x61,0x6d,0x65,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x63,0x72,0x69,0x70,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x22,0x0a,0x20,0x20,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x6f,0x70,0x74,0x67,0x72,0x6f,0x75,0x70,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6f,0x70,0x74,0x67,0x72,0x6f,0x75,0x70,0x22,0x2c,0x20,0x22,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x68,0x72,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x74,0x61,0x62,0x6c,0x65,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x22,0x2c,0x20,0x22,0x74,0x62,0x6f,0x64,0x79,0x22,0x2c,0x20,0x22,0x74,0x66,0x6f,0x6f,0x74,0x22,0x2c,0x20,0x22,0x74,0x68,0x65,0x61,0x64,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x72,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x64,0x22,0x2c,0x20,0x22,0x74,0x68,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x63,0x6f,0x6c,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x62,0x6f,0x64,0x79,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x72,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x68,0x65,0x61,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x72,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x66,0x6f,0x6f,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x72,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x63,0x61,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x6e,0x79,0x20,0x63,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x0a,0x20,0x20,0x73,0x63,0x72,0x69,0x70,0x74,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x2c,0x0a,0x20,0x20,0x69,0x66,0x72,0x61,0x6d,0x65,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x2c,0x0a,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x2c,0x0a,0x20,0x20,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x2c,0x0a,0x20,0x20,0x73,0x74,0x79,0x6c,0x65,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x2c,0x0a,0x20,0x20,0x74,0x69,0x74,0x6c,0x65,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x6e,0x6c,0x79,0x56,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x65,0x6d,0x70,0x74,0x79,0x53,0x65,0x74,0x2c,0x0a,0x20,0x20,0x62,0x6f,0x64,0x79,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x68,0x74,0x6d,0x6c,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x68,0x65,0x61,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x68,0x74,0x6d,0x6c,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x74,0x61,0x62,0x6c,0x65,0x0a,0x20,0x20,0x74,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x72,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x62,0x6f,0x64,0x79,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x66,0x6f,0x6f,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x63,0x6f,0x6c,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x63,0x6f,0x6c,0x67,0x72,0x6f,0x75,0x70,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x68,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x72,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x68,0x65,0x61,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x74,0x72,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x74,0x62,0x6f,0x64,0x79,0x22,0x2c,0x20,0x22,0x74,0x68,0x65,0x61,0x64,0x22,0x2c,0x20,0x22,0x74,0x66,0x6f,0x6f,0x74,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x64,0x61,0x74,0x61,0x20,0x6c,0x69,0x73,0x74,0x0a,0x20,0x20,0x64,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x64,0x6c,0x22,0x2c,0x20,0x22,0x64,0x69,0x76,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x64,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x64,0x6c,0x22,0x2c,0x20,0x22,0x64,0x69,0x76,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x74,0x68,0x65,0x72,0x0a,0x20,0x20,0x66,0x69,0x67,0x63,0x61,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x66,0x69,0x67,0x75,0x72,0x65,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x3a,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x75,0x6c,0x22,0x2c,0x20,0x22,0x6f,0x6c,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x61,0x72,0x65,0x61,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6d,0x61,0x70,0x22,0x5d,0x29,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x70,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x22,0x61,0x64,0x64,0x72,0x65,0x73,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x61,0x72,0x74,0x69,0x63,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x61,0x73,0x69,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x61,0x6c,0x6f,0x67,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x69,0x65,0x6c,0x64,0x73,0x65,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x69,0x67,0x75,0x72,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x6f,0x6f,0x74,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x66,0x6f,0x72,0x6d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x65,0x61,0x64,0x65,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x67,0x72,0x6f,0x75,0x70,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6c,0x69,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6d,0x61,0x69,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6e,0x61,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6d,0x65,0x6e,0x75,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6f,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x70,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x70,0x72,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x75,0x6c,0x22,0x0a,0x20,0x20,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x73,0x76,0x67,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x71,0x75,0x6f,0x74,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x62,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x63,0x6f,0x64,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x69,0x76,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x64,0x74,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x65,0x6d,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x65,0x6d,0x62,0x65,0x64,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x31,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x32,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x33,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x34,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x35,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x36,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x68,0x72,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x69,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x69,0x6d,0x67,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6c,0x69,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6d,0x65,0x6e,0x75,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6d,0x65,0x74,0x61,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x6f,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x70,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x70,0x72,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x72,0x75,0x62,0x79,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x70,0x61,0x6e,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x74,0x72,0x6f,0x6e,0x67,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x75,0x62,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x73,0x75,0x70,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x75,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x75,0x6c,0x22,0x2c,0x0a,0x20,0x20,0x20,0x20,0x22,0x76,0x61,0x72,0x22,0x0a,0x20,0x20,0x5d,0x29,0x0a,0x7d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x6e,0x6f,0x77,0x6e,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x50,0x61,0x72,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x61,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x61,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x64,0x64,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x64,0x64,0x22,0x2c,0x20,0x22,0x64,0x74,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x64,0x74,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x64,0x64,0x22,0x2c,0x20,0x22,0x64,0x74,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x66,0x6f,0x72,0x6d,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x66,0x6f,0x72,0x6d,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x6c,0x69,0x3a,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x6e,0x65,0x77,0x20,0x53,0x65,0x74,0x28,0x5b,0x22,0x6c,0x69,0x22,0x5d,0x29,0x2c,0x0a,0x20,0x20,0x68,0x31,0x3a,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x2c,0x0a,0x20,0x20,0x68,0x32,0x3a,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x2c,0x0a,0x20,0x20,0x68,0x33,0x3a,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x2c,0x0a,0x20,0x20,0x68,0x34,0x3a,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x2c,0x0a,0x20,0x20,0x68,0x35,0x3a,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x2c,0x0a,0x20,0x20,0x68,0x36,0x3a,0x20,0x68,0x65,0x61,0x64,0x69,0x6e,0x67,0x73,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x48,0x74,0x6d,0x6c,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x31,0x20,0x26,0x26,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x54,0x79,0x70,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x56,0x61,0x6c,0x69,0x64,0x48,0x54,0x4d,0x4c,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x28,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x2c,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x72,0x72,0x6f,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x53,0x79,0x6e,0x74,0x61,0x78,0x45,0x72,0x72,0x6f,0x72,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x3c,0x24,0x7b,0x6e,0x6f,0x64,0x65,0x2e,0x74,0x61,0x67,0x7d,0x3e,0x20,0x63,0x61,0x6e,0x6e,0x6f,0x74,0x20,0x62,0x65,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x6f,0x66,0x20,0x3c,0x24,0x7b,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x70,0x61,0x72,0x65,0x6e,0x74,0x2e,0x74,0x61,0x67,0x7d,0x3e,0x2c,0x20,0x61,0x63,0x63,0x6f,0x72,0x64,0x69,0x6e,0x67,0x20,0x74,0x6f,0x20,0x48,0x54,0x4d,0x4c,0x20,0x73,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6e,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x73,0x20,0x6f,0x72,0x20,0x70,0x6f,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x6c,0x79,0x20,0x64,0x69,0x73,0x72,0x75,0x70,0x74,0x20,0x66,0x75,0x74,0x75,0x72,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x74,0x79,0x2e,0x60,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6c,0x6f,0x63,0x20,0x3d,0x20,0x6e,0x6f,0x64,0x65,0x2e,0x6c,0x6f,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2e,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x44,0x4f,0x4d,0x4e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x3d,0x20,0x5b,0x0a,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x74,0x79,0x6c,0x65,0x2c,0x0a,0x20,0x20,0x2e,0x2e,0x2e,0x5b,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x76,0x61,0x6c,0x69,0x64,0x61,0x74,0x65,0x48,0x74,0x6d,0x6c,0x4e,0x65,0x73,0x74,0x69,0x6e,0x67,0x5d,0x20,0x0a,0x5d,0x3b,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x44,0x4f,0x4d,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x63,0x6c,0x6f,0x61,0x6b,0x3a,0x20,0x6e,0x6f,0x6f,0x70,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x2c,0x0a,0x20,0x20,0x68,0x74,0x6d,0x6c,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x48,0x74,0x6d,0x6c,0x2c,0x0a,0x20,0x20,0x74,0x65,0x78,0x74,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x54,0x65,0x78,0x74,0x2c,0x0a,0x20,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4d,0x6f,0x64,0x65,0x6c,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x63,0x6f,0x72,0x65,0x0a,0x20,0x20,0x6f,0x6e,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x4f,0x6e,0x2c,0x0a,0x20,0x20,0x2f,0x2f,0x20,0x6f,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x63,0x6f,0x72,0x65,0x0a,0x20,0x20,0x73,0x68,0x6f,0x77,0x3a,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x53,0x68,0x6f,0x77,0x0a,0x7d,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x73,0x72,0x63,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x7b,0x7d,0x29,0x20,0x7b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x62,0x61,0x73,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x73,0x72,0x63,0x2c,0x0a,0x20,0x20,0x20,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x7b,0x7d,0x2c,0x20,0x70,0x61,0x72,0x73,0x65,0x72,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x61,0x6e,0x64,0x20,0x3c,0x74,0x61,0x67,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x68,0x69,0x73,0x20,0x69,0x73,0x20,0x6e,0x6f,0x74,0x20,0x70,0x75,0x74,0x20,0x69,0x6e,0x73,0x69,0x64,0x65,0x20,0x44,0x4f,0x4d,0x4e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x6c,0x69,0x73,0x74,0x20,0x69,0x73,0x20,0x75,0x73,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x62,0x79,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2d,0x73,0x73,0x72,0x20,0x74,0x6f,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x20,0x76,0x6e,0x6f,0x64,0x65,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x62,0x72,0x61,0x6e,0x63,0x68,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x53,0x69,0x64,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x54,0x61,0x67,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x44,0x4f,0x4d,0x4e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x7c,0x7c,0x20,0x5b,0x5d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x3a,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x44,0x4f,0x4d,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x73,0x20,0x7c,0x7c,0x20,0x7b,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x48,0x6f,0x69,0x73,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x7b,0x0a,0x20,0x20,0x69,0x6e,0x69,0x74,0x44,0x65,0x76,0x28,0x29,0x3b,0x0a,0x7d,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x20,0x3d,0x20,0x2f,0x2a,0x20,0x40,0x5f,0x5f,0x50,0x55,0x52,0x45,0x5f,0x5f,0x20,0x2a,0x2f,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x28,0x6e,0x75,0x6c,0x6c,0x29,0x3b,0x0a,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x54,0x6f,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x20,0x7b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x64,0x65,0x54,0x79,0x70,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x3d,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x60,0x2c,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4e,0x4f,0x4f,0x50,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x3d,0x20,0x67,0x65,0x6e,0x43,0x61,0x63,0x68,0x65,0x4b,0x65,0x79,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x29,0x3b,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x61,0x63,0x68,0x65,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x61,0x63,0x68,0x65,0x64,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x5b,0x30,0x5d,0x20,0x3d,0x3d,0x3d,0x20,0x22,0x23,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x71,0x75,0x65,0x72,0x79,0x53,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x65,0x6c,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x60,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x6f,0x72,0x20,0x69,0x73,0x20,0x65,0x6d,0x70,0x74,0x79,0x3a,0x20,0x24,0x7b,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x7d,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x3d,0x20,0x65,0x6c,0x20,0x3f,0x20,0x65,0x6c,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3a,0x20,0x60,0x60,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x70,0x74,0x73,0x20,0x3d,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x28,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x6f,0x69,0x73,0x74,0x53,0x74,0x61,0x74,0x69,0x63,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x3a,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x20,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x6e,0x57,0x61,0x72,0x6e,0x3a,0x20,0x28,0x65,0x29,0x20,0x3d,0x3e,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x0a,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x6f,0x70,0x74,0x73,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x26,0x26,0x20,0x74,0x79,0x70,0x65,0x6f,0x66,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x20,0x21,0x3d,0x3d,0x20,0x22,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x22,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x70,0x74,0x73,0x2e,0x69,0x73,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x3d,0x20,0x28,0x74,0x61,0x67,0x29,0x20,0x3d,0x3e,0x20,0x21,0x21,0x63,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x2e,0x67,0x65,0x74,0x28,0x74,0x61,0x67,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x7b,0x20,0x63,0x6f,0x64,0x65,0x20,0x7d,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x28,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x20,0x6f,0x70,0x74,0x73,0x29,0x3b,0x0a,0x20,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x2c,0x20,0x61,0x73,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3d,0x20,0x61,0x73,0x57,0x61,0x72,0x6e,0x69,0x6e,0x67,0x20,0x3f,0x20,0x65,0x72,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x3a,0x20,0x60,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x3a,0x20,0x24,0x7b,0x65,0x72,0x72,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x64,0x65,0x46,0x72,0x61,0x6d,0x65,0x20,0x3d,0x20,0x65,0x72,0x72,0x2e,0x6c,0x6f,0x63,0x20,0x26,0x26,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x43,0x6f,0x64,0x65,0x46,0x72,0x61,0x6d,0x65,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x2e,0x6c,0x6f,0x63,0x2e,0x73,0x74,0x61,0x72,0x74,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x72,0x72,0x2e,0x6c,0x6f,0x63,0x2e,0x65,0x6e,0x64,0x2e,0x6f,0x66,0x66,0x73,0x65,0x74,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x77,0x61,0x72,0x6e,0x28,0x63,0x6f,0x64,0x65,0x46,0x72,0x61,0x6d,0x65,0x20,0x3f,0x20,0x60,0x24,0x7b,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x7d,0x0a,0x24,0x7b,0x63,0x6f,0x64,0x65,0x46,0x72,0x61,0x6d,0x65,0x7d,0x60,0x20,0x3a,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x29,0x3b,0x0a,0x20,0x20,0x7d,0x0a,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x22,0x56,0x75,0x65,0x22,0x2c,0x20,0x63,0x6f,0x64,0x65,0x29,0x28,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x44,0x6f,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2e,0x5f,0x72,0x63,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x43,0x61,0x63,0x68,0x65,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x3b,0x0a,0x7d,0x0a,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x28,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x54,0x6f,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x0a,0x65,0x78,0x70,0x6f,0x72,0x74,0x20,0x7b,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x42,0x61,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x50,0x72,0x6f,0x70,0x73,0x56,0x61,0x6c,0x69,0x64,0x61,0x74,0x6f,0x72,0x73,0x2c,0x20,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x44,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x69,0x6f,0x6e,0x54,0x79,0x70,0x65,0x73,0x2c,0x20,0x45,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2c,0x20,0x45,0x72,0x72,0x6f,0x72,0x43,0x6f,0x64,0x65,0x73,0x2c,0x20,0x45,0x72,0x72,0x6f,0x72,0x54,0x79,0x70,0x65,0x53,0x74,0x72,0x69,0x6e,0x67,0x73,0x2c,0x20,0x46,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x4b,0x65,0x65,0x70,0x41,0x6c,0x69,0x76,0x65,0x2c,0x20,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x2c,0x20,0x53,0x75,0x73,0x70,0x65,0x6e,0x73,0x65,0x2c,0x20,0x54,0x65,0x6c,0x65,0x70,0x6f,0x72,0x74,0x2c,0x20,0x54,0x65,0x78,0x74,0x2c,0x20,0x54,0x72,0x61,0x63,0x6b,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x2c,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x47,0x72,0x6f,0x75,0x70,0x2c,0x20,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x4f,0x70,0x54,0x79,0x70,0x65,0x73,0x2c,0x20,0x56,0x75,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x61,0x73,0x73,0x65,0x72,0x74,0x4e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x57,0x69,0x74,0x68,0x45,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x69,0x6e,0x67,0x2c,0x20,0x63,0x61,0x6d,0x65,0x6c,0x69,0x7a,0x65,0x2c,0x20,0x63,0x61,0x70,0x69,0x74,0x61,0x6c,0x69,0x7a,0x65,0x2c,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x55,0x74,0x69,0x6c,0x73,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x54,0x6f,0x46,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x73,0x20,0x63,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x43,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x42,0x61,0x73,0x65,0x56,0x4e,0x6f,0x64,0x65,0x20,0x61,0x73,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x48,0x79,0x64,0x72,0x61,0x74,0x69,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x50,0x72,0x6f,0x70,0x73,0x52,0x65,0x73,0x74,0x50,0x72,0x6f,0x78,0x79,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x53,0x52,0x41,0x70,0x70,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x53,0x74,0x61,0x74,0x69,0x63,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x54,0x65,0x78,0x74,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x52,0x65,0x66,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x6d,0x69,0x74,0x73,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x45,0x78,0x70,0x6f,0x73,0x65,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x4f,0x70,0x74,0x69,0x6f,0x6e,0x73,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x53,0x52,0x43,0x75,0x73,0x74,0x6f,0x6d,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x64,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x2c,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x65,0x66,0x66,0x65,0x63,0x74,0x53,0x63,0x6f,0x70,0x65,0x2c,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x49,0x6e,0x73,0x74,0x61,0x6e,0x63,0x65,0x2c,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x53,0x63,0x6f,0x70,0x65,0x2c,0x20,0x67,0x65,0x74,0x43,0x75,0x72,0x72,0x65,0x6e,0x74,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x2c,0x20,0x67,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x52,0x61,0x77,0x43,0x68,0x69,0x6c,0x64,0x72,0x65,0x6e,0x2c,0x20,0x67,0x75,0x61,0x72,0x64,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x68,0x2c,0x20,0x68,0x61,0x6e,0x64,0x6c,0x65,0x45,0x72,0x72,0x6f,0x72,0x2c,0x20,0x68,0x61,0x73,0x49,0x6e,0x6a,0x65,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x64,0x6c,0x65,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x49,0x6e,0x74,0x65,0x72,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x4d,0x65,0x64,0x69,0x61,0x51,0x75,0x65,0x72,0x79,0x2c,0x20,0x68,0x79,0x64,0x72,0x61,0x74,0x65,0x4f,0x6e,0x56,0x69,0x73,0x69,0x62,0x6c,0x65,0x2c,0x20,0x69,0x6e,0x69,0x74,0x43,0x75,0x73,0x74,0x6f,0x6d,0x46,0x6f,0x72,0x6d,0x61,0x74,0x74,0x65,0x72,0x2c,0x20,0x69,0x6e,0x69,0x74,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x46,0x6f,0x72,0x53,0x53,0x52,0x2c,0x20,0x69,0x6e,0x6a,0x65,0x63,0x74,0x2c,0x20,0x69,0x73,0x4d,0x65,0x6d,0x6f,0x53,0x61,0x6d,0x65,0x2c,0x20,0x69,0x73,0x50,0x72,0x6f,0x78,0x79,0x2c,0x20,0x69,0x73,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x20,0x69,0x73,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x69,0x73,0x52,0x65,0x66,0x2c,0x20,0x69,0x73,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x4f,0x6e,0x6c,0x79,0x2c,0x20,0x69,0x73,0x53,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x2c,0x20,0x69,0x73,0x56,0x4e,0x6f,0x64,0x65,0x2c,0x20,0x6d,0x61,0x72,0x6b,0x52,0x61,0x77,0x2c,0x20,0x6d,0x65,0x72,0x67,0x65,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x2c,0x20,0x6d,0x65,0x72,0x67,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x73,0x2c,0x20,0x6d,0x65,0x72,0x67,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x65,0x78,0x74,0x54,0x69,0x63,0x6b,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x43,0x6c,0x61,0x73,0x73,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x50,0x72,0x6f,0x70,0x73,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x53,0x74,0x79,0x6c,0x65,0x2c,0x20,0x6f,0x6e,0x41,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x4d,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x2c,0x20,0x6f,0x6e,0x42,0x65,0x66,0x6f,0x72,0x65,0x55,0x70,0x64,0x61,0x74,0x65,0x2c,0x20,0x6f,0x6e,0x44,0x65,0x61,0x63,0x74,0x69,0x76,0x61,0x74,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x45,0x72,0x72,0x6f,0x72,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x4d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x61,0x63,0x6b,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x52,0x65,0x6e,0x64,0x65,0x72,0x54,0x72,0x69,0x67,0x67,0x65,0x72,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x53,0x63,0x6f,0x70,0x65,0x44,0x69,0x73,0x70,0x6f,0x73,0x65,0x2c,0x20,0x6f,0x6e,0x53,0x65,0x72,0x76,0x65,0x72,0x50,0x72,0x65,0x66,0x65,0x74,0x63,0x68,0x2c,0x20,0x6f,0x6e,0x55,0x6e,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x55,0x70,0x64,0x61,0x74,0x65,0x64,0x2c,0x20,0x6f,0x6e,0x57,0x61,0x74,0x63,0x68,0x65,0x72,0x43,0x6c,0x65,0x61,0x6e,0x75,0x70,0x2c,0x20,0x6f,0x70,0x65,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x2c,0x20,0x70,0x6f,0x70,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x2c,0x20,0x70,0x72,0x6f,0x78,0x79,0x52,0x65,0x66,0x73,0x2c,0x20,0x70,0x75,0x73,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x2c,0x20,0x71,0x75,0x65,0x75,0x65,0x50,0x6f,0x73,0x74,0x46,0x6c,0x75,0x73,0x68,0x43,0x62,0x2c,0x20,0x72,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x20,0x72,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x72,0x65,0x66,0x2c,0x20,0x72,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x52,0x75,0x6e,0x74,0x69,0x6d,0x65,0x43,0x6f,0x6d,0x70,0x69,0x6c,0x65,0x72,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x4c,0x69,0x73,0x74,0x2c,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x53,0x6c,0x6f,0x74,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x46,0x69,0x6c,0x74,0x65,0x72,0x2c,0x20,0x72,0x65,0x73,0x6f,0x6c,0x76,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x2c,0x20,0x73,0x65,0x74,0x42,0x6c,0x6f,0x63,0x6b,0x54,0x72,0x61,0x63,0x6b,0x69,0x6e,0x67,0x2c,0x20,0x73,0x65,0x74,0x44,0x65,0x76,0x74,0x6f,0x6f,0x6c,0x73,0x48,0x6f,0x6f,0x6b,0x2c,0x20,0x73,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x48,0x6f,0x6f,0x6b,0x73,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x63,0x74,0x69,0x76,0x65,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x61,0x64,0x6f,0x6e,0x6c,0x79,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x2c,0x20,0x73,0x73,0x72,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x4b,0x65,0x79,0x2c,0x20,0x73,0x73,0x72,0x55,0x74,0x69,0x6c,0x73,0x2c,0x20,0x73,0x74,0x6f,0x70,0x2c,0x20,0x74,0x6f,0x44,0x69,0x73,0x70,0x6c,0x61,0x79,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x4b,0x65,0x79,0x2c,0x20,0x74,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x73,0x2c,0x20,0x74,0x6f,0x52,0x61,0x77,0x2c,0x20,0x74,0x6f,0x52,0x65,0x66,0x2c,0x20,0x74,0x6f,0x52,0x65,0x66,0x73,0x2c,0x20,0x74,0x6f,0x56,0x61,0x6c,0x75,0x65,0x2c,0x20,0x74,0x72,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x56,0x4e,0x6f,0x64,0x65,0x41,0x72,0x67,0x73,0x2c,0x20,0x74,0x72,0x69,0x67,0x67,0x65,0x72,0x52,0x65,0x66,0x2c,0x20,0x75,0x6e,0x72,0x65,0x66,0x2c,0x20,0x75,0x73,0x65,0x41,0x74,0x74,0x72,0x73,0x2c,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x4d,0x6f,0x64,0x75,0x6c,0x65,0x2c,0x20,0x75,0x73,0x65,0x43,0x73,0x73,0x56,0x61,0x72,0x73,0x2c,0x20,0x75,0x73,0x65,0x48,0x6f,0x73,0x74,0x2c,0x20,0x75,0x73,0x65,0x49,0x64,0x2c,0x20,0x75,0x73,0x65,0x4d,0x6f,0x64,0x65,0x6c,0x2c,0x20,0x75,0x73,0x65,0x53,0x53,0x52,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x75,0x73,0x65,0x53,0x68,0x61,0x64,0x6f,0x77,0x52,0x6f,0x6f,0x74,0x2c,0x20,0x75,0x73,0x65,0x53,0x6c,0x6f,0x74,0x73,0x2c,0x20,0x75,0x73,0x65,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x52,0x65,0x66,0x2c,0x20,0x75,0x73,0x65,0x54,0x72,0x61,0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x53,0x74,0x61,0x74,0x65,0x2c,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x43,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x2c,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x44,0x79,0x6e,0x61,0x6d,0x69,0x63,0x2c,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x52,0x61,0x64,0x69,0x6f,0x2c,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x53,0x65,0x6c,0x65,0x63,0x74,0x2c,0x20,0x76,0x4d,0x6f,0x64,0x65,0x6c,0x54,0x65,0x78,0x74,0x2c,0x20,0x76,0x53,0x68,0x6f,0x77,0x2c,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x2c,0x20,0x77,0x61,0x72,0x6e,0x2c,0x20,0x77,0x61,0x74,0x63,0x68,0x2c,0x20,0x77,0x61,0x74,0x63,0x68,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x77,0x61,0x74,0x63,0x68,0x50,0x6f,0x73,0x74,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x77,0x61,0x74,0x63,0x68,0x53,0x79,0x6e,0x63,0x45,0x66,0x66,0x65,0x63,0x74,0x2c,0x20,0x77,0x69,0x74,0x68,0x41,0x73,0x79,0x6e,0x63,0x43,0x6f,0x6e,0x74,0x65,0x78,0x74,0x2c,0x20,0x77,0x69,0x74,0x68,0x43,0x74,0x78,0x2c,0x20,0x77,0x69,0x74,0x68,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x73,0x2c,0x20,0x77,0x69,0x74,0x68,0x44,0x69,0x72,0x65,0x63,0x74,0x69,0x76,0x65,0x73,0x2c,0x20,0x77,0x69,0x74,0x68,0x4b,0x65,0x79,0x73,0x2c,0x20,0x77,0x69,0x74,0x68,0x4d,0x65,0x6d,0x6f,0x2c,0x20,0x77,0x69,0x74,0x68,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x2c,0x20,0x77,0x69,0x74,0x68,0x53,0x63,0x6f,0x70,0x65,0x49,0x64,0x20,0x7d,0x3b,0x0a,0x0a,}; +unsigned int deps_vue_esm_browser_js_len = 529664; diff --git a/llama.cpp/build/examples/server/index.html.hpp b/llama.cpp/build/examples/server/index.html.hpp new file mode 100644 index 0000000000000000000000000000000000000000..ca55d88ee620d2290cf2dec44040f52123529981 --- /dev/null +++ b/llama.cpp/build/examples/server/index.html.hpp @@ -0,0 +1,2 @@ +unsigned char index_html[] = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x55,0x54,0x46,0x2d,0x38,0x22,0x3e,0x0a,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x31,0x2c,0x20,0x6d,0x61,0x78,0x69,0x6d,0x75,0x6d,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x31,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x6f,0x6c,0x6f,0x72,0x2d,0x73,0x63,0x68,0x65,0x6d,0x65,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x69,0x67,0x68,0x74,0x20,0x64,0x61,0x72,0x6b,0x22,0x3e,0x0a,0x20,0x20,0x3c,0x74,0x69,0x74,0x6c,0x65,0x3e,0xf0,0x9f,0xa6,0x99,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x2e,0x63,0x70,0x70,0x20,0x2d,0x20,0x63,0x68,0x61,0x74,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0a,0x0a,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x63,0x69,0x65,0x73,0x20,0x63,0x61,0x6e,0x20,0x64,0x65,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x2e,0x2f,0x64,0x65,0x70,0x73,0x2e,0x73,0x68,0x20,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2e,0x2f,0x64,0x65,0x70,0x73,0x5f,0x64,0x61,0x69,0x73,0x79,0x75,0x69,0x2e,0x6d,0x69,0x6e,0x2e,0x63,0x73,0x73,0x22,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2f,0x63,0x73,0x73,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2e,0x2f,0x64,0x65,0x70,0x73,0x5f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x3c,0x73,0x74,0x79,0x6c,0x65,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2f,0x74,0x61,0x69,0x6c,0x77,0x69,0x6e,0x64,0x63,0x73,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x2e,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x31,0x2c,0x20,0x68,0x32,0x2c,0x20,0x68,0x33,0x2c,0x20,0x68,0x34,0x2c,0x20,0x68,0x35,0x2c,0x20,0x68,0x36,0x2c,0x20,0x75,0x6c,0x2c,0x20,0x6f,0x6c,0x2c,0x20,0x6c,0x69,0x20,0x7b,0x20,0x61,0x6c,0x6c,0x3a,0x20,0x72,0x65,0x76,0x65,0x72,0x74,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x77,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x2d,0x70,0x72,0x65,0x2d,0x77,0x72,0x61,0x70,0x20,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x6c,0x67,0x20,0x70,0x2d,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x66,0x69,0x78,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x6f,0x74,0x65,0x20,0x66,0x6f,0x72,0x20,0x64,0x61,0x69,0x73,0x79,0x75,0x69,0x3a,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x77,0x65,0x27,0x72,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x61,0x20,0x73,0x75,0x62,0x73,0x65,0x74,0x20,0x6f,0x66,0x20,0x64,0x61,0x69,0x73,0x79,0x75,0x69,0x20,0x76,0x69,0x61,0x20,0x43,0x44,0x4e,0x2c,0x20,0x6d,0x61,0x6e,0x79,0x20,0x74,0x68,0x69,0x6e,0x67,0x73,0x20,0x77,0x6f,0x6e,0x27,0x74,0x20,0x62,0x65,0x20,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x57,0x65,0x20,0x63,0x61,0x6e,0x20,0x6d,0x61,0x6e,0x75,0x61,0x6c,0x6c,0x79,0x20,0x61,0x64,0x64,0x20,0x74,0x68,0x65,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x73,0x74,0x79,0x6c,0x65,0x73,0x20,0x66,0x72,0x6f,0x6d,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x63,0x64,0x6e,0x6a,0x73,0x2e,0x63,0x6c,0x6f,0x75,0x64,0x66,0x6c,0x61,0x72,0x65,0x2e,0x63,0x6f,0x6d,0x2f,0x61,0x6a,0x61,0x78,0x2f,0x6c,0x69,0x62,0x73,0x2f,0x64,0x61,0x69,0x73,0x79,0x75,0x69,0x2f,0x34,0x2e,0x31,0x32,0x2e,0x31,0x34,0x2f,0x66,0x75,0x6c,0x6c,0x2e,0x63,0x73,0x73,0x0a,0x20,0x20,0x20,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2e,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x31,0x30,0x30,0x20,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x31,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x31,0x29,0x2f,0x31,0x29,0x29,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2e,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x32,0x30,0x30,0x20,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x32,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x32,0x29,0x2f,0x31,0x29,0x29,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2e,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x20,0x7b,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x2d,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x33,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x33,0x29,0x2f,0x31,0x29,0x29,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2e,0x74,0x65,0x78,0x74,0x2d,0x62,0x61,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7b,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x76,0x61,0x72,0x28,0x2d,0x2d,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2d,0x62,0x63,0x2c,0x6f,0x6b,0x6c,0x63,0x68,0x28,0x76,0x61,0x72,0x28,0x2d,0x2d,0x62,0x63,0x29,0x2f,0x31,0x29,0x29,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2e,0x73,0x68,0x6f,0x77,0x2d,0x6f,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x30,0x20,0x67,0x72,0x6f,0x75,0x70,0x2d,0x68,0x6f,0x76,0x65,0x72,0x3a,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x31,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2e,0x62,0x74,0x6e,0x2d,0x6d,0x69,0x6e,0x69,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x63,0x75,0x72,0x73,0x6f,0x72,0x2d,0x70,0x6f,0x69,0x6e,0x74,0x65,0x72,0x20,0x68,0x6f,0x76,0x65,0x72,0x3a,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x6d,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x7b,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x39,0x30,0x30,0x70,0x78,0x3b,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2a,0x20,0x62,0x65,0x63,0x61,0x75,0x73,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x62,0x75,0x62,0x62,0x6c,0x65,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x69,0x73,0x20,0x71,0x75,0x69,0x74,0x65,0x20,0x64,0x61,0x72,0x6b,0x2c,0x20,0x77,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x6d,0x61,0x6b,0x65,0x20,0x61,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x6f,0x6e,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x20,0x2a,0x2f,0x0a,0x20,0x20,0x20,0x20,0x2e,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x77,0x2d,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x2d,0x74,0x77,0x2d,0x74,0x65,0x78,0x74,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x61,0x70,0x70,0x6c,0x79,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x20,0x74,0x65,0x78,0x74,0x2d,0x62,0x61,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x3c,0x2f,0x73,0x74,0x79,0x6c,0x65,0x3e,0x0a,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0a,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x70,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x20,0x66,0x6c,0x65,0x78,0x2d,0x72,0x6f,0x77,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x30,0x22,0x3e,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x30,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x64,0x20,0x6f,0x6e,0x20,0x61,0x70,0x70,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x73,0x69,0x64,0x65,0x62,0x61,0x72,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x20,0x66,0x6c,0x65,0x78,0x2d,0x63,0x6f,0x6c,0x20,0x62,0x67,0x2d,0x62,0x6c,0x61,0x63,0x6b,0x20,0x62,0x67,0x2d,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x35,0x20,0x77,0x2d,0x36,0x34,0x20,0x70,0x79,0x2d,0x38,0x20,0x70,0x78,0x2d,0x34,0x20,0x68,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x32,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x20,0x6d,0x62,0x2d,0x34,0x20,0x6d,0x6c,0x2d,0x34,0x22,0x3e,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x74,0x61,0x72,0x74,0x27,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x27,0x3a,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x6e,0x65,0x77,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2b,0x20,0x4e,0x65,0x77,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3d,0x22,0x63,0x6f,0x6e,0x76,0x20,0x69,0x6e,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x22,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x74,0x61,0x72,0x74,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x27,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x27,0x3a,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x69,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x74,0x56,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x28,0x63,0x6f,0x6e,0x76,0x2e,0x69,0x64,0x29,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x72,0x75,0x6e,0x63,0x61,0x74,0x65,0x22,0x3e,0x7b,0x7b,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7d,0x7d,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x74,0x65,0x78,0x74,0x2d,0x78,0x73,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x34,0x30,0x20,0x6d,0x74,0x2d,0x61,0x75,0x74,0x6f,0x20,0x6d,0x78,0x2d,0x34,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x61,0x72,0x65,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x74,0x6f,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x27,0x73,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x68,0x61,0x74,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x66,0x6c,0x65,0x78,0x20,0x66,0x6c,0x65,0x78,0x2d,0x63,0x6f,0x6c,0x20,0x77,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x68,0x2d,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x70,0x78,0x2d,0x38,0x20,0x6d,0x78,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x68,0x65,0x61,0x64,0x65,0x72,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x20,0x66,0x6c,0x65,0x78,0x2d,0x72,0x6f,0x77,0x20,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x67,0x72,0x6f,0x77,0x20,0x74,0x65,0x78,0x74,0x2d,0x32,0x78,0x6c,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x20,0x6d,0x74,0x2d,0x38,0x20,0x6d,0x62,0x2d,0x36,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf0,0x9f,0xa6,0x99,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x2e,0x63,0x70,0x70,0x20,0x2d,0x20,0x63,0x68,0x61,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x28,0x74,0x6f,0x70,0x20,0x72,0x69,0x67,0x68,0x74,0x29,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x20,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x6d,0x72,0x2d,0x31,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x43,0x6f,0x6e,0x76,0x28,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x76,0x67,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x36,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x69,0x20,0x62,0x69,0x2d,0x74,0x72,0x61,0x73,0x68,0x22,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30,0x20,0x31,0x36,0x20,0x31,0x36,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x35,0x2e,0x35,0x20,0x35,0x2e,0x35,0x41,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x36,0x20,0x36,0x76,0x36,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x20,0x30,0x56,0x36,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x2d,0x2e,0x35,0x6d,0x32,0x2e,0x35,0x20,0x30,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x2e,0x35,0x76,0x36,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x20,0x30,0x56,0x36,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x2d,0x2e,0x35,0x6d,0x33,0x20,0x2e,0x35,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x31,0x20,0x30,0x76,0x36,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x30,0x7a,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x31,0x34,0x2e,0x35,0x20,0x33,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x20,0x31,0x48,0x31,0x33,0x76,0x39,0x61,0x32,0x20,0x32,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x32,0x20,0x32,0x48,0x35,0x61,0x32,0x20,0x32,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x32,0x2d,0x32,0x56,0x34,0x68,0x2d,0x2e,0x35,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x2d,0x31,0x56,0x32,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x2d,0x31,0x48,0x36,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x2d,0x31,0x68,0x32,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x20,0x31,0x68,0x33,0x2e,0x35,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x20,0x31,0x7a,0x4d,0x34,0x2e,0x31,0x31,0x38,0x20,0x34,0x20,0x34,0x20,0x34,0x2e,0x30,0x35,0x39,0x56,0x31,0x33,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x68,0x36,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x56,0x34,0x2e,0x30,0x35,0x39,0x4c,0x31,0x31,0x2e,0x38,0x38,0x32,0x20,0x34,0x7a,0x4d,0x32,0x2e,0x35,0x20,0x33,0x68,0x31,0x31,0x56,0x32,0x68,0x2d,0x31,0x31,0x7a,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x6d,0x72,0x2d,0x31,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x6f,0x77,0x6e,0x6c,0x6f,0x61,0x64,0x43,0x6f,0x6e,0x76,0x28,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x64,0x6f,0x77,0x6e,0x6c,0x6f,0x61,0x64,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x76,0x67,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x36,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x69,0x20,0x62,0x69,0x2d,0x64,0x6f,0x77,0x6e,0x6c,0x6f,0x61,0x64,0x22,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30,0x20,0x31,0x36,0x20,0x31,0x36,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x2e,0x35,0x20,0x39,0x2e,0x39,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x2e,0x35,0x76,0x32,0x2e,0x35,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x68,0x31,0x32,0x61,0x31,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x76,0x2d,0x32,0x2e,0x35,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x20,0x30,0x76,0x32,0x2e,0x35,0x61,0x32,0x20,0x32,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x32,0x20,0x32,0x48,0x32,0x61,0x32,0x20,0x32,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x32,0x2d,0x32,0x76,0x2d,0x32,0x2e,0x35,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x2d,0x2e,0x35,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x37,0x2e,0x36,0x34,0x36,0x20,0x31,0x31,0x2e,0x38,0x35,0x34,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x2e,0x37,0x30,0x38,0x20,0x30,0x6c,0x33,0x2d,0x33,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x2e,0x37,0x30,0x38,0x2d,0x2e,0x37,0x30,0x38,0x4c,0x38,0x2e,0x35,0x20,0x31,0x30,0x2e,0x32,0x39,0x33,0x56,0x31,0x2e,0x35,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x31,0x20,0x30,0x76,0x38,0x2e,0x37,0x39,0x33,0x4c,0x35,0x2e,0x33,0x35,0x34,0x20,0x38,0x2e,0x31,0x34,0x36,0x61,0x2e,0x35,0x2e,0x35,0x20,0x30,0x20,0x31,0x20,0x30,0x2d,0x2e,0x37,0x30,0x38,0x2e,0x37,0x30,0x38,0x7a,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x68,0x6f,0x77,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x65,0x64,0x69,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x76,0x67,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x36,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,0x66,0x69,0x6c,0x6c,0x3d,0x22,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x69,0x20,0x62,0x69,0x2d,0x67,0x65,0x61,0x72,0x22,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30,0x20,0x31,0x36,0x20,0x31,0x36,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x38,0x20,0x34,0x2e,0x37,0x35,0x34,0x61,0x33,0x2e,0x32,0x34,0x36,0x20,0x33,0x2e,0x32,0x34,0x36,0x20,0x30,0x20,0x31,0x20,0x30,0x20,0x30,0x20,0x36,0x2e,0x34,0x39,0x32,0x20,0x33,0x2e,0x32,0x34,0x36,0x20,0x33,0x2e,0x32,0x34,0x36,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x36,0x2e,0x34,0x39,0x32,0x4d,0x35,0x2e,0x37,0x35,0x34,0x20,0x38,0x61,0x32,0x2e,0x32,0x34,0x36,0x20,0x32,0x2e,0x32,0x34,0x36,0x20,0x30,0x20,0x31,0x20,0x31,0x20,0x34,0x2e,0x34,0x39,0x32,0x20,0x30,0x20,0x32,0x2e,0x32,0x34,0x36,0x20,0x32,0x2e,0x32,0x34,0x36,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x34,0x2e,0x34,0x39,0x32,0x20,0x30,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x39,0x2e,0x37,0x39,0x36,0x20,0x31,0x2e,0x33,0x34,0x33,0x63,0x2d,0x2e,0x35,0x32,0x37,0x2d,0x31,0x2e,0x37,0x39,0x2d,0x33,0x2e,0x30,0x36,0x35,0x2d,0x31,0x2e,0x37,0x39,0x2d,0x33,0x2e,0x35,0x39,0x32,0x20,0x30,0x6c,0x2d,0x2e,0x30,0x39,0x34,0x2e,0x33,0x31,0x39,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x2e,0x32,0x35,0x35,0x2e,0x35,0x32,0x6c,0x2d,0x2e,0x32,0x39,0x32,0x2d,0x2e,0x31,0x36,0x63,0x2d,0x31,0x2e,0x36,0x34,0x2d,0x2e,0x38,0x39,0x32,0x2d,0x33,0x2e,0x34,0x33,0x33,0x2e,0x39,0x30,0x32,0x2d,0x32,0x2e,0x35,0x34,0x20,0x32,0x2e,0x35,0x34,0x31,0x6c,0x2e,0x31,0x35,0x39,0x2e,0x32,0x39,0x32,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x2e,0x35,0x32,0x20,0x31,0x2e,0x32,0x35,0x35,0x6c,0x2d,0x2e,0x33,0x31,0x39,0x2e,0x30,0x39,0x34,0x63,0x2d,0x31,0x2e,0x37,0x39,0x2e,0x35,0x32,0x37,0x2d,0x31,0x2e,0x37,0x39,0x20,0x33,0x2e,0x30,0x36,0x35,0x20,0x30,0x20,0x33,0x2e,0x35,0x39,0x32,0x6c,0x2e,0x33,0x31,0x39,0x2e,0x30,0x39,0x34,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x32,0x20,0x31,0x2e,0x32,0x35,0x35,0x6c,0x2d,0x2e,0x31,0x36,0x2e,0x32,0x39,0x32,0x63,0x2d,0x2e,0x38,0x39,0x32,0x20,0x31,0x2e,0x36,0x34,0x2e,0x39,0x30,0x31,0x20,0x33,0x2e,0x34,0x33,0x34,0x20,0x32,0x2e,0x35,0x34,0x31,0x20,0x32,0x2e,0x35,0x34,0x6c,0x2e,0x32,0x39,0x32,0x2d,0x2e,0x31,0x35,0x39,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x2e,0x32,0x35,0x35,0x2e,0x35,0x32,0x6c,0x2e,0x30,0x39,0x34,0x2e,0x33,0x31,0x39,0x63,0x2e,0x35,0x32,0x37,0x20,0x31,0x2e,0x37,0x39,0x20,0x33,0x2e,0x30,0x36,0x35,0x20,0x31,0x2e,0x37,0x39,0x20,0x33,0x2e,0x35,0x39,0x32,0x20,0x30,0x6c,0x2e,0x30,0x39,0x34,0x2d,0x2e,0x33,0x31,0x39,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x31,0x2e,0x32,0x35,0x35,0x2d,0x2e,0x35,0x32,0x6c,0x2e,0x32,0x39,0x32,0x2e,0x31,0x36,0x63,0x31,0x2e,0x36,0x34,0x2e,0x38,0x39,0x33,0x20,0x33,0x2e,0x34,0x33,0x34,0x2d,0x2e,0x39,0x30,0x32,0x20,0x32,0x2e,0x35,0x34,0x2d,0x32,0x2e,0x35,0x34,0x31,0x6c,0x2d,0x2e,0x31,0x35,0x39,0x2d,0x2e,0x32,0x39,0x32,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x20,0x2e,0x35,0x32,0x2d,0x31,0x2e,0x32,0x35,0x35,0x6c,0x2e,0x33,0x31,0x39,0x2d,0x2e,0x30,0x39,0x34,0x63,0x31,0x2e,0x37,0x39,0x2d,0x2e,0x35,0x32,0x37,0x20,0x31,0x2e,0x37,0x39,0x2d,0x33,0x2e,0x30,0x36,0x35,0x20,0x30,0x2d,0x33,0x2e,0x35,0x39,0x32,0x6c,0x2d,0x2e,0x33,0x31,0x39,0x2d,0x2e,0x30,0x39,0x34,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x2e,0x35,0x32,0x2d,0x31,0x2e,0x32,0x35,0x35,0x6c,0x2e,0x31,0x36,0x2d,0x2e,0x32,0x39,0x32,0x63,0x2e,0x38,0x39,0x33,0x2d,0x31,0x2e,0x36,0x34,0x2d,0x2e,0x39,0x30,0x32,0x2d,0x33,0x2e,0x34,0x33,0x33,0x2d,0x32,0x2e,0x35,0x34,0x31,0x2d,0x32,0x2e,0x35,0x34,0x6c,0x2d,0x2e,0x32,0x39,0x32,0x2e,0x31,0x35,0x39,0x61,0x2e,0x38,0x37,0x33,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x31,0x2d,0x31,0x2e,0x32,0x35,0x35,0x2d,0x2e,0x35,0x32,0x7a,0x6d,0x2d,0x32,0x2e,0x36,0x33,0x33,0x2e,0x32,0x38,0x33,0x63,0x2e,0x32,0x34,0x36,0x2d,0x2e,0x38,0x33,0x35,0x20,0x31,0x2e,0x34,0x32,0x38,0x2d,0x2e,0x38,0x33,0x35,0x20,0x31,0x2e,0x36,0x37,0x34,0x20,0x30,0x6c,0x2e,0x30,0x39,0x34,0x2e,0x33,0x31,0x39,0x61,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x2e,0x36,0x39,0x33,0x20,0x31,0x2e,0x31,0x31,0x35,0x6c,0x2e,0x32,0x39,0x31,0x2d,0x2e,0x31,0x36,0x63,0x2e,0x37,0x36,0x34,0x2d,0x2e,0x34,0x31,0x35,0x20,0x31,0x2e,0x36,0x2e,0x34,0x32,0x20,0x31,0x2e,0x31,0x38,0x34,0x20,0x31,0x2e,0x31,0x38,0x35,0x6c,0x2d,0x2e,0x31,0x35,0x39,0x2e,0x32,0x39,0x32,0x61,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x2e,0x31,0x31,0x36,0x20,0x32,0x2e,0x36,0x39,0x32,0x6c,0x2e,0x33,0x31,0x38,0x2e,0x30,0x39,0x34,0x63,0x2e,0x38,0x33,0x35,0x2e,0x32,0x34,0x36,0x2e,0x38,0x33,0x35,0x20,0x31,0x2e,0x34,0x32,0x38,0x20,0x30,0x20,0x31,0x2e,0x36,0x37,0x34,0x6c,0x2d,0x2e,0x33,0x31,0x39,0x2e,0x30,0x39,0x34,0x61,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x31,0x2e,0x31,0x31,0x35,0x20,0x32,0x2e,0x36,0x39,0x33,0x6c,0x2e,0x31,0x36,0x2e,0x32,0x39,0x31,0x63,0x2e,0x34,0x31,0x35,0x2e,0x37,0x36,0x34,0x2d,0x2e,0x34,0x32,0x20,0x31,0x2e,0x36,0x2d,0x31,0x2e,0x31,0x38,0x35,0x20,0x31,0x2e,0x31,0x38,0x34,0x6c,0x2d,0x2e,0x32,0x39,0x31,0x2d,0x2e,0x31,0x35,0x39,0x61,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x32,0x2e,0x36,0x39,0x33,0x20,0x31,0x2e,0x31,0x31,0x36,0x6c,0x2d,0x2e,0x30,0x39,0x34,0x2e,0x33,0x31,0x38,0x63,0x2d,0x2e,0x32,0x34,0x36,0x2e,0x38,0x33,0x35,0x2d,0x31,0x2e,0x34,0x32,0x38,0x2e,0x38,0x33,0x35,0x2d,0x31,0x2e,0x36,0x37,0x34,0x20,0x30,0x6c,0x2d,0x2e,0x30,0x39,0x34,0x2d,0x2e,0x33,0x31,0x39,0x61,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x2d,0x32,0x2e,0x36,0x39,0x32,0x2d,0x31,0x2e,0x31,0x31,0x35,0x6c,0x2d,0x2e,0x32,0x39,0x32,0x2e,0x31,0x36,0x63,0x2d,0x2e,0x37,0x36,0x34,0x2e,0x34,0x31,0x35,0x2d,0x31,0x2e,0x36,0x2d,0x2e,0x34,0x32,0x2d,0x31,0x2e,0x31,0x38,0x34,0x2d,0x31,0x2e,0x31,0x38,0x35,0x6c,0x2e,0x31,0x35,0x39,0x2d,0x2e,0x32,0x39,0x31,0x41,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x31,0x2e,0x39,0x34,0x35,0x20,0x38,0x2e,0x39,0x33,0x6c,0x2d,0x2e,0x33,0x31,0x39,0x2d,0x2e,0x30,0x39,0x34,0x63,0x2d,0x2e,0x38,0x33,0x35,0x2d,0x2e,0x32,0x34,0x36,0x2d,0x2e,0x38,0x33,0x35,0x2d,0x31,0x2e,0x34,0x32,0x38,0x20,0x30,0x2d,0x31,0x2e,0x36,0x37,0x34,0x6c,0x2e,0x33,0x31,0x39,0x2d,0x2e,0x30,0x39,0x34,0x41,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x33,0x2e,0x30,0x36,0x20,0x34,0x2e,0x33,0x37,0x37,0x6c,0x2d,0x2e,0x31,0x36,0x2d,0x2e,0x32,0x39,0x32,0x63,0x2d,0x2e,0x34,0x31,0x35,0x2d,0x2e,0x37,0x36,0x34,0x2e,0x34,0x32,0x2d,0x31,0x2e,0x36,0x20,0x31,0x2e,0x31,0x38,0x35,0x2d,0x31,0x2e,0x31,0x38,0x34,0x6c,0x2e,0x32,0x39,0x32,0x2e,0x31,0x35,0x39,0x61,0x31,0x2e,0x38,0x37,0x33,0x20,0x31,0x2e,0x38,0x37,0x33,0x20,0x30,0x20,0x30,0x20,0x30,0x20,0x32,0x2e,0x36,0x39,0x32,0x2d,0x31,0x2e,0x31,0x31,0x35,0x7a,0x22,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x74,0x68,0x65,0x6d,0x65,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x69,0x73,0x20,0x63,0x6f,0x70,0x69,0x65,0x64,0x20,0x66,0x72,0x6f,0x6d,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x64,0x61,0x69,0x73,0x79,0x75,0x69,0x2e,0x63,0x6f,0x6d,0x2f,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x2f,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x2f,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x65,0x6e,0x64,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x74,0x61,0x62,0x69,0x6e,0x64,0x65,0x78,0x3d,0x22,0x30,0x22,0x20,0x72,0x6f,0x6c,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x6d,0x2d,0x31,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x54,0x68,0x65,0x6d,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x76,0x67,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x32,0x70,0x78,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x32,0x70,0x78,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x68,0x2d,0x32,0x20,0x77,0x2d,0x32,0x20,0x66,0x69,0x6c,0x6c,0x2d,0x63,0x75,0x72,0x72,0x65,0x6e,0x74,0x20,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x36,0x30,0x22,0x20,0x78,0x6d,0x6c,0x6e,0x73,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72,0x67,0x2f,0x32,0x30,0x30,0x30,0x2f,0x73,0x76,0x67,0x22,0x20,0x76,0x69,0x65,0x77,0x42,0x6f,0x78,0x3d,0x22,0x30,0x20,0x30,0x20,0x32,0x30,0x34,0x38,0x20,0x32,0x30,0x34,0x38,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x61,0x74,0x68,0x20,0x64,0x3d,0x22,0x4d,0x31,0x37,0x39,0x39,0x20,0x33,0x34,0x39,0x6c,0x32,0x34,0x32,0x20,0x32,0x34,0x31,0x2d,0x31,0x30,0x31,0x37,0x20,0x31,0x30,0x31,0x37,0x4c,0x37,0x20,0x35,0x39,0x30,0x6c,0x32,0x34,0x32,0x2d,0x32,0x34,0x31,0x20,0x37,0x37,0x35,0x20,0x37,0x37,0x35,0x20,0x37,0x37,0x35,0x2d,0x37,0x37,0x35,0x7a,0x22,0x3e,0x3c,0x2f,0x70,0x61,0x74,0x68,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x73,0x76,0x67,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x75,0x6c,0x20,0x74,0x61,0x62,0x69,0x6e,0x64,0x65,0x78,0x3d,0x22,0x30,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x20,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x20,0x7a,0x2d,0x5b,0x31,0x5d,0x20,0x77,0x2d,0x35,0x32,0x20,0x70,0x2d,0x32,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x2d,0x32,0x78,0x6c,0x20,0x68,0x2d,0x38,0x30,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x69,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x73,0x6d,0x20,0x62,0x74,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x77,0x2d,0x66,0x75,0x6c,0x6c,0x20,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x20,0x27,0x62,0x74,0x6e,0x2d,0x61,0x63,0x74,0x69,0x76,0x65,0x27,0x3a,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x61,0x75,0x74,0x6f,0x27,0x20,0x7d,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x28,0x27,0x61,0x75,0x74,0x6f,0x27,0x29,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x75,0x74,0x6f,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x69,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3d,0x22,0x74,0x68,0x65,0x6d,0x65,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x6d,0x65,0x73,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x72,0x61,0x64,0x69,0x6f,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x74,0x68,0x65,0x6d,0x65,0x2d,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x68,0x65,0x6d,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x73,0x6d,0x20,0x62,0x74,0x6e,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x77,0x2d,0x66,0x75,0x6c,0x6c,0x20,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3a,0x61,0x72,0x69,0x61,0x2d,0x6c,0x61,0x62,0x65,0x6c,0x3d,0x22,0x74,0x68,0x65,0x6d,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3a,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x74,0x68,0x65,0x6d,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3a,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x74,0x68,0x65,0x6d,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x28,0x74,0x68,0x65,0x6d,0x65,0x29,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x75,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x63,0x68,0x61,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2d,0x6c,0x69,0x73,0x74,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x20,0x66,0x6c,0x65,0x78,0x2d,0x63,0x6f,0x6c,0x20,0x67,0x72,0x6f,0x77,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x74,0x2d,0x61,0x75,0x74,0x6f,0x20,0x66,0x6c,0x65,0x78,0x20,0x6a,0x75,0x73,0x74,0x69,0x66,0x79,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x20,0x74,0x6f,0x20,0x73,0x68,0x69,0x66,0x74,0x20,0x74,0x68,0x65,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x20,0x3f,0x20,0x27,0x53,0x65,0x6e,0x64,0x20,0x61,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x6f,0x20,0x73,0x74,0x61,0x72,0x74,0x27,0x20,0x3a,0x20,0x27,0x27,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3d,0x22,0x6d,0x73,0x67,0x20,0x69,0x6e,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x67,0x72,0x6f,0x75,0x70,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x63,0x68,0x61,0x74,0x27,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x27,0x3a,0x20,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x21,0x3d,0x3d,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x63,0x68,0x61,0x74,0x2d,0x65,0x6e,0x64,0x27,0x3a,0x20,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x27,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x27,0x3a,0x20,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x21,0x3d,0x3d,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x66,0x6f,0x72,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x26,0x26,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x2e,0x69,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x6d,0x73,0x67,0x2e,0x69,0x64,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x31,0x30,0x30,0x20,0x74,0x65,0x78,0x74,0x2d,0x62,0x61,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x77,0x2d,0x39,0x36,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x6d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x67,0x68,0x6f,0x73,0x74,0x20,0x6d,0x74,0x2d,0x32,0x20,0x6d,0x72,0x2d,0x32,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x22,0x3e,0x43,0x61,0x6e,0x63,0x65,0x6c,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x6d,0x74,0x2d,0x32,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x65,0x64,0x69,0x74,0x55,0x73,0x65,0x72,0x4d,0x73,0x67,0x41,0x6e,0x64,0x52,0x65,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x28,0x6d,0x73,0x67,0x29,0x22,0x3e,0x53,0x75,0x62,0x6d,0x69,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x72,0x65,0x6e,0x64,0x65,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x61,0x73,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x76,0x75,0x65,0x2d,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x76,0x2d,0x65,0x6c,0x73,0x65,0x20,0x3a,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x22,0x6d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x66,0x6f,0x72,0x20,0x65,0x61,0x63,0x68,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x27,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x27,0x3a,0x20,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x7d,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x78,0x2d,0x34,0x20,0x6d,0x74,0x2d,0x32,0x20,0x6d,0x62,0x2d,0x32,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x75,0x73,0x65,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x61,0x64,0x67,0x65,0x20,0x62,0x74,0x6e,0x2d,0x6d,0x69,0x6e,0x69,0x73,0x68,0x6f,0x77,0x2d,0x6f,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x20,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6d,0x73,0x67,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe2,0x9c,0x8d,0xef,0xb8,0x8f,0x20,0x45,0x64,0x69,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x27,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x61,0x64,0x67,0x65,0x20,0x62,0x74,0x6e,0x2d,0x6d,0x69,0x6e,0x69,0x20,0x73,0x68,0x6f,0x77,0x2d,0x6f,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x20,0x6d,0x72,0x2d,0x32,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x4d,0x73,0x67,0x28,0x6d,0x73,0x67,0x29,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf0,0x9f,0x94,0x84,0x20,0x52,0x65,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x6d,0x73,0x67,0x2e,0x72,0x6f,0x6c,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x27,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x61,0x64,0x67,0x65,0x20,0x62,0x74,0x6e,0x2d,0x6d,0x69,0x6e,0x69,0x20,0x73,0x68,0x6f,0x77,0x2d,0x6f,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x20,0x6d,0x72,0x2d,0x32,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6f,0x70,0x79,0x4d,0x73,0x67,0x28,0x6d,0x73,0x67,0x29,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf0,0x9f,0x93,0x8b,0x20,0x43,0x6f,0x70,0x79,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x28,0x6f,0x6e,0x67,0x6f,0x69,0x6e,0x67,0x29,0x20,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2d,0x6d,0x73,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x68,0x61,0x74,0x20,0x63,0x68,0x61,0x74,0x2d,0x73,0x74,0x61,0x72,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x63,0x68,0x61,0x74,0x2d,0x62,0x75,0x62,0x62,0x6c,0x65,0x2d,0x62,0x61,0x73,0x65,0x2d,0x33,0x30,0x30,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x21,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x64,0x6f,0x74,0x73,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2d,0x6d,0x64,0x22,0x3e,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x76,0x75,0x65,0x2d,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x76,0x2d,0x65,0x6c,0x73,0x65,0x20,0x3a,0x73,0x6f,0x75,0x72,0x63,0x65,0x3d,0x22,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x63,0x68,0x61,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6c,0x65,0x78,0x20,0x66,0x6c,0x65,0x78,0x2d,0x72,0x6f,0x77,0x20,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x6d,0x74,0x2d,0x38,0x20,0x6d,0x62,0x2d,0x36,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x77,0x2d,0x66,0x75,0x6c,0x6c,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x54,0x79,0x70,0x65,0x20,0x61,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x28,0x53,0x68,0x69,0x66,0x74,0x2b,0x45,0x6e,0x74,0x65,0x72,0x20,0x74,0x6f,0x20,0x61,0x64,0x64,0x20,0x61,0x20,0x6e,0x65,0x77,0x20,0x6c,0x69,0x6e,0x65,0x29,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x6b,0x65,0x79,0x64,0x6f,0x77,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x2e,0x65,0x78,0x61,0x63,0x74,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x3d,0x22,0x73,0x65,0x6e,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x6b,0x65,0x79,0x64,0x6f,0x77,0x6e,0x2e,0x65,0x6e,0x74,0x65,0x72,0x2e,0x73,0x68,0x69,0x66,0x74,0x2e,0x65,0x78,0x61,0x63,0x74,0x2e,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x20,0x2b,0x3d,0x20,0x27,0x5c,0x6e,0x27,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3d,0x22,0x6d,0x73,0x67,0x2d,0x69,0x6e,0x70,0x75,0x74,0x22,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3e,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x69,0x66,0x3d,0x22,0x21,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x20,0x6d,0x6c,0x2d,0x32,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6e,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x20,0x3a,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x64,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x22,0x3e,0x53,0x65,0x6e,0x64,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x76,0x2d,0x65,0x6c,0x73,0x65,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x20,0x6d,0x6c,0x2d,0x32,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x74,0x6f,0x70,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x53,0x74,0x6f,0x70,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x20,0x66,0x6f,0x72,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x61,0x6c,0x6f,0x67,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x6f,0x64,0x61,0x6c,0x22,0x20,0x3a,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x7b,0x27,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x6f,0x70,0x65,0x6e,0x27,0x3a,0x20,0x73,0x68,0x6f,0x77,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x7d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x62,0x6f,0x78,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x68,0x33,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x6c,0x67,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x20,0x6d,0x62,0x2d,0x36,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x68,0x33,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x68,0x2d,0x5b,0x63,0x61,0x6c,0x63,0x28,0x39,0x30,0x76,0x68,0x2d,0x31,0x32,0x72,0x65,0x6d,0x29,0x5d,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x79,0x2d,0x61,0x75,0x74,0x6f,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x34,0x30,0x20,0x6d,0x62,0x2d,0x36,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x62,0x65,0x6c,0x6f,0x77,0x20,0x61,0x72,0x65,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x69,0x6e,0x20,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x27,0x73,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x3c,0x2f,0x70,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x6b,0x65,0x79,0x3d,0x22,0x27,0x61,0x70,0x69,0x4b,0x65,0x79,0x27,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x69,0x6e,0x66,0x6f,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x61,0x70,0x69,0x4b,0x65,0x79,0x22,0x3e,0x3c,0x2f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6f,0x72,0x6d,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x6d,0x62,0x2d,0x32,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x22,0x3e,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x68,0x2d,0x32,0x34,0x22,0x20,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x27,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x27,0x20,0x2b,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x2e,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x22,0x3e,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x20,0x69,0x6e,0x20,0x5b,0x27,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x27,0x2c,0x20,0x27,0x74,0x6f,0x70,0x5f,0x6b,0x27,0x2c,0x20,0x27,0x74,0x6f,0x70,0x5f,0x70,0x27,0x2c,0x20,0x27,0x6d,0x69,0x6e,0x5f,0x70,0x27,0x2c,0x20,0x27,0x6d,0x61,0x78,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x27,0x5d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x6b,0x65,0x79,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x69,0x6e,0x66,0x6f,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x5d,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x61,0x64,0x64,0x20,0x6d,0x6f,0x72,0x65,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x2d,0x72,0x65,0x6c,0x61,0x74,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x73,0x2c,0x20,0x70,0x6c,0x65,0x61,0x73,0x65,0x20,0x72,0x65,0x67,0x72,0x6f,0x75,0x70,0x20,0x74,0x68,0x65,0x6d,0x20,0x69,0x6e,0x74,0x6f,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x22,0x20,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x4f,0x74,0x68,0x65,0x72,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x32,0x30,0x30,0x20,0x6d,0x62,0x2d,0x32,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x4f,0x74,0x68,0x65,0x72,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x20,0x71,0x75,0x65,0x75,0x65,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x6c,0x61,0x62,0x65,0x6c,0x3d,0x22,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x20,0x71,0x75,0x65,0x75,0x65,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x6b,0x65,0x79,0x3d,0x22,0x27,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x27,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x69,0x6e,0x66,0x6f,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x20,0x69,0x6e,0x20,0x5b,0x27,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x72,0x61,0x6e,0x67,0x65,0x27,0x2c,0x20,0x27,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x27,0x2c,0x20,0x27,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x5f,0x70,0x27,0x2c,0x20,0x27,0x78,0x74,0x63,0x5f,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x27,0x2c,0x20,0x27,0x78,0x74,0x63,0x5f,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x27,0x5d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x6b,0x65,0x79,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x69,0x6e,0x66,0x6f,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x5d,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x50,0x65,0x6e,0x61,0x6c,0x74,0x69,0x65,0x73,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x32,0x30,0x30,0x20,0x6d,0x62,0x2d,0x32,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x50,0x65,0x6e,0x61,0x6c,0x74,0x69,0x65,0x73,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x76,0x2d,0x66,0x6f,0x72,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x20,0x69,0x6e,0x20,0x5b,0x27,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x27,0x2c,0x20,0x27,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x27,0x2c,0x20,0x27,0x70,0x72,0x65,0x73,0x65,0x6e,0x63,0x65,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x27,0x2c,0x20,0x27,0x66,0x72,0x65,0x71,0x75,0x65,0x6e,0x63,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x27,0x2c,0x20,0x27,0x64,0x72,0x79,0x5f,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x27,0x2c,0x20,0x27,0x64,0x72,0x79,0x5f,0x62,0x61,0x73,0x65,0x27,0x2c,0x20,0x27,0x64,0x72,0x79,0x5f,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x27,0x2c,0x20,0x27,0x64,0x72,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x27,0x5d,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x6b,0x65,0x79,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x22,0x20,0x3a,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2d,0x69,0x6e,0x66,0x6f,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x5d,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x41,0x64,0x76,0x61,0x6e,0x63,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x20,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x61,0x72,0x72,0x6f,0x77,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x32,0x30,0x30,0x20,0x6d,0x62,0x2d,0x32,0x20,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2d,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x74,0x69,0x74,0x6c,0x65,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x41,0x64,0x76,0x61,0x6e,0x63,0x65,0x64,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3c,0x2f,0x73,0x75,0x6d,0x6d,0x61,0x72,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x63,0x6f,0x6c,0x6c,0x61,0x70,0x73,0x65,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6f,0x72,0x6d,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x20,0x6d,0x62,0x2d,0x32,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x43,0x75,0x73,0x74,0x6f,0x6d,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x73,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x22,0x3e,0x43,0x75,0x73,0x74,0x6f,0x6d,0x20,0x4a,0x53,0x4f,0x4e,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x28,0x46,0x6f,0x72,0x20,0x6d,0x6f,0x72,0x65,0x20,0x69,0x6e,0x66,0x6f,0x2c,0x20,0x72,0x65,0x66,0x65,0x72,0x20,0x74,0x6f,0x20,0x3c,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x75,0x6e,0x64,0x65,0x72,0x6c,0x69,0x6e,0x65,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x67,0x69,0x74,0x68,0x75,0x62,0x2e,0x63,0x6f,0x6d,0x2f,0x67,0x67,0x65,0x72,0x67,0x61,0x6e,0x6f,0x76,0x2f,0x6c,0x6c,0x61,0x6d,0x61,0x2e,0x63,0x70,0x70,0x2f,0x62,0x6c,0x6f,0x62,0x2f,0x6d,0x61,0x73,0x74,0x65,0x72,0x2f,0x65,0x78,0x61,0x6d,0x70,0x6c,0x65,0x73,0x2f,0x73,0x65,0x72,0x76,0x65,0x72,0x2f,0x52,0x45,0x41,0x44,0x4d,0x45,0x2e,0x6d,0x64,0x22,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x72,0x65,0x6c,0x3d,0x22,0x6e,0x6f,0x6f,0x70,0x65,0x6e,0x65,0x72,0x20,0x6e,0x6f,0x72,0x65,0x66,0x65,0x72,0x72,0x65,0x72,0x22,0x3e,0x73,0x65,0x72,0x76,0x65,0x72,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x61,0x3e,0x29,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x20,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x68,0x2d,0x32,0x34,0x22,0x20,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x45,0x78,0x61,0x6d,0x70,0x6c,0x65,0x3a,0x20,0x7b,0x20,0x26,0x71,0x75,0x6f,0x74,0x3b,0x6d,0x69,0x72,0x6f,0x73,0x74,0x61,0x74,0x26,0x71,0x75,0x6f,0x74,0x3b,0x3a,0x20,0x31,0x2c,0x20,0x26,0x71,0x75,0x6f,0x74,0x3b,0x6d,0x69,0x6e,0x5f,0x70,0x26,0x71,0x75,0x6f,0x74,0x3b,0x3a,0x20,0x30,0x2e,0x31,0x20,0x7d,0x22,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x3d,0x22,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x75,0x73,0x74,0x6f,0x6d,0x22,0x3e,0x3c,0x2f,0x74,0x65,0x78,0x74,0x61,0x72,0x65,0x61,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x65,0x74,0x61,0x69,0x6c,0x73,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x61,0x63,0x74,0x69,0x6f,0x6e,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x22,0x3e,0x52,0x65,0x73,0x65,0x74,0x20,0x74,0x6f,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x41,0x6e,0x64,0x44,0x69,0x73,0x63,0x61,0x72,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x22,0x3e,0x43,0x6c,0x6f,0x73,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x20,0x62,0x74,0x6e,0x2d,0x70,0x72,0x69,0x6d,0x61,0x72,0x79,0x22,0x20,0x40,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x6f,0x73,0x65,0x41,0x6e,0x64,0x53,0x61,0x76,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x22,0x3e,0x53,0x61,0x76,0x65,0x20,0x61,0x6e,0x64,0x20,0x63,0x6c,0x6f,0x73,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x61,0x6c,0x6f,0x67,0x3e,0x0a,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x0a,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x54,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x3c,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x69,0x6e,0x70,0x75,0x74,0x20,0x69,0x6e,0x70,0x75,0x74,0x2d,0x62,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x20,0x6a,0x6f,0x69,0x6e,0x2d,0x69,0x74,0x65,0x6d,0x20,0x67,0x72,0x6f,0x77,0x20,0x66,0x6c,0x65,0x78,0x20,0x69,0x74,0x65,0x6d,0x73,0x2d,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x67,0x61,0x70,0x2d,0x32,0x20,0x6d,0x62,0x2d,0x32,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x53,0x68,0x6f,0x77,0x20,0x68,0x65,0x6c,0x70,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x6f,0x6e,0x20,0x68,0x6f,0x76,0x65,0x72,0x69,0x6e,0x67,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x20,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x68,0x6f,0x76,0x65,0x72,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x74,0x61,0x62,0x69,0x6e,0x64,0x65,0x78,0x3d,0x22,0x30,0x22,0x20,0x72,0x6f,0x6c,0x65,0x3d,0x22,0x62,0x75,0x74,0x74,0x6f,0x6e,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x66,0x6f,0x6e,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x7b,0x7b,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x7c,0x7c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x20,0x7d,0x7d,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x64,0x72,0x6f,0x70,0x64,0x6f,0x77,0x6e,0x2d,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x6d,0x65,0x6e,0x75,0x20,0x62,0x67,0x2d,0x62,0x61,0x73,0x65,0x2d,0x31,0x30,0x30,0x20,0x72,0x6f,0x75,0x6e,0x64,0x65,0x64,0x2d,0x62,0x6f,0x78,0x20,0x7a,0x2d,0x31,0x30,0x20,0x77,0x2d,0x36,0x34,0x20,0x70,0x2d,0x32,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x6d,0x74,0x2d,0x34,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x7b,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x27,0x28,0x6e,0x6f,0x20,0x68,0x65,0x6c,0x70,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x29,0x27,0x20,0x7d,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x21,0x2d,0x2d,0x20,0x48,0x65,0x72,0x65,0x20,0x77,0x65,0x20,0x66,0x6f,0x72,0x77,0x61,0x72,0x64,0x20,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x66,0x72,0x6f,0x6d,0x20,0x70,0x61,0x72,0x65,0x6e,0x74,0x20,0x74,0x6f,0x20,0x63,0x68,0x69,0x6c,0x64,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x73,0x65,0x65,0x3a,0x20,0x68,0x74,0x74,0x70,0x73,0x3a,0x2f,0x2f,0x73,0x74,0x61,0x63,0x6b,0x6f,0x76,0x65,0x72,0x66,0x6c,0x6f,0x77,0x2e,0x63,0x6f,0x6d,0x2f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x73,0x2f,0x34,0x37,0x33,0x31,0x31,0x39,0x33,0x36,0x2f,0x76,0x2d,0x6d,0x6f,0x64,0x65,0x6c,0x2d,0x61,0x6e,0x64,0x2d,0x63,0x68,0x69,0x6c,0x64,0x2d,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x20,0x2d,0x2d,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x67,0x72,0x6f,0x77,0x22,0x20,0x3a,0x70,0x6c,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x3d,0x22,0x27,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x27,0x20,0x2b,0x20,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x5b,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x5d,0x20,0x7c,0x7c,0x20,0x27,0x6e,0x6f,0x6e,0x65,0x27,0x29,0x22,0x20,0x3a,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x22,0x20,0x40,0x69,0x6e,0x70,0x75,0x74,0x3d,0x22,0x24,0x65,0x6d,0x69,0x74,0x28,0x27,0x75,0x70,0x64,0x61,0x74,0x65,0x3a,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x27,0x2c,0x20,0x24,0x65,0x76,0x65,0x6e,0x74,0x2e,0x74,0x61,0x72,0x67,0x65,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x29,0x22,0x20,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x0a,0x20,0x20,0x3c,0x2f,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3e,0x0a,0x0a,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x2e,0x2f,0x64,0x65,0x70,0x73,0x5f,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2d,0x69,0x74,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x20,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6d,0x6f,0x64,0x75,0x6c,0x65,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x20,0x7b,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x2c,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x2c,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x2c,0x20,0x68,0x20,0x7d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x27,0x2e,0x2f,0x64,0x65,0x70,0x73,0x5f,0x76,0x75,0x65,0x2e,0x65,0x73,0x6d,0x2d,0x62,0x72,0x6f,0x77,0x73,0x65,0x72,0x2e,0x6a,0x73,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6d,0x70,0x6f,0x72,0x74,0x20,0x7b,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x20,0x7d,0x20,0x66,0x72,0x6f,0x6d,0x20,0x27,0x2e,0x2f,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x2e,0x6a,0x73,0x27,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x74,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x20,0x3d,0x20,0x28,0x78,0x29,0x20,0x3d,0x3e,0x20,0x21,0x21,0x78,0x2e,0x74,0x6f,0x4c,0x6f,0x77,0x65,0x72,0x43,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x73,0x4e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x3d,0x20,0x28,0x6e,0x29,0x20,0x3d,0x3e,0x20,0x21,0x69,0x73,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x6e,0x29,0x20,0x26,0x26,0x20,0x21,0x69,0x73,0x4e,0x61,0x4e,0x28,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x74,0x74,0x72,0x20,0x3d,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x73,0x74,0x72,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x3e,0x2f,0x67,0x2c,0x20,0x27,0x26,0x67,0x74,0x3b,0x27,0x29,0x2e,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x28,0x2f,0x22,0x2f,0x67,0x2c,0x20,0x27,0x26,0x71,0x75,0x6f,0x74,0x3b,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x70,0x79,0x53,0x74,0x72,0x20,0x3d,0x20,0x28,0x73,0x74,0x72,0x29,0x20,0x3d,0x3e,0x20,0x6e,0x61,0x76,0x69,0x67,0x61,0x74,0x6f,0x72,0x2e,0x63,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x2e,0x77,0x72,0x69,0x74,0x65,0x54,0x65,0x78,0x74,0x28,0x73,0x74,0x72,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x73,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x42,0x41,0x53,0x45,0x5f,0x55,0x52,0x4c,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x62,0x61,0x73,0x65,0x27,0x29,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x62,0x75,0x67,0x67,0x69,0x6e,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7c,0x7c,0x20,0x28,0x6e,0x65,0x77,0x20,0x55,0x52,0x4c,0x28,0x27,0x2e,0x27,0x2c,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x61,0x73,0x65,0x55,0x52,0x49,0x29,0x2e,0x68,0x72,0x65,0x66,0x29,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x20,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x69,0x6e,0x20,0x6f,0x72,0x64,0x65,0x72,0x20,0x6e,0x6f,0x74,0x20,0x74,0x6f,0x20,0x69,0x6e,0x74,0x72,0x6f,0x64,0x75,0x63,0x65,0x20,0x62,0x72,0x65,0x61,0x6b,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x2c,0x20,0x70,0x6c,0x65,0x61,0x73,0x65,0x20,0x6b,0x65,0x65,0x70,0x20,0x74,0x68,0x65,0x20,0x73,0x61,0x6d,0x65,0x20,0x64,0x61,0x74,0x61,0x20,0x74,0x79,0x70,0x65,0x20,0x28,0x6e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x65,0x74,0x63,0x29,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x77,0x61,0x6e,0x74,0x20,0x74,0x6f,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x74,0x68,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x20,0x44,0x6f,0x20,0x6e,0x6f,0x74,0x20,0x75,0x73,0x65,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x6f,0x72,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x69,0x4b,0x65,0x79,0x3a,0x20,0x27,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x3a,0x20,0x27,0x59,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x61,0x20,0x68,0x65,0x6c,0x70,0x66,0x75,0x6c,0x20,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x6b,0x65,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x68,0x65,0x73,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x73,0x20,0x61,0x72,0x65,0x20,0x69,0x6e,0x20,0x73,0x79,0x6e,0x63,0x20,0x77,0x69,0x74,0x68,0x20,0x60,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x2e,0x68,0x60,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x3a,0x20,0x27,0x64,0x6b,0x79,0x70,0x6d,0x78,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x3a,0x20,0x30,0x2e,0x38,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x20,0x30,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x31,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x5f,0x6b,0x3a,0x20,0x34,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x5f,0x70,0x3a,0x20,0x30,0x2e,0x39,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x5f,0x70,0x3a,0x20,0x30,0x2e,0x30,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x74,0x63,0x5f,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x20,0x30,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x74,0x63,0x5f,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3a,0x20,0x30,0x2e,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x5f,0x70,0x3a,0x20,0x31,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x3a,0x20,0x36,0x34,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x31,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x63,0x65,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x30,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6e,0x63,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x30,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x3a,0x20,0x30,0x2e,0x30,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x62,0x61,0x73,0x65,0x3a,0x20,0x31,0x2e,0x37,0x35,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x32,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x3a,0x20,0x2d,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3a,0x20,0x2d,0x31,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x3a,0x20,0x27,0x27,0x2c,0x20,0x2f,0x2f,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x6a,0x73,0x6f,0x6e,0x2d,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x64,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x49,0x4e,0x46,0x4f,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x69,0x4b,0x65,0x79,0x3a,0x20,0x27,0x53,0x65,0x74,0x20,0x74,0x68,0x65,0x20,0x41,0x50,0x49,0x20,0x4b,0x65,0x79,0x20,0x69,0x66,0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x75,0x73,0x69,0x6e,0x67,0x20,0x2d,0x2d,0x61,0x70,0x69,0x2d,0x6b,0x65,0x79,0x20,0x6f,0x70,0x74,0x69,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x72,0x76,0x65,0x72,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x3a,0x20,0x27,0x54,0x68,0x65,0x20,0x73,0x74,0x61,0x72,0x74,0x69,0x6e,0x67,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x73,0x20,0x68,0x6f,0x77,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x73,0x68,0x6f,0x75,0x6c,0x64,0x20,0x62,0x65,0x68,0x61,0x76,0x65,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x3a,0x20,0x27,0x54,0x68,0x65,0x20,0x6f,0x72,0x64,0x65,0x72,0x20,0x61,0x74,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x20,0x61,0x72,0x65,0x20,0x61,0x70,0x70,0x6c,0x69,0x65,0x64,0x2c,0x20,0x69,0x6e,0x20,0x73,0x69,0x6d,0x70,0x6c,0x69,0x66,0x69,0x65,0x64,0x20,0x77,0x61,0x79,0x2e,0x20,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x69,0x73,0x20,0x22,0x64,0x6b,0x79,0x70,0x6d,0x78,0x74,0x22,0x3a,0x20,0x64,0x72,0x79,0x2d,0x3e,0x74,0x6f,0x70,0x5f,0x6b,0x2d,0x3e,0x74,0x79,0x70,0x5f,0x70,0x2d,0x3e,0x74,0x6f,0x70,0x5f,0x70,0x2d,0x3e,0x6d,0x69,0x6e,0x5f,0x70,0x2d,0x3e,0x78,0x74,0x63,0x2d,0x3e,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x3a,0x20,0x27,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x6e,0x65,0x73,0x73,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x62,0x79,0x20,0x61,0x66,0x66,0x65,0x63,0x74,0x69,0x6e,0x67,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x20,0x48,0x69,0x67,0x68,0x65,0x72,0x20,0x3d,0x20,0x6d,0x6f,0x72,0x65,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x2c,0x20,0x6c,0x6f,0x77,0x65,0x72,0x20,0x3d,0x20,0x6d,0x6f,0x72,0x65,0x20,0x66,0x6f,0x63,0x75,0x73,0x65,0x64,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x20,0x27,0x41,0x64,0x64,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2e,0x20,0x54,0x68,0x65,0x20,0x61,0x64,0x64,0x65,0x64,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x72,0x61,0x6e,0x67,0x65,0x20,0x6f,0x66,0x20,0x64,0x79,0x6e,0x61,0x6d,0x69,0x63,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x2c,0x20,0x77,0x68,0x69,0x63,0x68,0x20,0x61,0x64,0x6a,0x75,0x73,0x74,0x73,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x69,0x65,0x73,0x20,0x62,0x79,0x20,0x65,0x6e,0x74,0x72,0x6f,0x70,0x79,0x20,0x6f,0x66,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x27,0x41,0x64,0x64,0x6f,0x6e,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x2e,0x20,0x53,0x6d,0x6f,0x6f,0x74,0x68,0x65,0x73,0x20,0x6f,0x75,0x74,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x72,0x65,0x64,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x6d,0x6f,0x73,0x74,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x6c,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x5f,0x6b,0x3a,0x20,0x27,0x4b,0x65,0x65,0x70,0x73,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x6b,0x20,0x74,0x6f,0x70,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x5f,0x70,0x3a,0x20,0x27,0x4c,0x69,0x6d,0x69,0x74,0x73,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x74,0x6f,0x20,0x74,0x68,0x6f,0x73,0x65,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x6f,0x67,0x65,0x74,0x68,0x65,0x72,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x63,0x75,0x6d,0x75,0x6c,0x61,0x74,0x69,0x76,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6f,0x66,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x70,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x5f,0x70,0x3a,0x20,0x27,0x4c,0x69,0x6d,0x69,0x74,0x73,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x6d,0x69,0x6e,0x69,0x6d,0x75,0x6d,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x66,0x6f,0x72,0x20,0x61,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x65,0x64,0x2c,0x20,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x6d,0x6f,0x73,0x74,0x20,0x6c,0x69,0x6b,0x65,0x6c,0x79,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x74,0x63,0x5f,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x20,0x27,0x58,0x54,0x43,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x63,0x75,0x74,0x73,0x20,0x6f,0x75,0x74,0x20,0x74,0x6f,0x70,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x20,0x74,0x68,0x65,0x20,0x63,0x68,0x61,0x6e,0x63,0x65,0x20,0x6f,0x66,0x20,0x63,0x75,0x74,0x74,0x69,0x6e,0x67,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x61,0x74,0x20,0x61,0x6c,0x6c,0x2e,0x20,0x30,0x20,0x64,0x69,0x73,0x61,0x62,0x6c,0x65,0x73,0x20,0x58,0x54,0x43,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x74,0x63,0x5f,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3a,0x20,0x27,0x58,0x54,0x43,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x63,0x75,0x74,0x73,0x20,0x6f,0x75,0x74,0x20,0x74,0x6f,0x70,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3b,0x20,0x74,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x20,0x74,0x68,0x65,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x74,0x68,0x61,0x74,0x20,0x69,0x73,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x20,0x74,0x6f,0x20,0x63,0x75,0x74,0x20,0x74,0x68,0x61,0x74,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x5f,0x70,0x3a,0x20,0x27,0x53,0x6f,0x72,0x74,0x73,0x20,0x61,0x6e,0x64,0x20,0x6c,0x69,0x6d,0x69,0x74,0x73,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x65,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x63,0x65,0x20,0x62,0x65,0x74,0x77,0x65,0x65,0x6e,0x20,0x6c,0x6f,0x67,0x2d,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x61,0x6e,0x64,0x20,0x65,0x6e,0x74,0x72,0x6f,0x70,0x79,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x3a,0x20,0x27,0x4c,0x61,0x73,0x74,0x20,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x73,0x69,0x64,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x70,0x65,0x6e,0x61,0x6c,0x69,0x7a,0x69,0x6e,0x67,0x20,0x72,0x65,0x70,0x65,0x74,0x69,0x74,0x69,0x6f,0x6e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x27,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0x20,0x74,0x68,0x65,0x20,0x72,0x65,0x70,0x65,0x74,0x69,0x74,0x69,0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x63,0x65,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x27,0x4c,0x69,0x6d,0x69,0x74,0x73,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x77,0x68,0x65,0x74,0x68,0x65,0x72,0x20,0x74,0x68,0x65,0x79,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x20,0x6f,0x72,0x20,0x6e,0x6f,0x74,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6e,0x63,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x27,0x4c,0x69,0x6d,0x69,0x74,0x73,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x20,0x62,0x61,0x73,0x65,0x64,0x20,0x6f,0x6e,0x20,0x68,0x6f,0x77,0x20,0x6f,0x66,0x74,0x65,0x6e,0x20,0x74,0x68,0x65,0x79,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x3a,0x20,0x27,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x73,0x20,0x72,0x65,0x70,0x65,0x74,0x69,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x65,0x76,0x65,0x6e,0x20,0x61,0x63,0x72,0x6f,0x73,0x73,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x73,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x20,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x62,0x61,0x73,0x65,0x3a,0x20,0x27,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x73,0x20,0x72,0x65,0x70,0x65,0x74,0x69,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x65,0x76,0x65,0x6e,0x20,0x61,0x63,0x72,0x6f,0x73,0x73,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x73,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x20,0x62,0x61,0x73,0x65,0x20,0x76,0x61,0x6c,0x75,0x65,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x27,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x73,0x20,0x72,0x65,0x70,0x65,0x74,0x69,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x65,0x76,0x65,0x6e,0x20,0x61,0x63,0x72,0x6f,0x73,0x73,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x73,0x65,0x74,0x73,0x20,0x74,0x68,0x65,0x20,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x66,0x6f,0x72,0x20,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x3a,0x20,0x27,0x44,0x52,0x59,0x20,0x73,0x61,0x6d,0x70,0x6c,0x69,0x6e,0x67,0x20,0x72,0x65,0x64,0x75,0x63,0x65,0x73,0x20,0x72,0x65,0x70,0x65,0x74,0x69,0x74,0x69,0x6f,0x6e,0x20,0x69,0x6e,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x74,0x65,0x78,0x74,0x20,0x65,0x76,0x65,0x6e,0x20,0x61,0x63,0x72,0x6f,0x73,0x73,0x20,0x6c,0x6f,0x6e,0x67,0x20,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x73,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x70,0x61,0x72,0x61,0x6d,0x65,0x74,0x65,0x72,0x20,0x73,0x65,0x74,0x73,0x20,0x44,0x52,0x59,0x20,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x20,0x66,0x6f,0x72,0x20,0x74,0x68,0x65,0x20,0x6c,0x61,0x73,0x74,0x20,0x6e,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3a,0x20,0x27,0x54,0x68,0x65,0x20,0x6d,0x61,0x78,0x69,0x6d,0x75,0x6d,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x6f,0x66,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x20,0x70,0x65,0x72,0x20,0x6f,0x75,0x74,0x70,0x75,0x74,0x2e,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x3a,0x20,0x27,0x27,0x2c,0x20,0x2f,0x2f,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x6a,0x73,0x6f,0x6e,0x2d,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x69,0x65,0x64,0x20,0x6f,0x62,0x6a,0x65,0x63,0x74,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x6b,0x65,0x79,0x73,0x20,0x68,0x61,0x76,0x69,0x6e,0x67,0x20,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x28,0x69,0x2e,0x65,0x2e,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x2c,0x20,0x74,0x6f,0x70,0x5f,0x6b,0x2c,0x20,0x74,0x6f,0x70,0x5f,0x70,0x2c,0x20,0x65,0x74,0x63,0x29,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x4e,0x55,0x4d,0x45,0x52,0x49,0x43,0x5f,0x4b,0x45,0x59,0x53,0x20,0x3d,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2e,0x65,0x6e,0x74,0x72,0x69,0x65,0x73,0x28,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x29,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x65,0x20,0x3d,0x3e,0x20,0x69,0x73,0x4e,0x75,0x6d,0x65,0x72,0x69,0x63,0x28,0x65,0x5b,0x31,0x5d,0x29,0x29,0x2e,0x6d,0x61,0x70,0x28,0x65,0x20,0x3d,0x3e,0x20,0x65,0x5b,0x30,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x6d,0x65,0x73,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x64,0x61,0x69,0x73,0x79,0x75,0x69,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x54,0x48,0x45,0x4d,0x45,0x53,0x20,0x3d,0x20,0x5b,0x27,0x6c,0x69,0x67,0x68,0x74,0x27,0x2c,0x20,0x27,0x64,0x61,0x72,0x6b,0x27,0x2c,0x20,0x27,0x63,0x75,0x70,0x63,0x61,0x6b,0x65,0x27,0x2c,0x20,0x27,0x62,0x75,0x6d,0x62,0x6c,0x65,0x62,0x65,0x65,0x27,0x2c,0x20,0x27,0x65,0x6d,0x65,0x72,0x61,0x6c,0x64,0x27,0x2c,0x20,0x27,0x63,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x65,0x27,0x2c,0x20,0x27,0x73,0x79,0x6e,0x74,0x68,0x77,0x61,0x76,0x65,0x27,0x2c,0x20,0x27,0x72,0x65,0x74,0x72,0x6f,0x27,0x2c,0x20,0x27,0x63,0x79,0x62,0x65,0x72,0x70,0x75,0x6e,0x6b,0x27,0x2c,0x20,0x27,0x76,0x61,0x6c,0x65,0x6e,0x74,0x69,0x6e,0x65,0x27,0x2c,0x20,0x27,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x65,0x6e,0x27,0x2c,0x20,0x27,0x67,0x61,0x72,0x64,0x65,0x6e,0x27,0x2c,0x20,0x27,0x66,0x6f,0x72,0x65,0x73,0x74,0x27,0x2c,0x20,0x27,0x61,0x71,0x75,0x61,0x27,0x2c,0x20,0x27,0x6c,0x6f,0x66,0x69,0x27,0x2c,0x20,0x27,0x70,0x61,0x73,0x74,0x65,0x6c,0x27,0x2c,0x20,0x27,0x66,0x61,0x6e,0x74,0x61,0x73,0x79,0x27,0x2c,0x20,0x27,0x77,0x69,0x72,0x65,0x66,0x72,0x61,0x6d,0x65,0x27,0x2c,0x20,0x27,0x62,0x6c,0x61,0x63,0x6b,0x27,0x2c,0x20,0x27,0x6c,0x75,0x78,0x75,0x72,0x79,0x27,0x2c,0x20,0x27,0x64,0x72,0x61,0x63,0x75,0x6c,0x61,0x27,0x2c,0x20,0x27,0x63,0x6d,0x79,0x6b,0x27,0x2c,0x20,0x27,0x61,0x75,0x74,0x75,0x6d,0x6e,0x27,0x2c,0x20,0x27,0x62,0x75,0x73,0x69,0x6e,0x65,0x73,0x73,0x27,0x2c,0x20,0x27,0x61,0x63,0x69,0x64,0x27,0x2c,0x20,0x27,0x6c,0x65,0x6d,0x6f,0x6e,0x61,0x64,0x65,0x27,0x2c,0x20,0x27,0x6e,0x69,0x67,0x68,0x74,0x27,0x2c,0x20,0x27,0x63,0x6f,0x66,0x66,0x65,0x65,0x27,0x2c,0x20,0x27,0x77,0x69,0x6e,0x74,0x65,0x72,0x27,0x2c,0x20,0x27,0x64,0x69,0x6d,0x27,0x2c,0x20,0x27,0x6e,0x6f,0x72,0x64,0x27,0x2c,0x20,0x27,0x73,0x75,0x6e,0x73,0x65,0x74,0x27,0x5d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x56,0x75,0x65,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x20,0x3d,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x70,0x72,0x6f,0x70,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x64,0x20,0x3d,0x20,0x73,0x68,0x61,0x6c,0x6c,0x6f,0x77,0x52,0x65,0x66,0x28,0x6e,0x65,0x77,0x20,0x6d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x69,0x74,0x28,0x7b,0x20,0x62,0x72,0x65,0x61,0x6b,0x73,0x3a,0x20,0x74,0x72,0x75,0x65,0x20,0x7d,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x46,0x65,0x6e,0x63,0x68,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x20,0x3d,0x20,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x65,0x6e,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x2e,0x72,0x75,0x6c,0x65,0x73,0x2e,0x66,0x65,0x6e,0x63,0x65,0x20,0x3d,0x20,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x5b,0x69,0x64,0x78,0x5d,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6f,0x72,0x69,0x67,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x20,0x3d,0x20,0x6f,0x72,0x69,0x67,0x46,0x65,0x6e,0x63,0x68,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x72,0x28,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x20,0x69,0x64,0x78,0x2c,0x20,0x2e,0x2e,0x2e,0x61,0x72,0x67,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x72,0x65,0x6c,0x61,0x74,0x69,0x76,0x65,0x20,0x6d,0x79,0x2d,0x34,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x72,0x69,0x67,0x68,0x74,0x20,0x73,0x74,0x69,0x63,0x6b,0x79,0x20,0x74,0x6f,0x70,0x2d,0x34,0x20,0x6d,0x62,0x2d,0x32,0x20,0x6d,0x72,0x2d,0x32,0x20,0x68,0x2d,0x30,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x61,0x64,0x67,0x65,0x20,0x62,0x74,0x6e,0x2d,0x6d,0x69,0x6e,0x69,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6f,0x70,0x79,0x53,0x74,0x72,0x28,0x24,0x7b,0x65,0x73,0x63,0x61,0x70,0x65,0x41,0x74,0x74,0x72,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x29,0x7d,0x29,0x22,0x3e,0xf0,0x9f,0x93,0x8b,0x20,0x43,0x6f,0x70,0x79,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x24,0x7b,0x6f,0x72,0x69,0x67,0x52,0x65,0x6e,0x64,0x65,0x72,0x65,0x64,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x63,0x6f,0x70,0x79,0x53,0x74,0x72,0x20,0x3d,0x20,0x63,0x6f,0x70,0x79,0x53,0x74,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2e,0x72,0x65,0x6e,0x64,0x65,0x72,0x28,0x70,0x72,0x6f,0x70,0x73,0x2e,0x73,0x6f,0x75,0x72,0x63,0x65,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x68,0x28,0x22,0x64,0x69,0x76,0x22,0x2c,0x20,0x7b,0x20,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x3a,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x5b,0x22,0x73,0x6f,0x75,0x72,0x63,0x65,0x22,0x5d,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x66,0x69,0x65,0x6c,0x64,0x20,0x74,0x6f,0x20,0x62,0x65,0x20,0x75,0x73,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x6d,0x6f,0x64,0x61,0x6c,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x4d,0x6f,0x64,0x61,0x6c,0x53,0x68,0x6f,0x72,0x74,0x49,0x6e,0x70,0x75,0x74,0x20,0x3d,0x20,0x64,0x65,0x66,0x69,0x6e,0x65,0x43,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3a,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2d,0x6d,0x6f,0x64,0x61,0x6c,0x2d,0x73,0x68,0x6f,0x72,0x74,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x6f,0x70,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x62,0x65,0x6c,0x3a,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x4b,0x65,0x79,0x3a,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x3a,0x20,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x56,0x61,0x6c,0x75,0x65,0x3a,0x20,0x5b,0x4f,0x62,0x6a,0x65,0x63,0x74,0x2c,0x20,0x53,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x4e,0x75,0x6d,0x62,0x65,0x72,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x69,0x73,0x20,0x73,0x74,0x6f,0x72,0x65,0x64,0x20,0x69,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x66,0x6f,0x72,0x6d,0x61,0x74,0x3a,0x20,0x7b,0x20,0x5b,0x63,0x6f,0x6e,0x76,0x49,0x64,0x5d,0x3a,0x20,0x7b,0x20,0x69,0x64,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x2c,0x20,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x3a,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x3a,0x20,0x5b,0x2e,0x2e,0x2e,0x5d,0x20,0x7d,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x76,0x49,0x64,0x20,0x69,0x73,0x20,0x61,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x65,0x64,0x20,0x77,0x69,0x74,0x68,0x20,0x27,0x63,0x6f,0x6e,0x76,0x2d,0x27,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x6e,0x61,0x67,0x65,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x41,0x6c,0x6c,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x69,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6b,0x65,0x79,0x2e,0x73,0x74,0x61,0x72,0x74,0x73,0x57,0x69,0x74,0x68,0x28,0x27,0x63,0x6f,0x6e,0x76,0x2d,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x6b,0x65,0x79,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x3d,0x3e,0x20,0x62,0x2e,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x20,0x2d,0x20,0x61,0x2e,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x65,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x61,0x6e,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x69,0x66,0x20,0x63,0x6f,0x6e,0x76,0x49,0x64,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x4f,0x6e,0x65,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7c,0x7c,0x20,0x27,0x6e,0x75,0x6c,0x6c,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x63,0x6f,0x6e,0x76,0x49,0x64,0x20,0x64,0x6f,0x65,0x73,0x20,0x6e,0x6f,0x74,0x20,0x65,0x78,0x69,0x73,0x74,0x2c,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x20,0x6f,0x6e,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x70,0x65,0x6e,0x64,0x4d,0x73,0x67,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x6d,0x73,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x6d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x76,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4f,0x6e,0x65,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7c,0x7c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3a,0x20,0x63,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x70,0x75,0x73,0x68,0x28,0x6d,0x73,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x20,0x3d,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x73,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x76,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x4e,0x65,0x77,0x43,0x6f,0x6e,0x76,0x49,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x60,0x63,0x6f,0x6e,0x76,0x2d,0x24,0x7b,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x7d,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x49,0x74,0x65,0x6d,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x69,0x6c,0x74,0x65,0x72,0x41,0x6e,0x64,0x4b,0x65,0x65,0x70,0x4d,0x73,0x67,0x73,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x70,0x72,0x65,0x64,0x69,0x63,0x61,0x74,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x76,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4f,0x6e,0x65,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x76,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x28,0x70,0x72,0x65,0x64,0x69,0x63,0x61,0x74,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x20,0x3d,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x73,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x76,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x6f,0x70,0x4d,0x73,0x67,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x76,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4f,0x6e,0x65,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x76,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x73,0x67,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x70,0x6f,0x70,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x2e,0x6c,0x61,0x73,0x74,0x4d,0x6f,0x64,0x69,0x66,0x69,0x65,0x64,0x20,0x3d,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x63,0x6f,0x6e,0x76,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x73,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x76,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x73,0x67,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x61,0x6e,0x61,0x67,0x65,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x61,0x76,0x65,0x64,0x56,0x61,0x6c,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x27,0x29,0x20,0x7c,0x7c,0x20,0x27,0x7b,0x7d,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x74,0x6f,0x20,0x70,0x72,0x65,0x76,0x65,0x6e,0x74,0x20,0x62,0x72,0x65,0x61,0x6b,0x69,0x6e,0x67,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x66,0x75,0x74,0x75,0x72,0x65,0x2c,0x20,0x77,0x65,0x20,0x61,0x6c,0x77,0x61,0x79,0x73,0x20,0x70,0x72,0x6f,0x76,0x69,0x64,0x65,0x20,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x76,0x61,0x6c,0x75,0x65,0x20,0x66,0x6f,0x72,0x20,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x20,0x6b,0x65,0x79,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x73,0x61,0x76,0x65,0x64,0x56,0x61,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x73,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x63,0x6f,0x6e,0x66,0x69,0x67,0x27,0x2c,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x67,0x65,0x74,0x54,0x68,0x65,0x6d,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x67,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x74,0x68,0x65,0x6d,0x65,0x27,0x29,0x20,0x7c,0x7c,0x20,0x27,0x61,0x75,0x74,0x6f,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x68,0x65,0x6d,0x65,0x28,0x74,0x68,0x65,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x65,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x61,0x75,0x74,0x6f,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x49,0x74,0x65,0x6d,0x28,0x27,0x74,0x68,0x65,0x6d,0x65,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x73,0x65,0x74,0x49,0x74,0x65,0x6d,0x28,0x27,0x74,0x68,0x65,0x6d,0x65,0x27,0x2c,0x20,0x74,0x68,0x65,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x20,0x74,0x6f,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x6f,0x66,0x20,0x63,0x68,0x61,0x74,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x0a,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x69,0x66,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x4e,0x65,0x61,0x72,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x69,0x73,0x20,0x74,0x72,0x75,0x65,0x2c,0x20,0x6f,0x6e,0x6c,0x79,0x20,0x61,0x75,0x74,0x6f,0x2d,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x20,0x69,0x66,0x20,0x75,0x73,0x65,0x72,0x20,0x69,0x73,0x20,0x6e,0x65,0x61,0x72,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x61,0x74,0x53,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x3d,0x20,0x28,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x4e,0x65,0x61,0x72,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x73,0x67,0x4c,0x69,0x73,0x74,0x45,0x6c,0x65,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2d,0x6c,0x69,0x73,0x74,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x70,0x61,0x63,0x65,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x3d,0x20,0x6d,0x73,0x67,0x4c,0x69,0x73,0x74,0x45,0x6c,0x65,0x6d,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x6d,0x73,0x67,0x4c,0x69,0x73,0x74,0x45,0x6c,0x65,0x6d,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x70,0x20,0x2d,0x20,0x6d,0x73,0x67,0x4c,0x69,0x73,0x74,0x45,0x6c,0x65,0x6d,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x4e,0x65,0x61,0x72,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x7c,0x7c,0x20,0x28,0x73,0x70,0x61,0x63,0x65,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x3c,0x20,0x31,0x30,0x30,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x73,0x67,0x4c,0x69,0x73,0x74,0x45,0x6c,0x65,0x6d,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x28,0x7b,0x20,0x74,0x6f,0x70,0x3a,0x20,0x6d,0x73,0x67,0x4c,0x69,0x73,0x74,0x45,0x6c,0x65,0x6d,0x2e,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x7d,0x29,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6d,0x61,0x69,0x6e,0x41,0x70,0x70,0x20,0x3d,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x41,0x70,0x70,0x28,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x56,0x75,0x65,0x4d,0x61,0x72,0x6b,0x64,0x6f,0x77,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x4d,0x6f,0x64,0x61,0x6c,0x53,0x68,0x6f,0x72,0x74,0x49,0x6e,0x70,0x75,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x61,0x74,0x61,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x3a,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x41,0x6c,0x6c,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x3a,0x20,0x5b,0x5d,0x2c,0x20,0x2f,0x2f,0x20,0x7b,0x20,0x69,0x64,0x3a,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x2c,0x20,0x72,0x6f,0x6c,0x65,0x3a,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x20,0x7c,0x20,0x27,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x27,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x3a,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4e,0x65,0x77,0x43,0x6f,0x6e,0x76,0x49,0x64,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x3a,0x20,0x27,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x2f,0x2f,0x20,0x74,0x68,0x65,0x20,0x6f,0x6e,0x2d,0x67,0x6f,0x69,0x6e,0x67,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x66,0x72,0x6f,0x6d,0x20,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x6f,0x70,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x3a,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x54,0x68,0x65,0x6d,0x65,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x3a,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x68,0x6f,0x77,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x3a,0x20,0x66,0x61,0x6c,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x63,0x6f,0x6e,0x73,0x74,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x65,0x6d,0x65,0x73,0x3a,0x20,0x54,0x48,0x45,0x4d,0x45,0x53,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x44,0x65,0x66,0x61,0x75,0x6c,0x74,0x3a,0x20,0x7b,0x2e,0x2e,0x2e,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x49,0x6e,0x66,0x6f,0x3a,0x20,0x7b,0x2e,0x2e,0x2e,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x49,0x4e,0x46,0x4f,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6d,0x70,0x75,0x74,0x65,0x64,0x3a,0x20,0x7b,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x6f,0x75,0x6e,0x74,0x65,0x64,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x70,0x27,0x29,0x2e,0x63,0x6c,0x61,0x73,0x73,0x4c,0x69,0x73,0x74,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x27,0x6f,0x70,0x61,0x63,0x69,0x74,0x79,0x2d,0x30,0x27,0x29,0x3b,0x20,0x2f,0x2f,0x20,0x73,0x68,0x6f,0x77,0x20,0x61,0x70,0x70,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x63,0x72,0x6f,0x6c,0x6c,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x20,0x77,0x68,0x65,0x6e,0x20,0x74,0x68,0x65,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x20,0x69,0x73,0x20,0x75,0x70,0x64,0x61,0x74,0x65,0x64,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x45,0x6c,0x65,0x6d,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x2d,0x6d,0x73,0x67,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x72,0x65,0x73,0x69,0x7a,0x65,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x52,0x65,0x73,0x69,0x7a,0x65,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x63,0x68,0x61,0x74,0x53,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x69,0x7a,0x65,0x4f,0x62,0x73,0x65,0x72,0x76,0x65,0x72,0x2e,0x6f,0x62,0x73,0x65,0x72,0x76,0x65,0x28,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x45,0x6c,0x65,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x3a,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x28,0x74,0x68,0x65,0x6d,0x65,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x54,0x68,0x65,0x6d,0x65,0x20,0x3d,0x20,0x74,0x68,0x65,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x73,0x65,0x74,0x54,0x68,0x65,0x6d,0x65,0x28,0x74,0x68,0x65,0x6d,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4e,0x65,0x77,0x43,0x6f,0x6e,0x76,0x49,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x61,0x74,0x53,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x56,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x20,0x63,0x6f,0x6e,0x76,0x49,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x61,0x74,0x53,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x43,0x6f,0x6e,0x76,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x28,0x27,0x41,0x72,0x65,0x20,0x79,0x6f,0x75,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x20,0x74,0x68,0x69,0x73,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x3f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4e,0x65,0x77,0x43,0x6f,0x6e,0x76,0x49,0x64,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x77,0x6e,0x6c,0x6f,0x61,0x64,0x43,0x6f,0x6e,0x76,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4f,0x6e,0x65,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x63,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x4a,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x73,0x74,0x72,0x69,0x6e,0x67,0x69,0x66,0x79,0x28,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x6e,0x75,0x6c,0x6c,0x2c,0x20,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x62,0x6c,0x6f,0x62,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x42,0x6c,0x6f,0x62,0x28,0x5b,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x4a,0x73,0x6f,0x6e,0x5d,0x2c,0x20,0x7b,0x20,0x74,0x79,0x70,0x65,0x3a,0x20,0x27,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2f,0x6a,0x73,0x6f,0x6e,0x27,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x55,0x52,0x4c,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x55,0x52,0x4c,0x28,0x62,0x6c,0x6f,0x62,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x63,0x72,0x65,0x61,0x74,0x65,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x28,0x27,0x61,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x2e,0x68,0x72,0x65,0x66,0x20,0x3d,0x20,0x75,0x72,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x2e,0x64,0x6f,0x77,0x6e,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x20,0x60,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x24,0x7b,0x63,0x6f,0x6e,0x76,0x49,0x64,0x7d,0x2e,0x6a,0x73,0x6f,0x6e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x2e,0x63,0x6c,0x69,0x63,0x6b,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x62,0x6f,0x64,0x79,0x2e,0x72,0x65,0x6d,0x6f,0x76,0x65,0x43,0x68,0x69,0x6c,0x64,0x28,0x61,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x55,0x52,0x4c,0x2e,0x72,0x65,0x76,0x6f,0x6b,0x65,0x4f,0x62,0x6a,0x65,0x63,0x74,0x55,0x52,0x4c,0x28,0x75,0x72,0x6c,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x73,0x65,0x6e,0x64,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x4d,0x73,0x67,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6c,0x65,0x3a,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x20,0x3d,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x61,0x74,0x53,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x73,0x79,0x6e,0x63,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x7b,0x20,0x69,0x64,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2b,0x31,0x2c,0x20,0x72,0x6f,0x6c,0x65,0x3a,0x20,0x27,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x27,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x6e,0x75,0x6c,0x6c,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x62,0x6f,0x72,0x74,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x41,0x62,0x6f,0x72,0x74,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x6f,0x70,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x61,0x62,0x6f,0x72,0x74,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x2e,0x61,0x62,0x6f,0x72,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x3a,0x20,0x5b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x20,0x72,0x6f,0x6c,0x65,0x3a,0x20,0x27,0x73,0x79,0x73,0x74,0x65,0x6d,0x27,0x2c,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x79,0x73,0x74,0x65,0x6d,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x74,0x72,0x65,0x61,0x6d,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x61,0x63,0x68,0x65,0x5f,0x70,0x72,0x6f,0x6d,0x70,0x74,0x3a,0x20,0x74,0x72,0x75,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x72,0x61,0x6e,0x67,0x65,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x72,0x61,0x6e,0x67,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x79,0x6e,0x61,0x74,0x65,0x6d,0x70,0x5f,0x65,0x78,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x5f,0x6b,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x6f,0x70,0x5f,0x6b,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x70,0x5f,0x70,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x6f,0x70,0x5f,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x69,0x6e,0x5f,0x70,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6d,0x69,0x6e,0x5f,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x5f,0x70,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x74,0x79,0x70,0x69,0x63,0x61,0x6c,0x5f,0x70,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x74,0x63,0x5f,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x78,0x74,0x63,0x5f,0x70,0x72,0x6f,0x62,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x78,0x74,0x63,0x5f,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x78,0x74,0x63,0x5f,0x74,0x68,0x72,0x65,0x73,0x68,0x6f,0x6c,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x72,0x65,0x70,0x65,0x61,0x74,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x72,0x65,0x73,0x65,0x6e,0x63,0x65,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x70,0x72,0x65,0x73,0x65,0x6e,0x63,0x65,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x65,0x71,0x75,0x65,0x6e,0x63,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x66,0x72,0x65,0x71,0x75,0x65,0x6e,0x63,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x72,0x79,0x5f,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x69,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x62,0x61,0x73,0x65,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x72,0x79,0x5f,0x62,0x61,0x73,0x65,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x72,0x79,0x5f,0x61,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x5f,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x72,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x64,0x72,0x79,0x5f,0x70,0x65,0x6e,0x61,0x6c,0x74,0x79,0x5f,0x6c,0x61,0x73,0x74,0x5f,0x6e,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x78,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x6d,0x61,0x78,0x5f,0x74,0x6f,0x6b,0x65,0x6e,0x73,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x75,0x73,0x74,0x6f,0x6d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3f,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x75,0x73,0x74,0x6f,0x6d,0x29,0x20,0x3a,0x20,0x7b,0x7d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2e,0x2e,0x2e,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x61,0x70,0x69,0x4b,0x65,0x79,0x20,0x3f,0x20,0x7b,0x20,0x61,0x70,0x69,0x5f,0x6b,0x65,0x79,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x61,0x70,0x69,0x4b,0x65,0x79,0x20,0x7d,0x20,0x3a,0x20,0x7b,0x7d,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x3a,0x20,0x61,0x62,0x6f,0x72,0x74,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x70,0x69,0x5f,0x75,0x72,0x6c,0x3a,0x20,0x42,0x41,0x53,0x45,0x5f,0x55,0x52,0x4c,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6e,0x64,0x70,0x6f,0x69,0x6e,0x74,0x3a,0x20,0x27,0x2f,0x63,0x68,0x61,0x74,0x2f,0x63,0x6f,0x6d,0x70,0x6c,0x65,0x74,0x69,0x6f,0x6e,0x73,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x61,0x77,0x61,0x69,0x74,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x68,0x75,0x6e,0x6b,0x20,0x6f,0x66,0x20,0x6c,0x6c,0x61,0x6d,0x61,0x28,0x70,0x72,0x6f,0x6d,0x70,0x74,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x73,0x74,0x6f,0x70,0x20,0x3d,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x73,0x74,0x6f,0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x61,0x64,0x64,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x64,0x61,0x74,0x61,0x2e,0x63,0x68,0x6f,0x69,0x63,0x65,0x73,0x5b,0x30,0x5d,0x2e,0x64,0x65,0x6c,0x74,0x61,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7c,0x7c,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x61,0x64,0x64,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3a,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x2e,0x69,0x64,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6c,0x65,0x3a,0x20,0x27,0x61,0x73,0x73,0x69,0x73,0x74,0x61,0x6e,0x74,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x6c,0x61,0x73,0x74,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2b,0x20,0x61,0x64,0x64,0x65,0x64,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x4d,0x73,0x67,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x28,0x29,0x20,0x3d,0x3e,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6d,0x73,0x67,0x2d,0x69,0x6e,0x70,0x75,0x74,0x27,0x29,0x2e,0x66,0x6f,0x63,0x75,0x73,0x28,0x29,0x2c,0x20,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x3d,0x3d,0x3d,0x20,0x27,0x41,0x62,0x6f,0x72,0x74,0x45,0x72,0x72,0x6f,0x72,0x27,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x75,0x73,0x65,0x72,0x20,0x73,0x74,0x6f,0x70,0x70,0x65,0x64,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x76,0x69,0x61,0x20,0x73,0x74,0x6f,0x70,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x4d,0x73,0x67,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x70,0x6f,0x70,0x20,0x6c,0x61,0x73,0x74,0x20,0x75,0x73,0x65,0x72,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6c,0x61,0x73,0x74,0x55,0x73,0x65,0x72,0x4d,0x73,0x67,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x70,0x6f,0x70,0x4d,0x73,0x67,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x6e,0x70,0x75,0x74,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6c,0x61,0x73,0x74,0x55,0x73,0x65,0x72,0x4d,0x73,0x67,0x20,0x3f,0x20,0x6c,0x61,0x73,0x74,0x55,0x73,0x65,0x72,0x4d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3a,0x20,0x27,0x27,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x70,0x65,0x6e,0x64,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x74,0x6f,0x70,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x28,0x29,0x20,0x3d,0x3e,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x68,0x61,0x74,0x53,0x63,0x72,0x6f,0x6c,0x6c,0x54,0x6f,0x42,0x6f,0x74,0x74,0x6f,0x6d,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x61,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x4d,0x73,0x67,0x28,0x6d,0x73,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x54,0x4f,0x44,0x4f,0x3a,0x20,0x73,0x6f,0x6d,0x65,0x68,0x6f,0x77,0x20,0x6b,0x65,0x65,0x70,0x20,0x6f,0x6c,0x64,0x20,0x68,0x69,0x73,0x74,0x6f,0x72,0x79,0x20,0x28,0x6c,0x69,0x6b,0x65,0x20,0x68,0x6f,0x77,0x20,0x43,0x68,0x61,0x74,0x47,0x50,0x54,0x20,0x68,0x61,0x73,0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x22,0x74,0x72,0x65,0x65,0x22,0x29,0x2e,0x20,0x54,0x68,0x69,0x73,0x20,0x63,0x61,0x6e,0x20,0x62,0x65,0x20,0x64,0x6f,0x6e,0x65,0x20,0x62,0x79,0x20,0x61,0x64,0x64,0x69,0x6e,0x67,0x20,0x22,0x73,0x75,0x62,0x2d,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x22,0x20,0x77,0x69,0x74,0x68,0x20,0x22,0x73,0x75,0x62,0x63,0x6f,0x6e,0x76,0x2d,0x22,0x20,0x70,0x72,0x65,0x66,0x69,0x78,0x2c,0x20,0x61,0x6e,0x64,0x20,0x6e,0x65,0x77,0x20,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x20,0x6c,0x69,0x73,0x74,0x20,0x6f,0x66,0x20,0x73,0x75,0x62,0x63,0x6f,0x6e,0x76,0x49,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x41,0x6e,0x64,0x4b,0x65,0x65,0x70,0x4d,0x73,0x67,0x73,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x2e,0x69,0x64,0x20,0x3c,0x20,0x6d,0x73,0x67,0x2e,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x70,0x79,0x4d,0x73,0x67,0x28,0x6d,0x73,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x70,0x79,0x53,0x74,0x72,0x28,0x6d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x64,0x69,0x74,0x55,0x73,0x65,0x72,0x4d,0x73,0x67,0x41,0x6e,0x64,0x52,0x65,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x28,0x6d,0x73,0x67,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x69,0x73,0x47,0x65,0x6e,0x65,0x72,0x61,0x74,0x69,0x6e,0x67,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x20,0x3d,0x20,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x3d,0x20,0x6d,0x73,0x67,0x2e,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x65,0x64,0x69,0x74,0x69,0x6e,0x67,0x4d,0x73,0x67,0x20,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x66,0x69,0x6c,0x74,0x65,0x72,0x41,0x6e,0x64,0x4b,0x65,0x65,0x70,0x4d,0x73,0x67,0x73,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x28,0x6d,0x29,0x20,0x3d,0x3e,0x20,0x6d,0x2e,0x69,0x64,0x20,0x3c,0x20,0x6d,0x73,0x67,0x2e,0x69,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x61,0x70,0x70,0x65,0x6e,0x64,0x4d,0x73,0x67,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x2c,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x64,0x3a,0x20,0x44,0x61,0x74,0x65,0x2e,0x6e,0x6f,0x77,0x28,0x29,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x6c,0x65,0x3a,0x20,0x27,0x75,0x73,0x65,0x72,0x27,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3a,0x20,0x6e,0x65,0x77,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x67,0x65,0x6e,0x65,0x72,0x61,0x74,0x65,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x28,0x63,0x75,0x72,0x72,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x20,0x64,0x69,0x61,0x6c,0x6f,0x67,0x20,0x6d,0x65,0x74,0x68,0x6f,0x64,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x41,0x6e,0x64,0x53,0x61,0x76,0x65,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x75,0x73,0x74,0x6f,0x6d,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x29,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x63,0x75,0x73,0x74,0x6f,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x6f,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x27,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x4a,0x53,0x4f,0x4e,0x20,0x66,0x6f,0x72,0x20,0x63,0x75,0x73,0x74,0x6f,0x6d,0x20,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x65,0x69,0x74,0x68,0x65,0x72,0x20,0x66,0x69,0x78,0x20,0x69,0x74,0x20,0x6f,0x72,0x20,0x6c,0x65,0x61,0x76,0x65,0x20,0x69,0x74,0x20,0x65,0x6d,0x70,0x74,0x79,0x2e,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x63,0x6f,0x6e,0x73,0x74,0x20,0x6b,0x65,0x79,0x20,0x6f,0x66,0x20,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x4e,0x55,0x4d,0x45,0x52,0x49,0x43,0x5f,0x4b,0x45,0x59,0x53,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x73,0x4e,0x61,0x4e,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x20,0x7c,0x7c,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x6b,0x65,0x79,0x5d,0x2e,0x74,0x6f,0x53,0x74,0x72,0x69,0x6e,0x67,0x28,0x29,0x2e,0x74,0x72,0x69,0x6d,0x28,0x29,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3d,0x3d,0x3d,0x20,0x30,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x60,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x24,0x7b,0x6b,0x65,0x79,0x7d,0x20,0x28,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x61,0x6e,0x20,0x69,0x6e,0x74,0x65,0x67,0x65,0x72,0x20,0x6f,0x72,0x20,0x61,0x20,0x66,0x6c,0x6f,0x61,0x74,0x29,0x60,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x6b,0x65,0x79,0x5d,0x20,0x3d,0x20,0x70,0x61,0x72,0x73,0x65,0x46,0x6c,0x6f,0x61,0x74,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x6b,0x65,0x79,0x5d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x6f,0x77,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x73,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6c,0x6f,0x73,0x65,0x41,0x6e,0x64,0x44,0x69,0x73,0x63,0x61,0x72,0x64,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x73,0x68,0x6f,0x77,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x65,0x74,0x43,0x6f,0x6e,0x66,0x69,0x67,0x44,0x69,0x61,0x6c,0x6f,0x67,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x72,0x6d,0x28,0x27,0x41,0x72,0x65,0x20,0x79,0x6f,0x75,0x20,0x73,0x75,0x72,0x65,0x20,0x74,0x6f,0x20,0x72,0x65,0x73,0x65,0x74,0x20,0x61,0x6c,0x6c,0x20,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3f,0x27,0x29,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x3d,0x20,0x7b,0x2e,0x2e,0x2e,0x43,0x4f,0x4e,0x46,0x49,0x47,0x5f,0x44,0x45,0x46,0x41,0x55,0x4c,0x54,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2f,0x2f,0x20,0x73,0x79,0x6e,0x63,0x20,0x73,0x74,0x61,0x74,0x65,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x63,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x41,0x6c,0x6c,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x73,0x28,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x65,0x74,0x63,0x68,0x4d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x28,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x68,0x69,0x73,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x3d,0x20,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x55,0x74,0x69,0x6c,0x73,0x2e,0x67,0x65,0x74,0x4f,0x6e,0x65,0x43,0x6f,0x6e,0x76,0x65,0x72,0x73,0x61,0x74,0x69,0x6f,0x6e,0x28,0x74,0x68,0x69,0x73,0x2e,0x76,0x69,0x65,0x77,0x69,0x6e,0x67,0x43,0x6f,0x6e,0x76,0x49,0x64,0x29,0x3f,0x2e,0x6d,0x65,0x73,0x73,0x61,0x67,0x65,0x73,0x20,0x3f,0x3f,0x20,0x5b,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x2c,0x0a,0x20,0x20,0x20,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x41,0x70,0x70,0x2e,0x63,0x6f,0x6e,0x66,0x69,0x67,0x2e,0x65,0x72,0x72,0x6f,0x72,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x20,0x3d,0x20,0x61,0x6c,0x65,0x72,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x74,0x72,0x79,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x41,0x70,0x70,0x2e,0x6d,0x6f,0x75,0x6e,0x74,0x28,0x27,0x23,0x61,0x70,0x70,0x27,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x20,0x63,0x61,0x74,0x63,0x68,0x20,0x28,0x65,0x72,0x72,0x29,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x6f,0x6c,0x65,0x2e,0x65,0x72,0x72,0x6f,0x72,0x28,0x65,0x72,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x70,0x27,0x29,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x60,0x3c,0x64,0x69,0x76,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x32,0x65,0x6d,0x20,0x61,0x75,0x74,0x6f,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x46,0x61,0x69,0x6c,0x65,0x64,0x20,0x74,0x6f,0x20,0x73,0x74,0x61,0x72,0x74,0x20,0x61,0x70,0x70,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x74,0x72,0x79,0x20,0x63,0x6c,0x65,0x61,0x72,0x69,0x6e,0x67,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x20,0x61,0x6e,0x64,0x20,0x74,0x72,0x79,0x20,0x61,0x67,0x61,0x69,0x6e,0x2e,0x3c,0x62,0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x43,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x2e,0x63,0x6c,0x65,0x61,0x72,0x28,0x29,0x3b,0x20,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2e,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x22,0x3e,0x43,0x6c,0x65,0x61,0x72,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x53,0x74,0x6f,0x72,0x61,0x67,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x60,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0a,}; +unsigned int index_html_len = 34880; diff --git a/llama.cpp/build/examples/server/loading.html.hpp b/llama.cpp/build/examples/server/loading.html.hpp new file mode 100644 index 0000000000000000000000000000000000000000..905da6fe605adf8ea566bbebd265443ee16cddc0 --- /dev/null +++ b/llama.cpp/build/examples/server/loading.html.hpp @@ -0,0 +1,2 @@ +unsigned char loading_html[] = {0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x68,0x74,0x74,0x70,0x2d,0x65,0x71,0x75,0x69,0x76,0x3d,0x22,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x35,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x54,0x68,0x65,0x20,0x6d,0x6f,0x64,0x65,0x6c,0x20,0x69,0x73,0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x2e,0x20,0x50,0x6c,0x65,0x61,0x73,0x65,0x20,0x77,0x61,0x69,0x74,0x2e,0x3c,0x62,0x72,0x2f,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x54,0x68,0x65,0x20,0x75,0x73,0x65,0x72,0x20,0x69,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x61,0x70,0x70,0x65,0x61,0x72,0x20,0x73,0x6f,0x6f,0x6e,0x2e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x0a,0x20,0x20,0x20,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0a,}; +unsigned int loading_html_len = 268; diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/simple-chat/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/DependInfo.cmake b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1d17234ed6d7f7037b1bc1d0944d1ba00b088e0e --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/DependInfo.cmake @@ -0,0 +1,23 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp" "examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o" "gcc" "examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b28d854a106f0c0e12e543c2593d517d905d927d --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make @@ -0,0 +1,114 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/simple-chat/CMakeFiles/llama-simple-chat.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/simple-chat/CMakeFiles/llama-simple-chat.dir/flags.make + +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/flags.make +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o: ../examples/simple-chat/simple-chat.cpp +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o -MF CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o.d -o CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp" + +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp" > CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.i + +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp" -o CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.s + +# Object files for target llama-simple-chat +llama__simple__chat_OBJECTS = \ +"CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o" + +# External object files for target llama-simple-chat +llama__simple__chat_EXTERNAL_OBJECTS = + +bin/llama-simple-chat: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o +bin/llama-simple-chat: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make +bin/llama-simple-chat: src/libllama.so +bin/llama-simple-chat: ggml/src/libggml.so +bin/llama-simple-chat: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-simple-chat: ggml/src/libggml-base.so +bin/llama-simple-chat: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-simple-chat" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-simple-chat.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build: bin/llama-simple-chat +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build + +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat" && $(CMAKE_COMMAND) -P CMakeFiles/llama-simple-chat.dir/cmake_clean.cmake +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/clean + +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend + diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/cmake_clean.cmake b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..633246f93a0e0d9dfa4ded364fce2e9cb4a8ad97 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-simple-chat" + "../../bin/llama-simple-chat.pdb" + "CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o" + "CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-simple-chat.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.make b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..39f785421cfee1ea9eb6017dfbc70e299ac9b4e0 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-simple-chat. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.ts b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..df53e107a249e43a7895f40629ded3c37df4c9e0 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-simple-chat. diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend.make b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7d419048d8c53e55292054e263eca272361e9e47 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-simple-chat. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/flags.make b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..4760531e6a1223f219f3b1ae8ba5877dd4a0e560 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/link.txt b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..de0020271d930db37b34950a891cd4c4b3a42ec3 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o -o ../../bin/llama-simple-chat -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/progress.make b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..5eeab3e19341bb2e2081089e061abd5eeaf628be --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 62 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..89bc5aa92299da72b4fca3b0f95f077baef59461 Binary files /dev/null and b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o differ diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o.d b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..779d93d7c09aec5f357379b0d4a665fcccc55bf2 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o.d @@ -0,0 +1,169 @@ +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat/simple-chat.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/c++/11/cstring \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/iostream /usr/include/c++/11/ostream \ + /usr/include/c++/11/ios /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ios_base.h /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc \ + /usr/include/c++/11/bits/ostream.tcc /usr/include/c++/11/istream \ + /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/examples/simple-chat/CMakeFiles/progress.marks b/llama.cpp/build/examples/simple-chat/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..60d3b2f4a4cd5f1637eba020358bfe5ecb5edcf2 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CMakeFiles/progress.marks @@ -0,0 +1 @@ +15 diff --git a/llama.cpp/build/examples/simple-chat/CTestTestfile.cmake b/llama.cpp/build/examples/simple-chat/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..91aa28838befd669978b3967b480a94db9839984 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/simple-chat/Makefile b/llama.cpp/build/examples/simple-chat/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..2137f6cd98bb79ce027323fa67f3c3e789bc94d9 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple-chat//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple-chat/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple-chat/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple-chat/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple-chat/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule +.PHONY : examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule + +# Convenience name for target. +llama-simple-chat: examples/simple-chat/CMakeFiles/llama-simple-chat.dir/rule +.PHONY : llama-simple-chat + +# fast build rule for target. +llama-simple-chat/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build +.PHONY : llama-simple-chat/fast + +simple-chat.o: simple-chat.cpp.o +.PHONY : simple-chat.o + +# target to build an object file +simple-chat.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o +.PHONY : simple-chat.cpp.o + +simple-chat.i: simple-chat.cpp.i +.PHONY : simple-chat.i + +# target to preprocess a source file +simple-chat.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.i +.PHONY : simple-chat.cpp.i + +simple-chat.s: simple-chat.cpp.s +.PHONY : simple-chat.s + +# target to generate assembly for a file +simple-chat.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple-chat/CMakeFiles/llama-simple-chat.dir/build.make examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.s +.PHONY : simple-chat.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-simple-chat" + @echo "... simple-chat.o" + @echo "... simple-chat.i" + @echo "... simple-chat.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/simple-chat/cmake_install.cmake b/llama.cpp/build/examples/simple-chat/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b41685206a5d773f055459d9d3f342594d8db521 --- /dev/null +++ b/llama.cpp/build/examples/simple-chat/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple-chat + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-simple-chat") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple-chat") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/simple/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/simple/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/DependInfo.cmake b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5e1e279bb809c43818292ff3f2da7a0ab1ac0f54 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/DependInfo.cmake @@ -0,0 +1,23 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp" "examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o" "gcc" "examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/build.make b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0ea68913499527a1e8d8a3787b51e666a4694c91 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/build.make @@ -0,0 +1,114 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/simple/CMakeFiles/llama-simple.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/simple/CMakeFiles/llama-simple.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/simple/CMakeFiles/llama-simple.dir/flags.make + +examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o: examples/simple/CMakeFiles/llama-simple.dir/flags.make +examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o: ../examples/simple/simple.cpp +examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o: examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o -MF CMakeFiles/llama-simple.dir/simple.cpp.o.d -o CMakeFiles/llama-simple.dir/simple.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp" + +examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-simple.dir/simple.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp" > CMakeFiles/llama-simple.dir/simple.cpp.i + +examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-simple.dir/simple.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp" -o CMakeFiles/llama-simple.dir/simple.cpp.s + +# Object files for target llama-simple +llama__simple_OBJECTS = \ +"CMakeFiles/llama-simple.dir/simple.cpp.o" + +# External object files for target llama-simple +llama__simple_EXTERNAL_OBJECTS = + +bin/llama-simple: examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o +bin/llama-simple: examples/simple/CMakeFiles/llama-simple.dir/build.make +bin/llama-simple: src/libllama.so +bin/llama-simple: ggml/src/libggml.so +bin/llama-simple: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-simple: ggml/src/libggml-base.so +bin/llama-simple: examples/simple/CMakeFiles/llama-simple.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-simple" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-simple.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/simple/CMakeFiles/llama-simple.dir/build: bin/llama-simple +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/build + +examples/simple/CMakeFiles/llama-simple.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple" && $(CMAKE_COMMAND) -P CMakeFiles/llama-simple.dir/cmake_clean.cmake +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/clean + +examples/simple/CMakeFiles/llama-simple.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/depend + diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/cmake_clean.cmake b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4584c021cbf2a65a2f5019119c29cd823cb54087 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-simple" + "../../bin/llama-simple.pdb" + "CMakeFiles/llama-simple.dir/simple.cpp.o" + "CMakeFiles/llama-simple.dir/simple.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-simple.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.make b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9ea9096d98f6f1932d6b7835d8919322a3145309 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-simple. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.ts b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..05f086ca16ed2d0cd476f6cdfa950b065275509f --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-simple. diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/depend.make b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7ea584bde86e3725422b763dfddc5c4df5808295 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-simple. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/flags.make b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..4760531e6a1223f219f3b1ae8ba5877dd4a0e560 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/link.txt b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..23289ff4a8094a78ce9f1f801cd8c11b72364fd1 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-simple.dir/simple.cpp.o -o ../../bin/llama-simple -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/progress.make b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..deeeb9c82aaa0999e75a1e795603ee3ad1ba242f --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 61 + diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..72706500d31c514bd6e60cbc4e4647e91e628906 Binary files /dev/null and b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o differ diff --git a/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o.d b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..822cc05f6c36b8ef073e0f57abcb23cec783097b --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o.d @@ -0,0 +1,148 @@ +examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple/simple.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/c++/11/cstring \ + /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/examples/simple/CMakeFiles/progress.marks b/llama.cpp/build/examples/simple/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..60d3b2f4a4cd5f1637eba020358bfe5ecb5edcf2 --- /dev/null +++ b/llama.cpp/build/examples/simple/CMakeFiles/progress.marks @@ -0,0 +1 @@ +15 diff --git a/llama.cpp/build/examples/simple/CTestTestfile.cmake b/llama.cpp/build/examples/simple/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..766454c3dbb48f44a6924fa656cc63ea0cf937ac --- /dev/null +++ b/llama.cpp/build/examples/simple/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/simple/Makefile b/llama.cpp/build/examples/simple/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..63a689ea0d1237b270027eb63b5428d6ed09fb43 --- /dev/null +++ b/llama.cpp/build/examples/simple/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/simple//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/simple/CMakeFiles/llama-simple.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/simple/CMakeFiles/llama-simple.dir/rule +.PHONY : examples/simple/CMakeFiles/llama-simple.dir/rule + +# Convenience name for target. +llama-simple: examples/simple/CMakeFiles/llama-simple.dir/rule +.PHONY : llama-simple + +# fast build rule for target. +llama-simple/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/build +.PHONY : llama-simple/fast + +simple.o: simple.cpp.o +.PHONY : simple.o + +# target to build an object file +simple.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o +.PHONY : simple.cpp.o + +simple.i: simple.cpp.i +.PHONY : simple.i + +# target to preprocess a source file +simple.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.i +.PHONY : simple.cpp.i + +simple.s: simple.cpp.s +.PHONY : simple.s + +# target to generate assembly for a file +simple.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/simple/CMakeFiles/llama-simple.dir/build.make examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.s +.PHONY : simple.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-simple" + @echo "... simple.o" + @echo "... simple.i" + @echo "... simple.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/simple/cmake_install.cmake b/llama.cpp/build/examples/simple/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fba35afff832567c7ebf1449d29a48a435e0b1bb --- /dev/null +++ b/llama.cpp/build/examples/simple/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/simple + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-simple") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-simple") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/speculative-simple/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/DependInfo.cmake b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..11a7730e7cb7b615022a6df437dcc9f5de5a56b3 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp" "examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o" "gcc" "examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..7990d09c6bfe82e21c3332db5c7318a0079a802f --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/flags.make + +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/flags.make +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o: ../examples/speculative-simple/speculative-simple.cpp +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o -MF CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o.d -o CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp" + +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp" > CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.i + +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp" -o CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.s + +# Object files for target llama-speculative-simple +llama__speculative__simple_OBJECTS = \ +"CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o" + +# External object files for target llama-speculative-simple +llama__speculative__simple_EXTERNAL_OBJECTS = + +bin/llama-speculative-simple: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o +bin/llama-speculative-simple: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make +bin/llama-speculative-simple: common/libcommon.a +bin/llama-speculative-simple: src/libllama.so +bin/llama-speculative-simple: ggml/src/libggml.so +bin/llama-speculative-simple: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-speculative-simple: ggml/src/libggml-base.so +bin/llama-speculative-simple: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-speculative-simple" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-speculative-simple.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build: bin/llama-speculative-simple +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build + +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple" && $(CMAKE_COMMAND) -P CMakeFiles/llama-speculative-simple.dir/cmake_clean.cmake +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/clean + +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend + diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/cmake_clean.cmake b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..311fc5ed545dcf25410897843977ed3ac6417fbd --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-speculative-simple" + "../../bin/llama-speculative-simple.pdb" + "CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o" + "CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-speculative-simple.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.make b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..94c238a113a956b5204dc212000fe82b3beef413 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-speculative-simple. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.ts b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..bf4908e91da723a157c1b856a01d61d6f43bd07f --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-speculative-simple. diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend.make b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2eab02ed4436e64a19556dd15b322c3ece054dce --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-speculative-simple. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/flags.make b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/link.txt b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..848b775ff8b7a4d55d03c29d8b6fd3cf00971444 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o -o ../../bin/llama-speculative-simple -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/progress.make b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..c137f5554e498d87e395d8103e55340b2f3bb5e4 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 64 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..3e20ed1d3291125c4b007a8e5c58bd28e6484c77 Binary files /dev/null and b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o differ diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o.d b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..eedb6f22b599e8f2b7a7a41cc5211eef128da32f --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o.d @@ -0,0 +1,181 @@ +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple/speculative-simple.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./speculative.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h diff --git a/llama.cpp/build/examples/speculative-simple/CMakeFiles/progress.marks b/llama.cpp/build/examples/speculative-simple/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/speculative-simple/CTestTestfile.cmake b/llama.cpp/build/examples/speculative-simple/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a4222934eb708579a3d6cfc58fc3d7ec39630e77 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/speculative-simple/Makefile b/llama.cpp/build/examples/speculative-simple/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..982eec032ac842d0e76cc2212979f3635dd043f4 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative-simple//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative-simple/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative-simple/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative-simple/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative-simple/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule +.PHONY : examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule + +# Convenience name for target. +llama-speculative-simple: examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/rule +.PHONY : llama-speculative-simple + +# fast build rule for target. +llama-speculative-simple/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build +.PHONY : llama-speculative-simple/fast + +speculative-simple.o: speculative-simple.cpp.o +.PHONY : speculative-simple.o + +# target to build an object file +speculative-simple.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o +.PHONY : speculative-simple.cpp.o + +speculative-simple.i: speculative-simple.cpp.i +.PHONY : speculative-simple.i + +# target to preprocess a source file +speculative-simple.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.i +.PHONY : speculative-simple.cpp.i + +speculative-simple.s: speculative-simple.cpp.s +.PHONY : speculative-simple.s + +# target to generate assembly for a file +speculative-simple.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/build.make examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.s +.PHONY : speculative-simple.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-speculative-simple" + @echo "... speculative-simple.o" + @echo "... speculative-simple.i" + @echo "... speculative-simple.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/speculative-simple/cmake_install.cmake b/llama.cpp/build/examples/speculative-simple/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..db0df47b7c05e353b4de1611bd598b72b8e3a609 --- /dev/null +++ b/llama.cpp/build/examples/speculative-simple/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative-simple + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-speculative-simple") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative-simple") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/speculative/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/DependInfo.cmake b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d33a523f647dbd9939f4aa0c62d3bafa89adbc43 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp" "examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o" "gcc" "examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/build.make b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a4f092434ec45a0addf838804a4d12eba6218241 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/speculative/CMakeFiles/llama-speculative.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/speculative/CMakeFiles/llama-speculative.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/speculative/CMakeFiles/llama-speculative.dir/flags.make + +examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o: examples/speculative/CMakeFiles/llama-speculative.dir/flags.make +examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o: ../examples/speculative/speculative.cpp +examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o: examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o -MF CMakeFiles/llama-speculative.dir/speculative.cpp.o.d -o CMakeFiles/llama-speculative.dir/speculative.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp" + +examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-speculative.dir/speculative.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp" > CMakeFiles/llama-speculative.dir/speculative.cpp.i + +examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-speculative.dir/speculative.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp" -o CMakeFiles/llama-speculative.dir/speculative.cpp.s + +# Object files for target llama-speculative +llama__speculative_OBJECTS = \ +"CMakeFiles/llama-speculative.dir/speculative.cpp.o" + +# External object files for target llama-speculative +llama__speculative_EXTERNAL_OBJECTS = + +bin/llama-speculative: examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o +bin/llama-speculative: examples/speculative/CMakeFiles/llama-speculative.dir/build.make +bin/llama-speculative: common/libcommon.a +bin/llama-speculative: src/libllama.so +bin/llama-speculative: ggml/src/libggml.so +bin/llama-speculative: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-speculative: ggml/src/libggml-base.so +bin/llama-speculative: examples/speculative/CMakeFiles/llama-speculative.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-speculative" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-speculative.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/speculative/CMakeFiles/llama-speculative.dir/build: bin/llama-speculative +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/build + +examples/speculative/CMakeFiles/llama-speculative.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative" && $(CMAKE_COMMAND) -P CMakeFiles/llama-speculative.dir/cmake_clean.cmake +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/clean + +examples/speculative/CMakeFiles/llama-speculative.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/depend + diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/cmake_clean.cmake b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a70608c9d5665cbbdc156e196829feeb5f7eb6b3 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-speculative" + "../../bin/llama-speculative.pdb" + "CMakeFiles/llama-speculative.dir/speculative.cpp.o" + "CMakeFiles/llama-speculative.dir/speculative.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-speculative.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.make b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b278ecf539a326c52ac7f7ac09b9e2d8b90b844f --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-speculative. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.ts b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..5453c9a55129cf8f4650a1c9c24e36ce79e8909d --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-speculative. diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/depend.make b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..dabdceb382912c3ea3070ae9ec1e13d2ae2d0bea --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-speculative. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/flags.make b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/link.txt b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..fe84f581d1ee2c11056bd28a6830733ed83115d7 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-speculative.dir/speculative.cpp.o -o ../../bin/llama-speculative -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/progress.make b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..22956c6b950280c248c28bd2c8a3930d805d7034 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 63 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0f6e19d39c905b2ec8b69dcda0c74410d24199f0 Binary files /dev/null and b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o differ diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o.d b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..7a855e8e9ac65262740ce9662a0861d6decacf2e --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o.d @@ -0,0 +1,225 @@ +examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative/speculative.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/random /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h diff --git a/llama.cpp/build/examples/speculative/CMakeFiles/progress.marks b/llama.cpp/build/examples/speculative/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/speculative/CTestTestfile.cmake b/llama.cpp/build/examples/speculative/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..96b9f673b7fbbb44d8fb709ad42e4d77187e9355 --- /dev/null +++ b/llama.cpp/build/examples/speculative/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/speculative/Makefile b/llama.cpp/build/examples/speculative/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..76958e852c62d27fedec9b35ae8dda75c2f0bafe --- /dev/null +++ b/llama.cpp/build/examples/speculative/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/speculative//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/speculative/CMakeFiles/llama-speculative.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/speculative/CMakeFiles/llama-speculative.dir/rule +.PHONY : examples/speculative/CMakeFiles/llama-speculative.dir/rule + +# Convenience name for target. +llama-speculative: examples/speculative/CMakeFiles/llama-speculative.dir/rule +.PHONY : llama-speculative + +# fast build rule for target. +llama-speculative/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/build +.PHONY : llama-speculative/fast + +speculative.o: speculative.cpp.o +.PHONY : speculative.o + +# target to build an object file +speculative.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o +.PHONY : speculative.cpp.o + +speculative.i: speculative.cpp.i +.PHONY : speculative.i + +# target to preprocess a source file +speculative.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.i +.PHONY : speculative.cpp.i + +speculative.s: speculative.cpp.s +.PHONY : speculative.s + +# target to generate assembly for a file +speculative.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/speculative/CMakeFiles/llama-speculative.dir/build.make examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.s +.PHONY : speculative.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-speculative" + @echo "... speculative.o" + @echo "... speculative.i" + @echo "... speculative.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/speculative/cmake_install.cmake b/llama.cpp/build/examples/speculative/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f09efe70599e10cf06b497fbf1ffc5a97293279a --- /dev/null +++ b/llama.cpp/build/examples/speculative/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/speculative + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-speculative") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-speculative") + endif() + endif() +endif() + diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/examples/tokenize/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/DependInfo.cmake b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4a00e06a2fcbdc24d5e1b7a1cd708f7eb07bc38b --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp" "examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o" "gcc" "examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..4c3220b5fddc1f7e05a39606cf211ea497269095 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include examples/tokenize/CMakeFiles/llama-tokenize.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.make + +# Include the progress variables for this target. +include examples/tokenize/CMakeFiles/llama-tokenize.dir/progress.make + +# Include the compile flags for this target's objects. +include examples/tokenize/CMakeFiles/llama-tokenize.dir/flags.make + +examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o: examples/tokenize/CMakeFiles/llama-tokenize.dir/flags.make +examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o: ../examples/tokenize/tokenize.cpp +examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o: examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o -MF CMakeFiles/llama-tokenize.dir/tokenize.cpp.o.d -o CMakeFiles/llama-tokenize.dir/tokenize.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp" + +examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-tokenize.dir/tokenize.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp" > CMakeFiles/llama-tokenize.dir/tokenize.cpp.i + +examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-tokenize.dir/tokenize.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp" -o CMakeFiles/llama-tokenize.dir/tokenize.cpp.s + +# Object files for target llama-tokenize +llama__tokenize_OBJECTS = \ +"CMakeFiles/llama-tokenize.dir/tokenize.cpp.o" + +# External object files for target llama-tokenize +llama__tokenize_EXTERNAL_OBJECTS = + +bin/llama-tokenize: examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o +bin/llama-tokenize: examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make +bin/llama-tokenize: common/libcommon.a +bin/llama-tokenize: src/libllama.so +bin/llama-tokenize: ggml/src/libggml.so +bin/llama-tokenize: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-tokenize: ggml/src/libggml-base.so +bin/llama-tokenize: examples/tokenize/CMakeFiles/llama-tokenize.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-tokenize" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-tokenize.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +examples/tokenize/CMakeFiles/llama-tokenize.dir/build: bin/llama-tokenize +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/build + +examples/tokenize/CMakeFiles/llama-tokenize.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize" && $(CMAKE_COMMAND) -P CMakeFiles/llama-tokenize.dir/cmake_clean.cmake +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/clean + +examples/tokenize/CMakeFiles/llama-tokenize.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/depend + diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/cmake_clean.cmake b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6e616eb39b560890f9614cb69d0528b40f0090d2 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-tokenize" + "../../bin/llama-tokenize.pdb" + "CMakeFiles/llama-tokenize.dir/tokenize.cpp.o" + "CMakeFiles/llama-tokenize.dir/tokenize.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-tokenize.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.make b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..aa8333636a5e5c833ac1858e6443b47209682df1 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-tokenize. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.ts b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2123eea08dff5b7f7a31209d5a92d1e686260675 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-tokenize. diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/depend.make b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..aaa6e2aa73ff8ceaa4674d6ca93f555f041e7d60 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-tokenize. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/flags.make b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..83bda035c4c442a9dce43106339c6bf6e75190b6 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/link.txt b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..532db9b550ad3d5cc54f1822be3caebee9a525a2 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-tokenize.dir/tokenize.cpp.o -o ../../bin/llama-tokenize -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/progress.make b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..bc83bfb36144955bfa2a64375e380e546e9c90d5 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 65 +CMAKE_PROGRESS_2 = + diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..310b0892303dd86de51cedd6a4129e7c4eadbd63 Binary files /dev/null and b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o differ diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o.d b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..8faefa0e6eeb91ad040c8c6fcab0bfee4c4215d6 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o.d @@ -0,0 +1,175 @@ +examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize/tokenize.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/fstream /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/iostream diff --git a/llama.cpp/build/examples/tokenize/CMakeFiles/progress.marks b/llama.cpp/build/examples/tokenize/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..aabe6ec3909c9d4871f8f89ef88ca3b6795ebd29 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CMakeFiles/progress.marks @@ -0,0 +1 @@ +21 diff --git a/llama.cpp/build/examples/tokenize/CTestTestfile.cmake b/llama.cpp/build/examples/tokenize/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..68c6288adb4e69d67b3278c9e450c41bcace8dcf --- /dev/null +++ b/llama.cpp/build/examples/tokenize/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/examples/tokenize/Makefile b/llama.cpp/build/examples/tokenize/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..8afaac9895d60ac3d73afcb33aee2821286fe111 --- /dev/null +++ b/llama.cpp/build/examples/tokenize/Makefile @@ -0,0 +1,242 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/examples/tokenize//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/tokenize/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/tokenize/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/tokenize/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/tokenize/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +examples/tokenize/CMakeFiles/llama-tokenize.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 examples/tokenize/CMakeFiles/llama-tokenize.dir/rule +.PHONY : examples/tokenize/CMakeFiles/llama-tokenize.dir/rule + +# Convenience name for target. +llama-tokenize: examples/tokenize/CMakeFiles/llama-tokenize.dir/rule +.PHONY : llama-tokenize + +# fast build rule for target. +llama-tokenize/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/build +.PHONY : llama-tokenize/fast + +tokenize.o: tokenize.cpp.o +.PHONY : tokenize.o + +# target to build an object file +tokenize.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o +.PHONY : tokenize.cpp.o + +tokenize.i: tokenize.cpp.i +.PHONY : tokenize.i + +# target to preprocess a source file +tokenize.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.i +.PHONY : tokenize.cpp.i + +tokenize.s: tokenize.cpp.s +.PHONY : tokenize.s + +# target to generate assembly for a file +tokenize.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f examples/tokenize/CMakeFiles/llama-tokenize.dir/build.make examples/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.s +.PHONY : tokenize.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-tokenize" + @echo "... tokenize.o" + @echo "... tokenize.i" + @echo "... tokenize.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/examples/tokenize/cmake_install.cmake b/llama.cpp/build/examples/tokenize/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a30a981d7a7853b20933926c170a83888c6c718c --- /dev/null +++ b/llama.cpp/build/examples/tokenize/cmake_install.cmake @@ -0,0 +1,64 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/examples/tokenize + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/llama-tokenize") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/llama-tokenize") + endif() + endif() +endif() + diff --git a/llama.cpp/build/ggml/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/ggml/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/ggml/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/ggml/CMakeFiles/progress.marks b/llama.cpp/build/ggml/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..f599e28b8ab0d8c9c57a486c89c4a5132dcbd3b2 --- /dev/null +++ b/llama.cpp/build/ggml/CMakeFiles/progress.marks @@ -0,0 +1 @@ +10 diff --git a/llama.cpp/build/ggml/Makefile b/llama.cpp/build/ggml/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..da0f7c088dbd71085ef8265dda8bda145ecca22a --- /dev/null +++ b/llama.cpp/build/ggml/Makefile @@ -0,0 +1,200 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/ggml/cmake_install.cmake b/llama.cpp/build/ggml/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d0a355c2db25a0a702e30da5c95141fdaa37218c --- /dev/null +++ b/llama.cpp/build/ggml/cmake_install.cmake @@ -0,0 +1,109 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/cmake_install.cmake") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/libggml.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include" TYPE FILE FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-cpu.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-alloc.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-backend.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-blas.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-cann.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-cuda.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-kompute.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-opt.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-metal.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-rpc.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-sycl.h" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/include/ggml-vulkan.h" + ) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-base.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-base.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-base.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/libggml-base.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-base.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-base.so") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-base.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/ggml/src/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..63e56cbf0541a9f0b51f32f718cde2e901f747e4 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c" "ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c" "ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c" "ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c" "ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp" "ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp" "ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp" "ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o" "gcc" "ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/build.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..8ede985358d828e287da97bfa6f64fdc7539e7d3 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/build.make @@ -0,0 +1,206 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include ggml/src/CMakeFiles/ggml-base.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.make + +# Include the progress variables for this target. +include ggml/src/CMakeFiles/ggml-base.dir/progress.make + +# Include the compile flags for this target's objects. +include ggml/src/CMakeFiles/ggml-base.dir/flags.make + +ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o: ../ggml/src/ggml.c +ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o -MF CMakeFiles/ggml-base.dir/ggml.c.o.d -o CMakeFiles/ggml-base.dir/ggml.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c" + +ggml/src/CMakeFiles/ggml-base.dir/ggml.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-base.dir/ggml.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c" > CMakeFiles/ggml-base.dir/ggml.c.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-base.dir/ggml.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c" -o CMakeFiles/ggml-base.dir/ggml.c.s + +ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o: ../ggml/src/ggml-alloc.c +ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o -MF CMakeFiles/ggml-base.dir/ggml-alloc.c.o.d -o CMakeFiles/ggml-base.dir/ggml-alloc.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c" + +ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-base.dir/ggml-alloc.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c" > CMakeFiles/ggml-base.dir/ggml-alloc.c.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-base.dir/ggml-alloc.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c" -o CMakeFiles/ggml-base.dir/ggml-alloc.c.s + +ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o: ../ggml/src/ggml-backend.cpp +ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o -MF CMakeFiles/ggml-base.dir/ggml-backend.cpp.o.d -o CMakeFiles/ggml-base.dir/ggml-backend.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp" + +ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-base.dir/ggml-backend.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp" > CMakeFiles/ggml-base.dir/ggml-backend.cpp.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-base.dir/ggml-backend.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp" -o CMakeFiles/ggml-base.dir/ggml-backend.cpp.s + +ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o: ../ggml/src/ggml-opt.cpp +ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o -MF CMakeFiles/ggml-base.dir/ggml-opt.cpp.o.d -o CMakeFiles/ggml-base.dir/ggml-opt.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp" + +ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-base.dir/ggml-opt.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp" > CMakeFiles/ggml-base.dir/ggml-opt.cpp.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-base.dir/ggml-opt.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp" -o CMakeFiles/ggml-base.dir/ggml-opt.cpp.s + +ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o: ../ggml/src/ggml-threading.cpp +ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o -MF CMakeFiles/ggml-base.dir/ggml-threading.cpp.o.d -o CMakeFiles/ggml-base.dir/ggml-threading.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp" + +ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-base.dir/ggml-threading.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp" > CMakeFiles/ggml-base.dir/ggml-threading.cpp.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-base.dir/ggml-threading.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp" -o CMakeFiles/ggml-base.dir/ggml-threading.cpp.s + +ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o: ../ggml/src/ggml-quants.c +ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_6) "Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o -MF CMakeFiles/ggml-base.dir/ggml-quants.c.o.d -o CMakeFiles/ggml-base.dir/ggml-quants.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c" + +ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-base.dir/ggml-quants.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c" > CMakeFiles/ggml-base.dir/ggml-quants.c.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-base.dir/ggml-quants.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c" -o CMakeFiles/ggml-base.dir/ggml-quants.c.s + +ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o: ggml/src/CMakeFiles/ggml-base.dir/flags.make +ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o: ../ggml/src/ggml-aarch64.c +ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o: ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_7) "Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o -MF CMakeFiles/ggml-base.dir/ggml-aarch64.c.o.d -o CMakeFiles/ggml-base.dir/ggml-aarch64.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c" + +ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-base.dir/ggml-aarch64.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c" > CMakeFiles/ggml-base.dir/ggml-aarch64.c.i + +ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-base.dir/ggml-aarch64.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c" -o CMakeFiles/ggml-base.dir/ggml-aarch64.c.s + +# Object files for target ggml-base +ggml__base_OBJECTS = \ +"CMakeFiles/ggml-base.dir/ggml.c.o" \ +"CMakeFiles/ggml-base.dir/ggml-alloc.c.o" \ +"CMakeFiles/ggml-base.dir/ggml-backend.cpp.o" \ +"CMakeFiles/ggml-base.dir/ggml-opt.cpp.o" \ +"CMakeFiles/ggml-base.dir/ggml-threading.cpp.o" \ +"CMakeFiles/ggml-base.dir/ggml-quants.c.o" \ +"CMakeFiles/ggml-base.dir/ggml-aarch64.c.o" + +# External object files for target ggml-base +ggml__base_EXTERNAL_OBJECTS = + +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/build.make +ggml/src/libggml-base.so: ggml/src/CMakeFiles/ggml-base.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_8) "Linking CXX shared library libggml-base.so" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/ggml-base.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +ggml/src/CMakeFiles/ggml-base.dir/build: ggml/src/libggml-base.so +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/build + +ggml/src/CMakeFiles/ggml-base.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && $(CMAKE_COMMAND) -P CMakeFiles/ggml-base.dir/cmake_clean.cmake +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/clean + +ggml/src/CMakeFiles/ggml-base.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/depend + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/cmake_clean.cmake b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a442c25454b1e59163182c267c02a4e9e407cd3b --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/cmake_clean.cmake @@ -0,0 +1,23 @@ +file(REMOVE_RECURSE + "CMakeFiles/ggml-base.dir/ggml-aarch64.c.o" + "CMakeFiles/ggml-base.dir/ggml-aarch64.c.o.d" + "CMakeFiles/ggml-base.dir/ggml-alloc.c.o" + "CMakeFiles/ggml-base.dir/ggml-alloc.c.o.d" + "CMakeFiles/ggml-base.dir/ggml-backend.cpp.o" + "CMakeFiles/ggml-base.dir/ggml-backend.cpp.o.d" + "CMakeFiles/ggml-base.dir/ggml-opt.cpp.o" + "CMakeFiles/ggml-base.dir/ggml-opt.cpp.o.d" + "CMakeFiles/ggml-base.dir/ggml-quants.c.o" + "CMakeFiles/ggml-base.dir/ggml-quants.c.o.d" + "CMakeFiles/ggml-base.dir/ggml-threading.cpp.o" + "CMakeFiles/ggml-base.dir/ggml-threading.cpp.o.d" + "CMakeFiles/ggml-base.dir/ggml.c.o" + "CMakeFiles/ggml-base.dir/ggml.c.o.d" + "libggml-base.pdb" + "libggml-base.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C CXX) + include(CMakeFiles/ggml-base.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b85b84f1daf785c7aab559339ca74b6090e6c7a9 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for ggml-base. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a41dd699b94fdc52f53a7efadf6baa289b7fa8e3 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for ggml-base. diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/depend.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..650ab1c8c352319761fa04121496e02835c8bb8b --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for ggml-base. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/flags.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..f9fe1452ed77d97fb7f57f93327d575b6b0d2024 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/flags.make @@ -0,0 +1,17 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +# compile CXX with /usr/bin/c++ +C_DEFINES = -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +C_FLAGS = -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -std=gnu11 + +CXX_DEFINES = -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_base_EXPORTS + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -std=gnu++17 + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o new file mode 100644 index 0000000000000000000000000000000000000000..bd620b6e1ba911d491f77bf1ef9f9405d88f59b5 Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ea6eecb268b5c17912ad7bc966f9c6d72ad9788d --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o.d @@ -0,0 +1,80 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o new file mode 100644 index 0000000000000000000000000000000000000000..feea607c05710575ef9c84405357f6a8ad3d74b5 Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..0cf15c563610dae7f366ae8875c66ee09cac18cf --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o.d @@ -0,0 +1,89 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-alloc.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..2cca703f67ce5749bbf1350f4b44037a550cbc1c Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6da920f68caa93f0238377ed9dbcb37f00264f85 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o.d @@ -0,0 +1,179 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5d5ec21cac2f8e30f354440baa133332a8442f8f Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..88f35b1bf3c86ab7cc12388fee80766a3649c712 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o.d @@ -0,0 +1,198 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-opt.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-opt.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/initializer_list /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/random \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c146dce46cccaf9c1199f0c1efb33d1875b70a21 Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..b65d14f2b275cde94888fb391044e1dfa45d7c47 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o.d @@ -0,0 +1,168 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..da521f42a8de4188d6f050e85c1c47144206d389 Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..15f352aaacce6802b6a2161efabcdd2461540700 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o.d @@ -0,0 +1,149 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.h \ + /usr/include/c++/11/mutex /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/array /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime /usr/include/time.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/iosfwd /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o new file mode 100644 index 0000000000000000000000000000000000000000..6e2c4d54d02f11b6d50a8b348640234ab25088a5 Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ad745445c24527591f5ba0447b647ddf4653ae25 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o.d @@ -0,0 +1,150 @@ +ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-threading.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-aarch64.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/inttypes.h /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h /usr/include/syscall.h \ + /usr/include/x86_64-linux-gnu/sys/syscall.h \ + /usr/include/x86_64-linux-gnu/asm/unistd.h \ + /usr/include/x86_64-linux-gnu/asm/unistd_64.h \ + /usr/include/x86_64-linux-gnu/bits/syscall.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h \ + /usr/include/x86_64-linux-gnu/sys/wait.h /usr/include/execinfo.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/link.txt b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..f94b04d9ee5203f492c17db0ee26a9cf8346bcee --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libggml-base.so -o libggml-base.so CMakeFiles/ggml-base.dir/ggml.c.o CMakeFiles/ggml-base.dir/ggml-alloc.c.o CMakeFiles/ggml-base.dir/ggml-backend.cpp.o CMakeFiles/ggml-base.dir/ggml-opt.cpp.o CMakeFiles/ggml-base.dir/ggml-threading.cpp.o CMakeFiles/ggml-base.dir/ggml-quants.c.o CMakeFiles/ggml-base.dir/ggml-aarch64.c.o -lm diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/progress.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..4fc344f63e0dde19932da557556e31ca595a5d57 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/progress.make @@ -0,0 +1,9 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 8 +CMAKE_PROGRESS_3 = +CMAKE_PROGRESS_4 = 9 +CMAKE_PROGRESS_5 = +CMAKE_PROGRESS_6 = 10 +CMAKE_PROGRESS_7 = +CMAKE_PROGRESS_8 = 11 + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5b1a5fe611a68863db521e37dfc4c3a92d678619 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake @@ -0,0 +1,21 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp" "ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o" "gcc" "ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/build.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e0f38c738f367f18ed8f5d4902a3d2df7867de6f --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/build.make @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include ggml/src/CMakeFiles/ggml.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include ggml/src/CMakeFiles/ggml.dir/compiler_depend.make + +# Include the progress variables for this target. +include ggml/src/CMakeFiles/ggml.dir/progress.make + +# Include the compile flags for this target's objects. +include ggml/src/CMakeFiles/ggml.dir/flags.make + +ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o: ggml/src/CMakeFiles/ggml.dir/flags.make +ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o: ../ggml/src/ggml-backend-reg.cpp +ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o: ggml/src/CMakeFiles/ggml.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o -MF CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o.d -o CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp" + +ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml.dir/ggml-backend-reg.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp" > CMakeFiles/ggml.dir/ggml-backend-reg.cpp.i + +ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml.dir/ggml-backend-reg.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp" -o CMakeFiles/ggml.dir/ggml-backend-reg.cpp.s + +# Object files for target ggml +ggml_OBJECTS = \ +"CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o" + +# External object files for target ggml +ggml_EXTERNAL_OBJECTS = + +ggml/src/libggml.so: ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o +ggml/src/libggml.so: ggml/src/CMakeFiles/ggml.dir/build.make +ggml/src/libggml.so: ggml/src/ggml-cpu/libggml-cpu.so +ggml/src/libggml.so: ggml/src/libggml-base.so +ggml/src/libggml.so: ggml/src/CMakeFiles/ggml.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX shared library libggml.so" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/ggml.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +ggml/src/CMakeFiles/ggml.dir/build: ggml/src/libggml.so +.PHONY : ggml/src/CMakeFiles/ggml.dir/build + +ggml/src/CMakeFiles/ggml.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" && $(CMAKE_COMMAND) -P CMakeFiles/ggml.dir/cmake_clean.cmake +.PHONY : ggml/src/CMakeFiles/ggml.dir/clean + +ggml/src/CMakeFiles/ggml.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : ggml/src/CMakeFiles/ggml.dir/depend + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/cmake_clean.cmake b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..2512be195332080ee62175970aa725f938d1a5b0 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o" + "CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o.d" + "libggml.pdb" + "libggml.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/ggml.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/compiler_depend.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..90528ff6e5b22aafb6d7df2e80f4f834d50b1afc --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for ggml. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/compiler_depend.ts b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..bb930fb76631fd087455dc02a911d5a145975d38 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for ggml. diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/depend.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..72db64cf771088bf42502273619c67d3cd65da67 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for ggml. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/flags.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..18c173fb72bf860c2b884e81bc4ab204ec80f253 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_BUILD -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_EXPORTS + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -std=gnu++17 + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..15a295686f088687fd84e685aa765093764b2767 Binary files /dev/null and b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o differ diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o.d b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..595b93243627c45f9a5f837db0c3ed4e1cf8c33a --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o.d @@ -0,0 +1,247 @@ +ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-reg.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-backend-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-impl.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/initializer_list /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/bits/codecvt.h /usr/include/c++/11/cstring \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/ios_base.h /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/iomanip \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/dlfcn.h \ + /usr/include/x86_64-linux-gnu/bits/dlfcn.h \ + /usr/include/x86_64-linux-gnu/bits/dl_find_object.h \ + /usr/include/unistd.h /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/link.txt b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..da0d5f9e9ac3ca729a91b69aafd527ff6b6523e9 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libggml.so -o libggml.so CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:" -ldl ggml-cpu/libggml-cpu.so libggml-base.so diff --git a/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/progress.make b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..d286f2529de90f7d773aaa63d6c7e64f776dba37 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 7 + diff --git a/llama.cpp/build/ggml/src/CMakeFiles/progress.marks b/llama.cpp/build/ggml/src/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..f599e28b8ab0d8c9c57a486c89c4a5132dcbd3b2 --- /dev/null +++ b/llama.cpp/build/ggml/src/CMakeFiles/progress.marks @@ -0,0 +1 @@ +10 diff --git a/llama.cpp/build/ggml/src/Makefile b/llama.cpp/build/ggml/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..371054348e5f643cf89ace8a113585563f3c4084 --- /dev/null +++ b/llama.cpp/build/ggml/src/Makefile @@ -0,0 +1,446 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +ggml/src/CMakeFiles/ggml-base.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/CMakeFiles/ggml-base.dir/rule +.PHONY : ggml/src/CMakeFiles/ggml-base.dir/rule + +# Convenience name for target. +ggml-base: ggml/src/CMakeFiles/ggml-base.dir/rule +.PHONY : ggml-base + +# fast build rule for target. +ggml-base/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/build +.PHONY : ggml-base/fast + +# Convenience name for target. +ggml/src/CMakeFiles/ggml.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/CMakeFiles/ggml.dir/rule +.PHONY : ggml/src/CMakeFiles/ggml.dir/rule + +# Convenience name for target. +ggml: ggml/src/CMakeFiles/ggml.dir/rule +.PHONY : ggml + +# fast build rule for target. +ggml/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/build +.PHONY : ggml/fast + +ggml-aarch64.o: ggml-aarch64.c.o +.PHONY : ggml-aarch64.o + +# target to build an object file +ggml-aarch64.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.o +.PHONY : ggml-aarch64.c.o + +ggml-aarch64.i: ggml-aarch64.c.i +.PHONY : ggml-aarch64.i + +# target to preprocess a source file +ggml-aarch64.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.i +.PHONY : ggml-aarch64.c.i + +ggml-aarch64.s: ggml-aarch64.c.s +.PHONY : ggml-aarch64.s + +# target to generate assembly for a file +ggml-aarch64.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-aarch64.c.s +.PHONY : ggml-aarch64.c.s + +ggml-alloc.o: ggml-alloc.c.o +.PHONY : ggml-alloc.o + +# target to build an object file +ggml-alloc.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o +.PHONY : ggml-alloc.c.o + +ggml-alloc.i: ggml-alloc.c.i +.PHONY : ggml-alloc.i + +# target to preprocess a source file +ggml-alloc.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.i +.PHONY : ggml-alloc.c.i + +ggml-alloc.s: ggml-alloc.c.s +.PHONY : ggml-alloc.s + +# target to generate assembly for a file +ggml-alloc.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.s +.PHONY : ggml-alloc.c.s + +ggml-backend-reg.o: ggml-backend-reg.cpp.o +.PHONY : ggml-backend-reg.o + +# target to build an object file +ggml-backend-reg.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o +.PHONY : ggml-backend-reg.cpp.o + +ggml-backend-reg.i: ggml-backend-reg.cpp.i +.PHONY : ggml-backend-reg.i + +# target to preprocess a source file +ggml-backend-reg.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.i +.PHONY : ggml-backend-reg.cpp.i + +ggml-backend-reg.s: ggml-backend-reg.cpp.s +.PHONY : ggml-backend-reg.s + +# target to generate assembly for a file +ggml-backend-reg.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml.dir/build.make ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.s +.PHONY : ggml-backend-reg.cpp.s + +ggml-backend.o: ggml-backend.cpp.o +.PHONY : ggml-backend.o + +# target to build an object file +ggml-backend.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o +.PHONY : ggml-backend.cpp.o + +ggml-backend.i: ggml-backend.cpp.i +.PHONY : ggml-backend.i + +# target to preprocess a source file +ggml-backend.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.i +.PHONY : ggml-backend.cpp.i + +ggml-backend.s: ggml-backend.cpp.s +.PHONY : ggml-backend.s + +# target to generate assembly for a file +ggml-backend.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.s +.PHONY : ggml-backend.cpp.s + +ggml-opt.o: ggml-opt.cpp.o +.PHONY : ggml-opt.o + +# target to build an object file +ggml-opt.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o +.PHONY : ggml-opt.cpp.o + +ggml-opt.i: ggml-opt.cpp.i +.PHONY : ggml-opt.i + +# target to preprocess a source file +ggml-opt.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.i +.PHONY : ggml-opt.cpp.i + +ggml-opt.s: ggml-opt.cpp.s +.PHONY : ggml-opt.s + +# target to generate assembly for a file +ggml-opt.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.s +.PHONY : ggml-opt.cpp.s + +ggml-quants.o: ggml-quants.c.o +.PHONY : ggml-quants.o + +# target to build an object file +ggml-quants.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o +.PHONY : ggml-quants.c.o + +ggml-quants.i: ggml-quants.c.i +.PHONY : ggml-quants.i + +# target to preprocess a source file +ggml-quants.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.i +.PHONY : ggml-quants.c.i + +ggml-quants.s: ggml-quants.c.s +.PHONY : ggml-quants.s + +# target to generate assembly for a file +ggml-quants.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.s +.PHONY : ggml-quants.c.s + +ggml-threading.o: ggml-threading.cpp.o +.PHONY : ggml-threading.o + +# target to build an object file +ggml-threading.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o +.PHONY : ggml-threading.cpp.o + +ggml-threading.i: ggml-threading.cpp.i +.PHONY : ggml-threading.i + +# target to preprocess a source file +ggml-threading.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.i +.PHONY : ggml-threading.cpp.i + +ggml-threading.s: ggml-threading.cpp.s +.PHONY : ggml-threading.s + +# target to generate assembly for a file +ggml-threading.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.s +.PHONY : ggml-threading.cpp.s + +ggml.o: ggml.c.o +.PHONY : ggml.o + +# target to build an object file +ggml.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o +.PHONY : ggml.c.o + +ggml.i: ggml.c.i +.PHONY : ggml.i + +# target to preprocess a source file +ggml.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml.c.i +.PHONY : ggml.c.i + +ggml.s: ggml.c.s +.PHONY : ggml.s + +# target to generate assembly for a file +ggml.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/CMakeFiles/ggml-base.dir/build.make ggml/src/CMakeFiles/ggml-base.dir/ggml.c.s +.PHONY : ggml.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... ggml" + @echo "... ggml-base" + @echo "... ggml-aarch64.o" + @echo "... ggml-aarch64.i" + @echo "... ggml-aarch64.s" + @echo "... ggml-alloc.o" + @echo "... ggml-alloc.i" + @echo "... ggml-alloc.s" + @echo "... ggml-backend-reg.o" + @echo "... ggml-backend-reg.i" + @echo "... ggml-backend-reg.s" + @echo "... ggml-backend.o" + @echo "... ggml-backend.i" + @echo "... ggml-backend.s" + @echo "... ggml-opt.o" + @echo "... ggml-opt.i" + @echo "... ggml-opt.s" + @echo "... ggml-quants.o" + @echo "... ggml-quants.i" + @echo "... ggml-quants.s" + @echo "... ggml-threading.o" + @echo "... ggml-threading.i" + @echo "... ggml-threading.s" + @echo "... ggml.o" + @echo "... ggml.i" + @echo "... ggml.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/ggml/src/cmake_install.cmake b/llama.cpp/build/ggml/src/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..efbb8b2d76349dafe3f4e6ae9f64cb9173e9f267 --- /dev/null +++ b/llama.cpp/build/ggml/src/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/cmake_install.cmake") +endif() + diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3d6f0ef97611d5feb479d6ca1d56c24650689e0f --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake @@ -0,0 +1,27 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o" "gcc" "ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..979e6e5170282572cae9c54f54710ffe25c23fd3 Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6b2a59e023e0bb5b1494107ce6901a87469024f8 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o.d @@ -0,0 +1,288 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/./ggml-cpu-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/common.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/initializer_list /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/concurrence.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/omp.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-backend-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /usr/include/x86_64-linux-gnu/sys/syscall.h \ + /usr/include/x86_64-linux-gnu/asm/unistd.h \ + /usr/include/x86_64-linux-gnu/asm/unistd_64.h \ + /usr/include/x86_64-linux-gnu/bits/syscall.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h /usr/include/c++/11/cstring diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..6510b597060026b62762fe60fe5fc34612765223 Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..415399c680c095f603949d2149bd364a40f78d5b --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o.d @@ -0,0 +1,290 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/./ggml-cpu-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/common.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/initializer_list /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/concurrence.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/omp.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/./ggml-cpu-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /usr/include/x86_64-linux-gnu/sys/syscall.h \ + /usr/include/x86_64-linux-gnu/asm/unistd.h \ + /usr/include/x86_64-linux-gnu/asm/unistd_64.h \ + /usr/include/x86_64-linux-gnu/bits/syscall.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..2158eed40273125be95f91c2800547603f3b6651 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make @@ -0,0 +1,225 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.make + +# Include the progress variables for this target. +include ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/progress.make + +# Include the compile flags for this target's objects. +include ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o: ../ggml/src/ggml-cpu/ggml-cpu.c +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building C object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o -MF CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o.d -o CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-cpu.dir/ggml-cpu.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c" > CMakeFiles/ggml-cpu.dir/ggml-cpu.c.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-cpu.dir/ggml-cpu.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c" -o CMakeFiles/ggml-cpu.dir/ggml-cpu.c.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o: ../ggml/src/ggml-cpu/ggml-cpu.cpp +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o -MF CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o.d -o CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp" > CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp" -o CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o: ../ggml/src/ggml-cpu/ggml-cpu-aarch64.c +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Building C object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o -MF CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o.d -o CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c" > CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c" -o CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o: ../ggml/src/ggml-cpu/ggml-cpu-quants.c +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_4) "Building C object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o -MF CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o.d -o CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c" > CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c" -o CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o: ../ggml/src/ggml-cpu/amx/amx.cpp +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o -MF CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o.d -o CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-cpu.dir/amx/amx.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp" > CMakeFiles/ggml-cpu.dir/amx/amx.cpp.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-cpu.dir/amx/amx.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.cpp" -o CMakeFiles/ggml-cpu.dir/amx/amx.cpp.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o: ../ggml/src/ggml-cpu/amx/mmq.cpp +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o -MF CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o.d -o CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp" > CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/mmq.cpp" -o CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o: ../ggml/src/ggml-cpu/llamafile/sgemm.cpp +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o -MF CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o.d -o CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp" > CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -march=native -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp" -o CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.s + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o: ../ggml/src/ggml-cpu/cpu-feats-x86.cpp +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o -MF CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o.d -o CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp" + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp" > CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.i + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp" -o CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.s + +# Object files for target ggml-cpu +ggml__cpu_OBJECTS = \ +"CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o" \ +"CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o" \ +"CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o" \ +"CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o" \ +"CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o" \ +"CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o" \ +"CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o" \ +"CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o" + +# External object files for target ggml-cpu +ggml__cpu_EXTERNAL_OBJECTS = + +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/libggml-base.so +ggml/src/ggml-cpu/libggml-cpu.so: /usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so +ggml/src/ggml-cpu/libggml-cpu.so: /usr/lib/x86_64-linux-gnu/libpthread.a +ggml/src/ggml-cpu/libggml-cpu.so: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX shared library libggml-cpu.so" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/ggml-cpu.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build: ggml/src/ggml-cpu/libggml-cpu.so +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" && $(CMAKE_COMMAND) -P CMakeFiles/ggml-cpu.dir/cmake_clean.cmake +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/clean + +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend + diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cmake_clean.cmake b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..bb66fbffc5b6ea36b888000df80e1fb6ddb239c2 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cmake_clean.cmake @@ -0,0 +1,25 @@ +file(REMOVE_RECURSE + "CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o" + "CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o.d" + "CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o" + "CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o.d" + "CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o" + "CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o.d" + "CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o" + "CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o.d" + "CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o" + "CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o.d" + "CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o" + "CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o.d" + "CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o" + "CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o.d" + "CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o" + "CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o.d" + "libggml-cpu.pdb" + "libggml-cpu.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C CXX) + include(CMakeFiles/ggml-cpu.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.make b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c66607b1cbc813ec8066a854300164b96cf0caac --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for ggml-cpu. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..d2eb8267bfde1d4f9db6281111744f766bc45c3d --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for ggml-cpu. diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ffedf89ec93ffd268c9bd35a87b8e75bb6b0e885 Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..93ed734039f1051138b96d33ce0243d8c502c193 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o.d @@ -0,0 +1,149 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-backend-impl.h \ + /usr/include/c++/11/cstring \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/string.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/vector /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/stl_construct.h \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/bitset \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/array \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend.make b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ec4e32800c84e15fd0c4f268ab3bd20575139ec6 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for ggml-cpu. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..c6e092c4066c95f21e994f3d188c4d9e2c366766 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/flags.make @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +# compile CXX with /usr/bin/c++ +C_DEFINES = -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +C_FLAGS = -O3 -DNDEBUG -fPIC -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -Werror=implicit-int -Werror=implicit-function-declaration -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wdouble-promotion -fopenmp -std=gnu11 + +CXX_DEFINES = -DGGML_BACKEND_BUILD -DGGML_BACKEND_SHARED -DGGML_SCHED_MAX_COPIES=4 -DGGML_SHARED -DGGML_USE_CPU_AARCH64 -DGGML_USE_LLAMAFILE -DGGML_USE_OPENMP -D_GNU_SOURCE -D_XOPEN_SOURCE=600 -Dggml_cpu_EXPORTS + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/.." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -fopenmp -std=gnu++17 + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o_DEFINES = + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o_DEFINES = + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o_DEFINES = + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o_DEFINES = + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o_DEFINES = + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o_DEFINES = + +# Custom options: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o_OPTIONS = -march=native + +# Custom defines: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o_DEFINES = + diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o new file mode 100644 index 0000000000000000000000000000000000000000..68fc829eaee14907f37a7fb11b7170f61095420b Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..1327cdb0d4be3722f5b92048812a6d080c1e3bf8 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o.d @@ -0,0 +1,170 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-cpu/ggml-cpu-impl.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o new file mode 100644 index 0000000000000000000000000000000000000000..c2ff68b803d0fabd144140469d75cf66c53c3f1f Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6b76fad056f9e5944befaf3f47014f8d3028deb3 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o.d @@ -0,0 +1,170 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o new file mode 100644 index 0000000000000000000000000000000000000000..8a9450967619abcfce42b868d3949ccaed00d317 Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..faa1237746f7e3d527cc5b000383b61f8e6a636d --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o.d @@ -0,0 +1,248 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-backend-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /usr/include/assert.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-threading.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.h \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/inttypes.h /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/signal.h \ + /usr/include/x86_64-linux-gnu/bits/signum-generic.h \ + /usr/include/x86_64-linux-gnu/bits/signum-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-arch.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts.h \ + /usr/include/x86_64-linux-gnu/bits/siginfo-consts-arch.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigval_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h \ + /usr/include/x86_64-linux-gnu/bits/sigevent-consts.h \ + /usr/include/x86_64-linux-gnu/bits/sigaction.h \ + /usr/include/x86_64-linux-gnu/bits/sigcontext.h \ + /usr/include/x86_64-linux-gnu/bits/types/stack_t.h \ + /usr/include/x86_64-linux-gnu/sys/ucontext.h \ + /usr/include/x86_64-linux-gnu/bits/sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigstksz.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/bits/ss_flags.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h \ + /usr/include/x86_64-linux-gnu/bits/sigthread.h \ + /usr/include/x86_64-linux-gnu/bits/signal_ext.h /usr/include/syscall.h \ + /usr/include/x86_64-linux-gnu/sys/syscall.h \ + /usr/include/x86_64-linux-gnu/asm/unistd.h \ + /usr/include/x86_64-linux-gnu/asm/unistd_64.h \ + /usr/include/x86_64-linux-gnu/bits/syscall.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/omp.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdatomic.h \ + /usr/include/x86_64-linux-gnu/sys/stat.h \ + /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/statx.h /usr/include/linux/stat.h \ + /usr/include/linux/types.h /usr/include/x86_64-linux-gnu/asm/types.h \ + /usr/include/asm-generic/types.h /usr/include/asm-generic/int-ll64.h \ + /usr/include/x86_64-linux-gnu/asm/bitsperlong.h \ + /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \ + /usr/include/linux/stddef.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types.h \ + /usr/include/x86_64-linux-gnu/asm/posix_types_64.h \ + /usr/include/asm-generic/posix_types.h \ + /usr/include/x86_64-linux-gnu/bits/statx-generic.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx_timestamp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_statx.h diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..49ffe70d579f72871daf1495940f34cd3f0fb63c Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a1453120e36b5888e53841ed92c9caa94880c445 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o.d @@ -0,0 +1,259 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-backend-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/amx/amx.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/./ggml-cpu-impl.h \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/link.txt b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..3acc14857c34df5ef20a0c796e391222f587714c --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libggml-cpu.so -o libggml-cpu.so CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:" ../libggml-base.so /usr/lib/gcc/x86_64-linux-gnu/11/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.a diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..51c3ff00591c916c906ceb743996a1de086acb4a Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o differ diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o.d b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4ede167d8d04d9a3aaf08d5a087b5d209924fe64 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o.d @@ -0,0 +1,198 @@ +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/assert.h \ + /usr/include/c++/11/math.h /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/stdlib.h \ + /usr/include/c++/11/cstdlib /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/./ggml-cpu-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-quants.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu/../ggml-common.h diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/progress.make b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..61309718daff565734791dbb297511d6676e215d --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/progress.make @@ -0,0 +1,10 @@ +CMAKE_PROGRESS_1 = 12 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 13 +CMAKE_PROGRESS_4 = +CMAKE_PROGRESS_5 = 14 +CMAKE_PROGRESS_6 = +CMAKE_PROGRESS_7 = 15 +CMAKE_PROGRESS_8 = +CMAKE_PROGRESS_9 = 16 + diff --git a/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/progress.marks b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..ec635144f60048986bc560c5576355344005e6e7 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/progress.marks @@ -0,0 +1 @@ +9 diff --git a/llama.cpp/build/ggml/src/ggml-cpu/Makefile b/llama.cpp/build/ggml/src/ggml-cpu/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d2d27e1a63590faf4d5498466a3b7eb494c36516 --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/Makefile @@ -0,0 +1,431 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/ggml-cpu/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/ggml-cpu/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/ggml-cpu/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/ggml-cpu/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule +.PHONY : ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule + +# Convenience name for target. +ggml-cpu: ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/rule +.PHONY : ggml-cpu + +# fast build rule for target. +ggml-cpu/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build +.PHONY : ggml-cpu/fast + +amx/amx.o: amx/amx.cpp.o +.PHONY : amx/amx.o + +# target to build an object file +amx/amx.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.o +.PHONY : amx/amx.cpp.o + +amx/amx.i: amx/amx.cpp.i +.PHONY : amx/amx.i + +# target to preprocess a source file +amx/amx.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.i +.PHONY : amx/amx.cpp.i + +amx/amx.s: amx/amx.cpp.s +.PHONY : amx/amx.s + +# target to generate assembly for a file +amx/amx.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/amx.cpp.s +.PHONY : amx/amx.cpp.s + +amx/mmq.o: amx/mmq.cpp.o +.PHONY : amx/mmq.o + +# target to build an object file +amx/mmq.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.o +.PHONY : amx/mmq.cpp.o + +amx/mmq.i: amx/mmq.cpp.i +.PHONY : amx/mmq.i + +# target to preprocess a source file +amx/mmq.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.i +.PHONY : amx/mmq.cpp.i + +amx/mmq.s: amx/mmq.cpp.s +.PHONY : amx/mmq.s + +# target to generate assembly for a file +amx/mmq.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/amx/mmq.cpp.s +.PHONY : amx/mmq.cpp.s + +cpu-feats-x86.o: cpu-feats-x86.cpp.o +.PHONY : cpu-feats-x86.o + +# target to build an object file +cpu-feats-x86.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.o +.PHONY : cpu-feats-x86.cpp.o + +cpu-feats-x86.i: cpu-feats-x86.cpp.i +.PHONY : cpu-feats-x86.i + +# target to preprocess a source file +cpu-feats-x86.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.i +.PHONY : cpu-feats-x86.cpp.i + +cpu-feats-x86.s: cpu-feats-x86.cpp.s +.PHONY : cpu-feats-x86.s + +# target to generate assembly for a file +cpu-feats-x86.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/cpu-feats-x86.cpp.s +.PHONY : cpu-feats-x86.cpp.s + +ggml-cpu-aarch64.o: ggml-cpu-aarch64.c.o +.PHONY : ggml-cpu-aarch64.o + +# target to build an object file +ggml-cpu-aarch64.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.o +.PHONY : ggml-cpu-aarch64.c.o + +ggml-cpu-aarch64.i: ggml-cpu-aarch64.c.i +.PHONY : ggml-cpu-aarch64.i + +# target to preprocess a source file +ggml-cpu-aarch64.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.i +.PHONY : ggml-cpu-aarch64.c.i + +ggml-cpu-aarch64.s: ggml-cpu-aarch64.c.s +.PHONY : ggml-cpu-aarch64.s + +# target to generate assembly for a file +ggml-cpu-aarch64.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-aarch64.c.s +.PHONY : ggml-cpu-aarch64.c.s + +ggml-cpu-quants.o: ggml-cpu-quants.c.o +.PHONY : ggml-cpu-quants.o + +# target to build an object file +ggml-cpu-quants.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.o +.PHONY : ggml-cpu-quants.c.o + +ggml-cpu-quants.i: ggml-cpu-quants.c.i +.PHONY : ggml-cpu-quants.i + +# target to preprocess a source file +ggml-cpu-quants.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.i +.PHONY : ggml-cpu-quants.c.i + +ggml-cpu-quants.s: ggml-cpu-quants.c.s +.PHONY : ggml-cpu-quants.s + +# target to generate assembly for a file +ggml-cpu-quants.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu-quants.c.s +.PHONY : ggml-cpu-quants.c.s + +ggml-cpu.o: ggml-cpu.c.o +.PHONY : ggml-cpu.o + +# target to build an object file +ggml-cpu.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.o +.PHONY : ggml-cpu.c.o + +ggml-cpu.i: ggml-cpu.c.i +.PHONY : ggml-cpu.i + +# target to preprocess a source file +ggml-cpu.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.i +.PHONY : ggml-cpu.c.i + +ggml-cpu.s: ggml-cpu.c.s +.PHONY : ggml-cpu.s + +# target to generate assembly for a file +ggml-cpu.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.c.s +.PHONY : ggml-cpu.c.s + +ggml-cpu.o: ggml-cpu.cpp.o +.PHONY : ggml-cpu.o + +# target to build an object file +ggml-cpu.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.o +.PHONY : ggml-cpu.cpp.o + +ggml-cpu.i: ggml-cpu.cpp.i +.PHONY : ggml-cpu.i + +# target to preprocess a source file +ggml-cpu.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.i +.PHONY : ggml-cpu.cpp.i + +ggml-cpu.s: ggml-cpu.cpp.s +.PHONY : ggml-cpu.s + +# target to generate assembly for a file +ggml-cpu.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/ggml-cpu.cpp.s +.PHONY : ggml-cpu.cpp.s + +llamafile/sgemm.o: llamafile/sgemm.cpp.o +.PHONY : llamafile/sgemm.o + +# target to build an object file +llamafile/sgemm.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.o +.PHONY : llamafile/sgemm.cpp.o + +llamafile/sgemm.i: llamafile/sgemm.cpp.i +.PHONY : llamafile/sgemm.i + +# target to preprocess a source file +llamafile/sgemm.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.i +.PHONY : llamafile/sgemm.cpp.i + +llamafile/sgemm.s: llamafile/sgemm.cpp.s +.PHONY : llamafile/sgemm.s + +# target to generate assembly for a file +llamafile/sgemm.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/build.make ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/llamafile/sgemm.cpp.s +.PHONY : llamafile/sgemm.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... ggml-cpu" + @echo "... amx/amx.o" + @echo "... amx/amx.i" + @echo "... amx/amx.s" + @echo "... amx/mmq.o" + @echo "... amx/mmq.i" + @echo "... amx/mmq.s" + @echo "... cpu-feats-x86.o" + @echo "... cpu-feats-x86.i" + @echo "... cpu-feats-x86.s" + @echo "... ggml-cpu-aarch64.o" + @echo "... ggml-cpu-aarch64.i" + @echo "... ggml-cpu-aarch64.s" + @echo "... ggml-cpu-quants.o" + @echo "... ggml-cpu-quants.i" + @echo "... ggml-cpu-quants.s" + @echo "... ggml-cpu.o" + @echo "... ggml-cpu.i" + @echo "... ggml-cpu.s" + @echo "... ggml-cpu.o" + @echo "... ggml-cpu.i" + @echo "... ggml-cpu.s" + @echo "... llamafile/sgemm.o" + @echo "... llamafile/sgemm.i" + @echo "... llamafile/sgemm.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/ggml/src/ggml-cpu/cmake_install.cmake b/llama.cpp/build/ggml/src/ggml-cpu/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1ef7214111558769ba7d0fbefd4696021a16040b --- /dev/null +++ b/llama.cpp/build/ggml/src/ggml-cpu/cmake_install.cmake @@ -0,0 +1,67 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/ggml-cpu + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/libggml-cpu.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libggml-cpu.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + diff --git a/llama.cpp/build/ggml/src/ggml-cpu/libggml-cpu.so b/llama.cpp/build/ggml/src/ggml-cpu/libggml-cpu.so new file mode 100644 index 0000000000000000000000000000000000000000..d04608202fec072ea1184de793a63a4cf50670c8 Binary files /dev/null and b/llama.cpp/build/ggml/src/ggml-cpu/libggml-cpu.so differ diff --git a/llama.cpp/build/ggml/src/libggml-base.so b/llama.cpp/build/ggml/src/libggml-base.so new file mode 100644 index 0000000000000000000000000000000000000000..ea421c3a863bb8f77a84afbe57d11473fc3df136 Binary files /dev/null and b/llama.cpp/build/ggml/src/libggml-base.so differ diff --git a/llama.cpp/build/ggml/src/libggml.so b/llama.cpp/build/ggml/src/libggml.so new file mode 100644 index 0000000000000000000000000000000000000000..3b3f0be7705835ab0d1adf3e49ebd33e39de3216 Binary files /dev/null and b/llama.cpp/build/ggml/src/libggml.so differ diff --git a/llama.cpp/build/llama-config.cmake b/llama.cpp/build/llama-config.cmake new file mode 100644 index 0000000000000000000000000000000000000000..14991cecb881eb3cca4eb16083a02897d472ce37 --- /dev/null +++ b/llama.cpp/build/llama-config.cmake @@ -0,0 +1,202 @@ +set(LLAMA_VERSION 0.0.4246) +set(LLAMA_BUILD_COMMIT 0115df2f) +set(LLAMA_BUILD_NUMBER 4246) +set(LLAMA_SHARED_LIB ON) + +set(GGML_STATIC OFF) +set(GGML_NATIVE ON) +set(GGML_LTO OFF) +set(GGML_CCACHE ON) +set(GGML_AVX OFF) +set(GGML_AVX2 OFF) +set(GGML_AVX512 OFF) +set(GGML_AVX512_VBMI OFF) +set(GGML_AVX512_VNNI OFF) +set(GGML_AVX512_BF16 OFF) +set(GGML_AMX_TILE OFF) +set(GGML_AMX_INT8 OFF) +set(GGML_AMX_BF16 OFF) +set(GGML_FMA OFF) +set(GGML_LASX ON) +set(GGML_LSX ON) +set(GGML_RVV ON) +set(GGML_SVE OFF) + +set(GGML_ACCELERATE ON) +set(GGML_OPENMP ON) +set(GGML_CPU_HBM OFF) +set(GGML_BLAS_VENDOR Generic) + +set(GGML_CUDA_FORCE_MMQ OFF) +set(GGML_CUDA_FORCE_CUBLAS OFF) +set(GGML_CUDA_F16 OFF) +set(GGML_CUDA_PEER_MAX_BATCH_SIZE 128) +set(GGML_CUDA_NO_PEER_COPY OFF) +set(GGML_CUDA_NO_VMM OFF) +set(GGML_CUDA_FA_ALL_QUANTS OFF) +set(GGML_CUDA_GRAPHS ON) + +set(GGML_HIP_UMA OFF) + +set(GGML_VULKAN_CHECK_RESULTS OFF) +set(GGML_VULKAN_DEBUG OFF) +set(GGML_VULKAN_MEMORY_DEBUG OFF) +set(GGML_VULKAN_SHADER_DEBUG_INFO OFF) +set(GGML_VULKAN_PERF OFF) +set(GGML_VULKAN_VALIDATE OFF) +set(GGML_VULKAN_RUN_TESTS OFF) + +set(GGML_METAL_USE_BF16 OFF) +set(GGML_METAL_NDEBUG OFF) +set(GGML_METAL_SHADER_DEBUG OFF) +set(GGML_METAL_EMBED_LIBRARY OFF) +set(GGML_METAL_MACOSX_VERSION_MIN ) +set(GGML_METAL_STD ) + +set(GGML_SYCL_F16 OFF) +set(GGML_SYCL_TARGET INTEL) +set(GGML_SYCL_DEVICE_ARCH ) + + + +####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### +####### Any changes to this file will be overwritten by the next CMake run #### +####### The input file was llama-config.cmake.in ######## + +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) + +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +#################################################################################### + +set_and_check(LLAMA_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include") +set_and_check(LLAMA_LIB_DIR "${PACKAGE_PREFIX_DIR}/lib") +set_and_check(LLAMA_BIN_DIR "${PACKAGE_PREFIX_DIR}/bin") + +find_package(Threads REQUIRED) + +set(_llama_transient_defines "GGML_SCHED_MAX_COPIES=4;$<$:_GLIBCXX_ASSERTIONS>;_XOPEN_SOURCE=600;_GNU_SOURCE;GGML_USE_CPU;GGML_BUILD;GGML_SHARED") +set(_llama_link_deps "") +set(_llama_link_opts "") +foreach(_ggml_lib ggml ggml-base) + string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY") + find_library(${_ggml_lib_var} ${_ggml_lib} + REQUIRED + HINTS ${LLAMA_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH + ) + list(APPEND _llama_link_deps "${${_ggml_lib_var}}") + message(STATUS "Found ${${_ggml_lib_var}}") +endforeach() + +foreach(backend amx blas cann cpu cuda hip kompute metal musa rpc sycl vulkan) + string(TOUPPER "GGML_${backend}" backend_id) + set(_ggml_lib "ggml-${backend}") + string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY") + + find_library(${_ggml_lib_var} ${_ggml_lib} + HINTS ${LLAMA_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH + ) + if(${_ggml_lib_var}) + list(APPEND _llama_link_deps "${${_ggml_lib_var}}") + set(${backend_id} ON) + message(STATUS "Found backend ${${_ggml_lib_var}}") + else() + set(${backend_id} OFF) + endif() +endforeach() + +if (NOT LLAMA_SHARED_LIB) + if (APPLE AND GGML_ACCELERATE) + find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED) + list(APPEND _llama_link_deps ${ACCELERATE_FRAMEWORK}) + endif() + + if (GGML_OPENMP) + find_package(OpenMP REQUIRED) + list(APPEND _llama_link_deps OpenMP::OpenMP_C OpenMP::OpenMP_CXX) + endif() + + if (GGML_CPU_HBM) + find_library(memkind memkind REQUIRED) + list(APPEND _llama_link_deps memkind) + endif() + + if (GGML_BLAS) + find_package(BLAS REQUIRED) + list(APPEND _llama_link_deps ${BLAS_LIBRARIES}) + list(APPEND _llama_link_opts ${BLAS_LINKER_FLAGS}) + endif() + + if (GGML_CUDA) + find_package(CUDAToolkit REQUIRED) + endif() + + if (GGML_METAL) + find_library(FOUNDATION_LIBRARY Foundation REQUIRED) + find_library(METAL_FRAMEWORK Metal REQUIRED) + find_library(METALKIT_FRAMEWORK MetalKit REQUIRED) + list(APPEND _llama_link_deps ${FOUNDATION_LIBRARY} + ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK}) + endif() + + if (GGML_VULKAN) + find_package(Vulkan REQUIRED) + list(APPEND _llama_link_deps Vulkan::Vulkan) + endif() + + if (GGML_HIP) + find_package(hip REQUIRED) + find_package(hipblas REQUIRED) + find_package(rocblas REQUIRED) + list(APPEND _llama_link_deps hip::host roc::rocblas roc::hipblas) + endif() + + if (GGML_SYCL) + find_package(DNNL) + if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL") + list(APPEND _llama_link_deps DNNL::dnnl) + endif() + if (WIN32) + find_package(IntelSYCL REQUIRED) + find_package(MKL REQUIRED) + list(APPEND _llama_link_deps IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL) + endif() + endif() +endif() + +find_library(llama_LIBRARY llama + REQUIRED + HINTS ${LLAMA_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH +) + +add_library(llama UNKNOWN IMPORTED) +set_target_properties(llama + PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${LLAMA_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_llama_link_deps}" + INTERFACE_LINK_OPTIONS "${_llama_link_opts}" + INTERFACE_COMPILE_DEFINITIONS "${_llama_transient_defines}" + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${llama_LIBRARY}" + INTERFACE_COMPILE_FEATURES cxx_std_11 + POSITION_INDEPENDENT_CODE ON ) + +check_required_components(Llama) diff --git a/llama.cpp/build/llama-version.cmake b/llama.cpp/build/llama-version.cmake new file mode 100644 index 0000000000000000000000000000000000000000..856b00d58dbe60b47657742c9730d3e7e9ec43e9 --- /dev/null +++ b/llama.cpp/build/llama-version.cmake @@ -0,0 +1,70 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, +# but only if the requested major version is the same as the current one. +# The variable CVF_VERSION must be set before calling configure_file(). + + +set(PACKAGE_VERSION "0.0.4246") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + + if("0.0.4246" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") + if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0) + string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}") + endif() + else() + set(CVF_VERSION_MAJOR "0.0.4246") + endif() + + if(PACKAGE_FIND_VERSION_RANGE) + # both endpoints of the range must have the expected major version + math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1") + if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR + AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + else() + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + + +# if the installed project requested no architecture check, don't perform the check +if("FALSE") + return() +endif() + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") + math(EXPR installedBits "8 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/llama.cpp/build/llama.pc b/llama.cpp/build/llama.pc new file mode 100644 index 0000000000000000000000000000000000000000..8e426c9595f5c95aa23f580998f773615499cc4a --- /dev/null +++ b/llama.cpp/build/llama.pc @@ -0,0 +1,10 @@ +prefix=/usr/local +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: llama +Description: Port of Facebook's LLaMA model in C/C++ +Version: +Libs: -L${libdir} -lllama +Cflags: -I${includedir} diff --git a/llama.cpp/build/pocs/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/pocs/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/pocs/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/pocs/CMakeFiles/progress.marks b/llama.cpp/build/pocs/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..a45fd52cc5891570d6299fab38643103c3955474 --- /dev/null +++ b/llama.cpp/build/pocs/CMakeFiles/progress.marks @@ -0,0 +1 @@ +24 diff --git a/llama.cpp/build/pocs/CTestTestfile.cmake b/llama.cpp/build/pocs/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dd054945d34afb74f94568d42861ae923144c675 --- /dev/null +++ b/llama.cpp/build/pocs/CTestTestfile.cmake @@ -0,0 +1,7 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +subdirs("vdot") diff --git a/llama.cpp/build/pocs/Makefile b/llama.cpp/build/pocs/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..6761c943673cfeb9770a0fb09d3290c285fda68a --- /dev/null +++ b/llama.cpp/build/pocs/Makefile @@ -0,0 +1,200 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/pocs/cmake_install.cmake b/llama.cpp/build/pocs/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..428c8a8a91a445c28e840d8b6437d98b460eb32c --- /dev/null +++ b/llama.cpp/build/pocs/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for the subdirectory. + include("/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/cmake_install.cmake") +endif() + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/pocs/vdot/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/DependInfo.cmake b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5291d68d0bfd222c4596a7f54cfba9f6f32f96d9 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp" "pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o" "gcc" "pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..ec770152713077d58e03026d45d316528b6dea0f --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include pocs/vdot/CMakeFiles/llama-q8dot.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.make + +# Include the progress variables for this target. +include pocs/vdot/CMakeFiles/llama-q8dot.dir/progress.make + +# Include the compile flags for this target's objects. +include pocs/vdot/CMakeFiles/llama-q8dot.dir/flags.make + +pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o: pocs/vdot/CMakeFiles/llama-q8dot.dir/flags.make +pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o: ../pocs/vdot/q8dot.cpp +pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o: pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o -MF CMakeFiles/llama-q8dot.dir/q8dot.cpp.o.d -o CMakeFiles/llama-q8dot.dir/q8dot.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp" + +pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-q8dot.dir/q8dot.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp" > CMakeFiles/llama-q8dot.dir/q8dot.cpp.i + +pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-q8dot.dir/q8dot.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp" -o CMakeFiles/llama-q8dot.dir/q8dot.cpp.s + +# Object files for target llama-q8dot +llama__q8dot_OBJECTS = \ +"CMakeFiles/llama-q8dot.dir/q8dot.cpp.o" + +# External object files for target llama-q8dot +llama__q8dot_EXTERNAL_OBJECTS = + +bin/llama-q8dot: pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o +bin/llama-q8dot: pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make +bin/llama-q8dot: common/libcommon.a +bin/llama-q8dot: src/libllama.so +bin/llama-q8dot: ggml/src/libggml.so +bin/llama-q8dot: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-q8dot: ggml/src/libggml-base.so +bin/llama-q8dot: pocs/vdot/CMakeFiles/llama-q8dot.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-q8dot" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-q8dot.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +pocs/vdot/CMakeFiles/llama-q8dot.dir/build: bin/llama-q8dot +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/build + +pocs/vdot/CMakeFiles/llama-q8dot.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && $(CMAKE_COMMAND) -P CMakeFiles/llama-q8dot.dir/cmake_clean.cmake +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/clean + +pocs/vdot/CMakeFiles/llama-q8dot.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/depend + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/cmake_clean.cmake b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d714d1f939cf852c5c343d2ee21582d5eebbabea --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-q8dot" + "../../bin/llama-q8dot.pdb" + "CMakeFiles/llama-q8dot.dir/q8dot.cpp.o" + "CMakeFiles/llama-q8dot.dir/q8dot.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-q8dot.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7effe57d221ecd312993025a575a60f89915030d --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-q8dot. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.ts b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..f6e464158e393b2939e64888422e7a34917752fe --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-q8dot. diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/depend.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..396160fd677aba2c86f67fed06882edbaaacbcbd --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-q8dot. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/flags.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..9a9c32ac6b6c3250b968149a96de1ce65f7ecf21 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/link.txt b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..ffd2ef5627a630f56e60ac10c13c57cfe9c0feeb --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-q8dot.dir/q8dot.cpp.o -o ../../bin/llama-q8dot -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/progress.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..4733d2b63ab430dc8d79f69d47487d17860eec79 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 49 +CMAKE_PROGRESS_2 = 50 + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4111444541095738362a6fd74d5359185dee14d4 Binary files /dev/null and b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o differ diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o.d b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f3c7c220a9665e6c8ec0612c1596aa2e748229e7 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o.d @@ -0,0 +1,180 @@ +pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/q8dot.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/stl_construct.h \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/random \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstdlib \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/cstring /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/array /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/DependInfo.cmake b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f23264129a7d8823e3b369dc6e78289f6f75433f --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp" "pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o" "gcc" "pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/build.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..99e647a85e3982dd0bc6e648741d68797cadb2ed --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include pocs/vdot/CMakeFiles/llama-vdot.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.make + +# Include the progress variables for this target. +include pocs/vdot/CMakeFiles/llama-vdot.dir/progress.make + +# Include the compile flags for this target's objects. +include pocs/vdot/CMakeFiles/llama-vdot.dir/flags.make + +pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o: pocs/vdot/CMakeFiles/llama-vdot.dir/flags.make +pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o: ../pocs/vdot/vdot.cpp +pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o: pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o -MF CMakeFiles/llama-vdot.dir/vdot.cpp.o.d -o CMakeFiles/llama-vdot.dir/vdot.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp" + +pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama-vdot.dir/vdot.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp" > CMakeFiles/llama-vdot.dir/vdot.cpp.i + +pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama-vdot.dir/vdot.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp" -o CMakeFiles/llama-vdot.dir/vdot.cpp.s + +# Object files for target llama-vdot +llama__vdot_OBJECTS = \ +"CMakeFiles/llama-vdot.dir/vdot.cpp.o" + +# External object files for target llama-vdot +llama__vdot_EXTERNAL_OBJECTS = + +bin/llama-vdot: pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o +bin/llama-vdot: pocs/vdot/CMakeFiles/llama-vdot.dir/build.make +bin/llama-vdot: common/libcommon.a +bin/llama-vdot: src/libllama.so +bin/llama-vdot: ggml/src/libggml.so +bin/llama-vdot: ggml/src/ggml-cpu/libggml-cpu.so +bin/llama-vdot: ggml/src/libggml-base.so +bin/llama-vdot: pocs/vdot/CMakeFiles/llama-vdot.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../../bin/llama-vdot" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama-vdot.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +pocs/vdot/CMakeFiles/llama-vdot.dir/build: bin/llama-vdot +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/build + +pocs/vdot/CMakeFiles/llama-vdot.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" && $(CMAKE_COMMAND) -P CMakeFiles/llama-vdot.dir/cmake_clean.cmake +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/clean + +pocs/vdot/CMakeFiles/llama-vdot.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/depend + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/cmake_clean.cmake b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..aadc3549e138edc63d53d6fe088a819fb1e83dd3 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../../bin/llama-vdot" + "../../bin/llama-vdot.pdb" + "CMakeFiles/llama-vdot.dir/vdot.cpp.o" + "CMakeFiles/llama-vdot.dir/vdot.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama-vdot.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..19d0d12fce6f63b55be72be4bc78a6761ba73436 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama-vdot. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.ts b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c70b7398b60e661a2dbb8b872c24b62dd714aceb --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama-vdot. diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/depend.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..9aaa8a4cf140d59ea74c105e12a1e035c69945e2 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama-vdot. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/flags.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..9a9c32ac6b6c3250b968149a96de1ce65f7ecf21 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/link.txt b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a54709cef5d197612112135545dce32f9baf9c76 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/llama-vdot.dir/vdot.cpp.o -o ../../bin/llama-vdot -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" ../../common/libcommon.a ../../src/libllama.so ../../ggml/src/libggml.so ../../ggml/src/ggml-cpu/libggml-cpu.so ../../ggml/src/libggml-base.so diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/progress.make b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6846ccae2541389d58471170f9d469a7a10bfee4 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 66 +CMAKE_PROGRESS_2 = 67 + diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d0fea12c0ea22f29ea16e08c3b5c53103334bd66 Binary files /dev/null and b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o differ diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o.d b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a5133dac659f6ea91e522264a9d0e8b423409d63 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o.d @@ -0,0 +1,180 @@ +pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot/vdot.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/stl_construct.h \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/random \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstdlib \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h /usr/include/c++/11/bit \ + /usr/include/c++/11/pstl/glue_numeric_defs.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/cstring /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/array /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h diff --git a/llama.cpp/build/pocs/vdot/CMakeFiles/progress.marks b/llama.cpp/build/pocs/vdot/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..a45fd52cc5891570d6299fab38643103c3955474 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CMakeFiles/progress.marks @@ -0,0 +1 @@ +24 diff --git a/llama.cpp/build/pocs/vdot/CTestTestfile.cmake b/llama.cpp/build/pocs/vdot/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..da6f8f9861879b3919eb32e5faf0918c205f066b --- /dev/null +++ b/llama.cpp/build/pocs/vdot/CTestTestfile.cmake @@ -0,0 +1,6 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. diff --git a/llama.cpp/build/pocs/vdot/Makefile b/llama.cpp/build/pocs/vdot/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..691d6cff2b2d8be37d4138aa06c7370935a6b17a --- /dev/null +++ b/llama.cpp/build/pocs/vdot/Makefile @@ -0,0 +1,284 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/pocs/vdot//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +pocs/vdot/CMakeFiles/llama-vdot.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/CMakeFiles/llama-vdot.dir/rule +.PHONY : pocs/vdot/CMakeFiles/llama-vdot.dir/rule + +# Convenience name for target. +llama-vdot: pocs/vdot/CMakeFiles/llama-vdot.dir/rule +.PHONY : llama-vdot + +# fast build rule for target. +llama-vdot/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/build +.PHONY : llama-vdot/fast + +# Convenience name for target. +pocs/vdot/CMakeFiles/llama-q8dot.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 pocs/vdot/CMakeFiles/llama-q8dot.dir/rule +.PHONY : pocs/vdot/CMakeFiles/llama-q8dot.dir/rule + +# Convenience name for target. +llama-q8dot: pocs/vdot/CMakeFiles/llama-q8dot.dir/rule +.PHONY : llama-q8dot + +# fast build rule for target. +llama-q8dot/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/build +.PHONY : llama-q8dot/fast + +q8dot.o: q8dot.cpp.o +.PHONY : q8dot.o + +# target to build an object file +q8dot.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o +.PHONY : q8dot.cpp.o + +q8dot.i: q8dot.cpp.i +.PHONY : q8dot.i + +# target to preprocess a source file +q8dot.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.i +.PHONY : q8dot.cpp.i + +q8dot.s: q8dot.cpp.s +.PHONY : q8dot.s + +# target to generate assembly for a file +q8dot.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-q8dot.dir/build.make pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.s +.PHONY : q8dot.cpp.s + +vdot.o: vdot.cpp.o +.PHONY : vdot.o + +# target to build an object file +vdot.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o +.PHONY : vdot.cpp.o + +vdot.i: vdot.cpp.i +.PHONY : vdot.i + +# target to preprocess a source file +vdot.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.i +.PHONY : vdot.cpp.i + +vdot.s: vdot.cpp.s +.PHONY : vdot.s + +# target to generate assembly for a file +vdot.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f pocs/vdot/CMakeFiles/llama-vdot.dir/build.make pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.s +.PHONY : vdot.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama-q8dot" + @echo "... llama-vdot" + @echo "... q8dot.o" + @echo "... q8dot.i" + @echo "... q8dot.s" + @echo "... vdot.o" + @echo "... vdot.i" + @echo "... vdot.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/pocs/vdot/cmake_install.cmake b/llama.cpp/build/pocs/vdot/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..785f7841cbb060545b1dfe20705827937b8bd670 --- /dev/null +++ b/llama.cpp/build/pocs/vdot/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/pocs/vdot + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + diff --git a/llama.cpp/build/src/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/src/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake b/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7bdb132ffa9eef6a85fdc4819910fb1f9a10ec93 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake @@ -0,0 +1,27 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp" "src/CMakeFiles/llama.dir/llama-grammar.cpp.o" "gcc" "src/CMakeFiles/llama.dir/llama-grammar.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp" "src/CMakeFiles/llama.dir/llama-sampling.cpp.o" "gcc" "src/CMakeFiles/llama.dir/llama-sampling.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp" "src/CMakeFiles/llama.dir/llama-vocab.cpp.o" "gcc" "src/CMakeFiles/llama.dir/llama-vocab.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp" "src/CMakeFiles/llama.dir/llama.cpp.o" "gcc" "src/CMakeFiles/llama.dir/llama.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp" "src/CMakeFiles/llama.dir/unicode-data.cpp.o" "gcc" "src/CMakeFiles/llama.dir/unicode-data.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp" "src/CMakeFiles/llama.dir/unicode.cpp.o" "gcc" "src/CMakeFiles/llama.dir/unicode.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/build.make b/llama.cpp/build/src/CMakeFiles/llama.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..e50d4f82a9020de9e7143c14d8d3866820207caa --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/build.make @@ -0,0 +1,193 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include src/CMakeFiles/llama.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include src/CMakeFiles/llama.dir/compiler_depend.make + +# Include the progress variables for this target. +include src/CMakeFiles/llama.dir/progress.make + +# Include the compile flags for this target's objects. +include src/CMakeFiles/llama.dir/flags.make + +src/CMakeFiles/llama.dir/llama.cpp.o: src/CMakeFiles/llama.dir/flags.make +src/CMakeFiles/llama.dir/llama.cpp.o: ../src/llama.cpp +src/CMakeFiles/llama.dir/llama.cpp.o: src/CMakeFiles/llama.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object src/CMakeFiles/llama.dir/llama.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/llama.dir/llama.cpp.o -MF CMakeFiles/llama.dir/llama.cpp.o.d -o CMakeFiles/llama.dir/llama.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp" + +src/CMakeFiles/llama.dir/llama.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama.dir/llama.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp" > CMakeFiles/llama.dir/llama.cpp.i + +src/CMakeFiles/llama.dir/llama.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama.dir/llama.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp" -o CMakeFiles/llama.dir/llama.cpp.s + +src/CMakeFiles/llama.dir/llama-vocab.cpp.o: src/CMakeFiles/llama.dir/flags.make +src/CMakeFiles/llama.dir/llama-vocab.cpp.o: ../src/llama-vocab.cpp +src/CMakeFiles/llama.dir/llama-vocab.cpp.o: src/CMakeFiles/llama.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object src/CMakeFiles/llama.dir/llama-vocab.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/llama.dir/llama-vocab.cpp.o -MF CMakeFiles/llama.dir/llama-vocab.cpp.o.d -o CMakeFiles/llama.dir/llama-vocab.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp" + +src/CMakeFiles/llama.dir/llama-vocab.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama.dir/llama-vocab.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp" > CMakeFiles/llama.dir/llama-vocab.cpp.i + +src/CMakeFiles/llama.dir/llama-vocab.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama.dir/llama-vocab.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp" -o CMakeFiles/llama.dir/llama-vocab.cpp.s + +src/CMakeFiles/llama.dir/llama-grammar.cpp.o: src/CMakeFiles/llama.dir/flags.make +src/CMakeFiles/llama.dir/llama-grammar.cpp.o: ../src/llama-grammar.cpp +src/CMakeFiles/llama.dir/llama-grammar.cpp.o: src/CMakeFiles/llama.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object src/CMakeFiles/llama.dir/llama-grammar.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/llama.dir/llama-grammar.cpp.o -MF CMakeFiles/llama.dir/llama-grammar.cpp.o.d -o CMakeFiles/llama.dir/llama-grammar.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp" + +src/CMakeFiles/llama.dir/llama-grammar.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama.dir/llama-grammar.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp" > CMakeFiles/llama.dir/llama-grammar.cpp.i + +src/CMakeFiles/llama.dir/llama-grammar.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama.dir/llama-grammar.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp" -o CMakeFiles/llama.dir/llama-grammar.cpp.s + +src/CMakeFiles/llama.dir/llama-sampling.cpp.o: src/CMakeFiles/llama.dir/flags.make +src/CMakeFiles/llama.dir/llama-sampling.cpp.o: ../src/llama-sampling.cpp +src/CMakeFiles/llama.dir/llama-sampling.cpp.o: src/CMakeFiles/llama.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object src/CMakeFiles/llama.dir/llama-sampling.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/llama.dir/llama-sampling.cpp.o -MF CMakeFiles/llama.dir/llama-sampling.cpp.o.d -o CMakeFiles/llama.dir/llama-sampling.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp" + +src/CMakeFiles/llama.dir/llama-sampling.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama.dir/llama-sampling.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp" > CMakeFiles/llama.dir/llama-sampling.cpp.i + +src/CMakeFiles/llama.dir/llama-sampling.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama.dir/llama-sampling.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp" -o CMakeFiles/llama.dir/llama-sampling.cpp.s + +src/CMakeFiles/llama.dir/unicode.cpp.o: src/CMakeFiles/llama.dir/flags.make +src/CMakeFiles/llama.dir/unicode.cpp.o: ../src/unicode.cpp +src/CMakeFiles/llama.dir/unicode.cpp.o: src/CMakeFiles/llama.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object src/CMakeFiles/llama.dir/unicode.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/llama.dir/unicode.cpp.o -MF CMakeFiles/llama.dir/unicode.cpp.o.d -o CMakeFiles/llama.dir/unicode.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp" + +src/CMakeFiles/llama.dir/unicode.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama.dir/unicode.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp" > CMakeFiles/llama.dir/unicode.cpp.i + +src/CMakeFiles/llama.dir/unicode.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama.dir/unicode.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp" -o CMakeFiles/llama.dir/unicode.cpp.s + +src/CMakeFiles/llama.dir/unicode-data.cpp.o: src/CMakeFiles/llama.dir/flags.make +src/CMakeFiles/llama.dir/unicode-data.cpp.o: ../src/unicode-data.cpp +src/CMakeFiles/llama.dir/unicode-data.cpp.o: src/CMakeFiles/llama.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object src/CMakeFiles/llama.dir/unicode-data.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT src/CMakeFiles/llama.dir/unicode-data.cpp.o -MF CMakeFiles/llama.dir/unicode-data.cpp.o.d -o CMakeFiles/llama.dir/unicode-data.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp" + +src/CMakeFiles/llama.dir/unicode-data.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/llama.dir/unicode-data.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp" > CMakeFiles/llama.dir/unicode-data.cpp.i + +src/CMakeFiles/llama.dir/unicode-data.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/llama.dir/unicode-data.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp" -o CMakeFiles/llama.dir/unicode-data.cpp.s + +# Object files for target llama +llama_OBJECTS = \ +"CMakeFiles/llama.dir/llama.cpp.o" \ +"CMakeFiles/llama.dir/llama-vocab.cpp.o" \ +"CMakeFiles/llama.dir/llama-grammar.cpp.o" \ +"CMakeFiles/llama.dir/llama-sampling.cpp.o" \ +"CMakeFiles/llama.dir/unicode.cpp.o" \ +"CMakeFiles/llama.dir/unicode-data.cpp.o" + +# External object files for target llama +llama_EXTERNAL_OBJECTS = + +src/libllama.so: src/CMakeFiles/llama.dir/llama.cpp.o +src/libllama.so: src/CMakeFiles/llama.dir/llama-vocab.cpp.o +src/libllama.so: src/CMakeFiles/llama.dir/llama-grammar.cpp.o +src/libllama.so: src/CMakeFiles/llama.dir/llama-sampling.cpp.o +src/libllama.so: src/CMakeFiles/llama.dir/unicode.cpp.o +src/libllama.so: src/CMakeFiles/llama.dir/unicode-data.cpp.o +src/libllama.so: src/CMakeFiles/llama.dir/build.make +src/libllama.so: ggml/src/libggml.so +src/libllama.so: ggml/src/ggml-cpu/libggml-cpu.so +src/libllama.so: ggml/src/libggml-base.so +src/libllama.so: src/CMakeFiles/llama.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_7) "Linking CXX shared library libllama.so" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/llama.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +src/CMakeFiles/llama.dir/build: src/libllama.so +.PHONY : src/CMakeFiles/llama.dir/build + +src/CMakeFiles/llama.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" && $(CMAKE_COMMAND) -P CMakeFiles/llama.dir/cmake_clean.cmake +.PHONY : src/CMakeFiles/llama.dir/clean + +src/CMakeFiles/llama.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : src/CMakeFiles/llama.dir/depend + diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/cmake_clean.cmake b/llama.cpp/build/src/CMakeFiles/llama.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0311c426c30e5fdca4af0cb2a114c6624378b066 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/cmake_clean.cmake @@ -0,0 +1,21 @@ +file(REMOVE_RECURSE + "CMakeFiles/llama.dir/llama-grammar.cpp.o" + "CMakeFiles/llama.dir/llama-grammar.cpp.o.d" + "CMakeFiles/llama.dir/llama-sampling.cpp.o" + "CMakeFiles/llama.dir/llama-sampling.cpp.o.d" + "CMakeFiles/llama.dir/llama-vocab.cpp.o" + "CMakeFiles/llama.dir/llama-vocab.cpp.o.d" + "CMakeFiles/llama.dir/llama.cpp.o" + "CMakeFiles/llama.dir/llama.cpp.o.d" + "CMakeFiles/llama.dir/unicode-data.cpp.o" + "CMakeFiles/llama.dir/unicode-data.cpp.o.d" + "CMakeFiles/llama.dir/unicode.cpp.o" + "CMakeFiles/llama.dir/unicode.cpp.o.d" + "libllama.pdb" + "libllama.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/llama.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/compiler_depend.make b/llama.cpp/build/src/CMakeFiles/llama.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e830db556571817d95b4c913834de8a12f837400 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for llama. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/compiler_depend.ts b/llama.cpp/build/src/CMakeFiles/llama.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..6b1b9b1c45b86d67dbae10847b07cae1c71c888a --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for llama. diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/depend.make b/llama.cpp/build/src/CMakeFiles/llama.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e5ae604cdb038f835a8c415f13940fb1d5f6f567 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for llama. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/flags.make b/llama.cpp/build/src/CMakeFiles/llama.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..0aa3fe1e5920e4a8ba8bf182e82b41c373f0c346 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_BUILD -DLLAMA_SHARED -Dllama_EXPORTS + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG -fPIC -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi + diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/link.txt b/llama.cpp/build/src/CMakeFiles/llama.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..c55214f6e649c053bfd967ac60e8fdeff682bf62 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libllama.so -o libllama.so CMakeFiles/llama.dir/llama.cpp.o CMakeFiles/llama.dir/llama-vocab.cpp.o CMakeFiles/llama.dir/llama-grammar.cpp.o CMakeFiles/llama.dir/llama-sampling.cpp.o CMakeFiles/llama.dir/unicode.cpp.o CMakeFiles/llama.dir/unicode-data.cpp.o -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama-grammar.cpp.o b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-grammar.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d016c5785a41d7e5320e34fd8ccf8e596f973ba7 Binary files /dev/null and b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-grammar.cpp.o differ diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama-grammar.cpp.o.d b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-grammar.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a0f1a3da2ea0165785452b589c1f911ae100c317 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-grammar.cpp.o.d @@ -0,0 +1,199 @@ +src/CMakeFiles/llama.dir/llama-grammar.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.h \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/algorithm \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/pstl/execution_defs.h diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama-sampling.cpp.o b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-sampling.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..7b9235a0b3bb44ebe1ce8cb68b7c2d20e66b9a86 Binary files /dev/null and b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-sampling.cpp.o differ diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama-sampling.cpp.o.d b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-sampling.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..05497780ac15c4a07a4f699f0c69dc1195b0db77 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-sampling.cpp.o.d @@ -0,0 +1,210 @@ +src/CMakeFiles/llama.dir/llama-sampling.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h /usr/include/c++/11/algorithm \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/cmath \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/numeric /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/bit /usr/include/c++/11/pstl/glue_numeric_defs.h \ + /usr/include/c++/11/random /usr/include/c++/11/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama-vocab.cpp.o b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-vocab.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..51fcb02187656187cb6dd2b2b8b456122fac3975 Binary files /dev/null and b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-vocab.cpp.o differ diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama-vocab.cpp.o.d b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-vocab.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..3bed7192ed36b18b1d0ab3caa840ef4547b7b4d3 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/llama-vocab.cpp.o.d @@ -0,0 +1,211 @@ +src/CMakeFiles/llama.dir/llama-vocab.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cstdarg \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/forward_list /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/queue \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_queue.h \ + /usr/include/c++/11/sstream /usr/include/c++/11/istream \ + /usr/include/c++/11/ios /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o b/llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..9276c499447174e8d7329f728f6efe2ac2996254 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97074732d9960743db35c6f559f26e3585037520e2e24e4bc5906e8aa84fb4e5 +size 1585488 diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o.d b/llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..53f8287e837b061f530c9293306f877b274819ad --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/llama.cpp.o.d @@ -0,0 +1,287 @@ +src/CMakeFiles/llama.dir/llama.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-vocab.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-sampling.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpp.h \ + /usr/include/c++/11/memory /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/bits/refwrap.h /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/posix_opt.h \ + /usr/include/x86_64-linux-gnu/bits/environments.h \ + /usr/include/x86_64-linux-gnu/bits/confname.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_posix.h \ + /usr/include/x86_64-linux-gnu/bits/getopt_core.h \ + /usr/include/x86_64-linux-gnu/bits/unistd.h \ + /usr/include/x86_64-linux-gnu/bits/unistd_ext.h \ + /usr/include/linux/close_range.h \ + /usr/include/x86_64-linux-gnu/sys/mman.h \ + /usr/include/x86_64-linux-gnu/bits/mman.h \ + /usr/include/x86_64-linux-gnu/bits/mman-map-flags-generic.h \ + /usr/include/x86_64-linux-gnu/bits/mman-linux.h \ + /usr/include/x86_64-linux-gnu/bits/mman-shared.h /usr/include/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl-linux.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_iovec.h \ + /usr/include/linux/falloc.h /usr/include/x86_64-linux-gnu/bits/stat.h \ + /usr/include/x86_64-linux-gnu/bits/struct_stat.h \ + /usr/include/x86_64-linux-gnu/bits/fcntl2.h \ + /usr/include/x86_64-linux-gnu/sys/resource.h \ + /usr/include/x86_64-linux-gnu/bits/resource.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_rusage.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h \ + /usr/include/c++/11/climits \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h \ + /usr/include/x86_64-linux-gnu/bits/xopen_lim.h \ + /usr/include/x86_64-linux-gnu/bits/uio_lim.h /usr/include/c++/11/cmath \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstdarg \ + /usr/include/c++/11/cstddef /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/ctime /usr/include/c++/11/fstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/future \ + /usr/include/c++/11/mutex /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h \ + /usr/include/c++/11/condition_variable /usr/include/c++/11/atomic \ + /usr/include/c++/11/bits/atomic_futex.h \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/this_thread_sleep.h diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/progress.make b/llama.cpp/build/src/CMakeFiles/llama.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..ecba1833832c6413213b4b216e289885c178453b --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/progress.make @@ -0,0 +1,8 @@ +CMAKE_PROGRESS_1 = 17 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 18 +CMAKE_PROGRESS_4 = +CMAKE_PROGRESS_5 = 19 +CMAKE_PROGRESS_6 = +CMAKE_PROGRESS_7 = 20 + diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/unicode-data.cpp.o b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode-data.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..34f3faf2563bc8a2d87b98a6b828e59c4b1c6fd7 Binary files /dev/null and b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode-data.cpp.o differ diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/unicode-data.cpp.o.d b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode-data.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..edaefdacaf7da5974cb9ae143d7b0bef6a7f5926 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode-data.cpp.o.d @@ -0,0 +1,68 @@ +src/CMakeFiles/llama.dir/unicode-data.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.h \ + /usr/include/c++/11/cstdint \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/vector /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/stl_construct.h \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/unordered_set \ + /usr/include/c++/11/bits/unordered_set.h diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/unicode.cpp.o b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..02c1181648591a9f9aa3715ef4592ce543dc1c66 Binary files /dev/null and b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode.cpp.o differ diff --git a/llama.cpp/build/src/CMakeFiles/llama.dir/unicode.cpp.o.d b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6e2db07a38bb69beaa4539a5ec92f1d17b7ac37f --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/llama.dir/unicode.cpp.o.d @@ -0,0 +1,223 @@ +src/CMakeFiles/llama.dir/unicode.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode.h \ + /usr/include/c++/11/cstdint \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/unicode-data.h \ + /usr/include/c++/11/unordered_map \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/unordered_set \ + /usr/include/c++/11/bits/unordered_set.h /usr/include/c++/11/algorithm \ + /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/cstddef \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/iterator \ + /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/streambuf.tcc /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/locale_facets_nonio.h /usr/include/c++/11/ctime \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc /usr/include/c++/11/codecvt diff --git a/llama.cpp/build/src/CMakeFiles/progress.marks b/llama.cpp/build/src/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..8351c19397f4fcd5238d10034fa7fa384f14d580 --- /dev/null +++ b/llama.cpp/build/src/CMakeFiles/progress.marks @@ -0,0 +1 @@ +14 diff --git a/llama.cpp/build/src/Makefile b/llama.cpp/build/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..5c9b06ed0a67de56b3e3a08e588d58d908ccb56a --- /dev/null +++ b/llama.cpp/build/src/Makefile @@ -0,0 +1,377 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +src/CMakeFiles/llama.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 src/CMakeFiles/llama.dir/rule +.PHONY : src/CMakeFiles/llama.dir/rule + +# Convenience name for target. +llama: src/CMakeFiles/llama.dir/rule +.PHONY : llama + +# fast build rule for target. +llama/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/build +.PHONY : llama/fast + +llama-grammar.o: llama-grammar.cpp.o +.PHONY : llama-grammar.o + +# target to build an object file +llama-grammar.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-grammar.cpp.o +.PHONY : llama-grammar.cpp.o + +llama-grammar.i: llama-grammar.cpp.i +.PHONY : llama-grammar.i + +# target to preprocess a source file +llama-grammar.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-grammar.cpp.i +.PHONY : llama-grammar.cpp.i + +llama-grammar.s: llama-grammar.cpp.s +.PHONY : llama-grammar.s + +# target to generate assembly for a file +llama-grammar.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-grammar.cpp.s +.PHONY : llama-grammar.cpp.s + +llama-sampling.o: llama-sampling.cpp.o +.PHONY : llama-sampling.o + +# target to build an object file +llama-sampling.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-sampling.cpp.o +.PHONY : llama-sampling.cpp.o + +llama-sampling.i: llama-sampling.cpp.i +.PHONY : llama-sampling.i + +# target to preprocess a source file +llama-sampling.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-sampling.cpp.i +.PHONY : llama-sampling.cpp.i + +llama-sampling.s: llama-sampling.cpp.s +.PHONY : llama-sampling.s + +# target to generate assembly for a file +llama-sampling.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-sampling.cpp.s +.PHONY : llama-sampling.cpp.s + +llama-vocab.o: llama-vocab.cpp.o +.PHONY : llama-vocab.o + +# target to build an object file +llama-vocab.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-vocab.cpp.o +.PHONY : llama-vocab.cpp.o + +llama-vocab.i: llama-vocab.cpp.i +.PHONY : llama-vocab.i + +# target to preprocess a source file +llama-vocab.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-vocab.cpp.i +.PHONY : llama-vocab.cpp.i + +llama-vocab.s: llama-vocab.cpp.s +.PHONY : llama-vocab.s + +# target to generate assembly for a file +llama-vocab.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama-vocab.cpp.s +.PHONY : llama-vocab.cpp.s + +llama.o: llama.cpp.o +.PHONY : llama.o + +# target to build an object file +llama.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama.cpp.o +.PHONY : llama.cpp.o + +llama.i: llama.cpp.i +.PHONY : llama.i + +# target to preprocess a source file +llama.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama.cpp.i +.PHONY : llama.cpp.i + +llama.s: llama.cpp.s +.PHONY : llama.s + +# target to generate assembly for a file +llama.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/llama.cpp.s +.PHONY : llama.cpp.s + +unicode-data.o: unicode-data.cpp.o +.PHONY : unicode-data.o + +# target to build an object file +unicode-data.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/unicode-data.cpp.o +.PHONY : unicode-data.cpp.o + +unicode-data.i: unicode-data.cpp.i +.PHONY : unicode-data.i + +# target to preprocess a source file +unicode-data.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/unicode-data.cpp.i +.PHONY : unicode-data.cpp.i + +unicode-data.s: unicode-data.cpp.s +.PHONY : unicode-data.s + +# target to generate assembly for a file +unicode-data.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/unicode-data.cpp.s +.PHONY : unicode-data.cpp.s + +unicode.o: unicode.cpp.o +.PHONY : unicode.o + +# target to build an object file +unicode.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/unicode.cpp.o +.PHONY : unicode.cpp.o + +unicode.i: unicode.cpp.i +.PHONY : unicode.i + +# target to preprocess a source file +unicode.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/unicode.cpp.i +.PHONY : unicode.cpp.i + +unicode.s: unicode.cpp.s +.PHONY : unicode.s + +# target to generate assembly for a file +unicode.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f src/CMakeFiles/llama.dir/build.make src/CMakeFiles/llama.dir/unicode.cpp.s +.PHONY : unicode.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... llama" + @echo "... llama-grammar.o" + @echo "... llama-grammar.i" + @echo "... llama-grammar.s" + @echo "... llama-sampling.o" + @echo "... llama-sampling.i" + @echo "... llama-sampling.s" + @echo "... llama-vocab.o" + @echo "... llama-vocab.i" + @echo "... llama-vocab.s" + @echo "... llama.o" + @echo "... llama.i" + @echo "... llama.s" + @echo "... unicode-data.o" + @echo "... unicode-data.i" + @echo "... unicode-data.s" + @echo "... unicode.o" + @echo "... unicode.i" + @echo "... unicode.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/src/cmake_install.cmake b/llama.cpp/build/src/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6066d12fa419bee455d40796c6d0e83bc5290cce --- /dev/null +++ b/llama.cpp/build/src/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + diff --git a/llama.cpp/build/src/libllama.so b/llama.cpp/build/src/libllama.so new file mode 100644 index 0000000000000000000000000000000000000000..b905935caf8f4ab21a39da6999baa1d33059ce85 --- /dev/null +++ b/llama.cpp/build/src/libllama.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acfb4046499ce2c8c0c1a55d80563d86a907d9bc96f77cba97be3ad081b1af1b +size 1801880 diff --git a/llama.cpp/build/tests/CMakeFiles/CMakeDirectoryInformation.cmake b/llama.cpp/build/tests/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3e10a82c54f3b1a8b376e382ebe72235a4751a22 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/llama.cpp/build/tests/CMakeFiles/progress.marks b/llama.cpp/build/tests/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..95f9650f0151d7c0d3aecf40355d88effbd5b7a7 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/progress.marks @@ -0,0 +1 @@ +49 diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..74fc71ab76de6de9c28302823de4d7a48f4642fd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp" "tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o" "gcc" "tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..b85bc7ea31b88847c403e2ddd3aa6574990f0dc7 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-arg-parser.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-arg-parser.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-arg-parser.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-arg-parser.dir/flags.make + +tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o: tests/CMakeFiles/test-arg-parser.dir/flags.make +tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o: ../tests/test-arg-parser.cpp +tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o: tests/CMakeFiles/test-arg-parser.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o -MF CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o.d -o CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp" + +tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp" > CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.i + +tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp" -o CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.s + +tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o: tests/CMakeFiles/test-arg-parser.dir/flags.make +tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o: tests/CMakeFiles/test-arg-parser.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o -MF CMakeFiles/test-arg-parser.dir/get-model.cpp.o.d -o CMakeFiles/test-arg-parser.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-arg-parser.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-arg-parser.dir/get-model.cpp.i + +tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-arg-parser.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-arg-parser.dir/get-model.cpp.s + +# Object files for target test-arg-parser +test__arg__parser_OBJECTS = \ +"CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o" \ +"CMakeFiles/test-arg-parser.dir/get-model.cpp.o" + +# External object files for target test-arg-parser +test__arg__parser_EXTERNAL_OBJECTS = + +bin/test-arg-parser: tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o +bin/test-arg-parser: tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o +bin/test-arg-parser: tests/CMakeFiles/test-arg-parser.dir/build.make +bin/test-arg-parser: common/libcommon.a +bin/test-arg-parser: src/libllama.so +bin/test-arg-parser: ggml/src/libggml.so +bin/test-arg-parser: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-arg-parser: ggml/src/libggml-base.so +bin/test-arg-parser: tests/CMakeFiles/test-arg-parser.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-arg-parser" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-arg-parser.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-arg-parser.dir/build: bin/test-arg-parser +.PHONY : tests/CMakeFiles/test-arg-parser.dir/build + +tests/CMakeFiles/test-arg-parser.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-arg-parser.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-arg-parser.dir/clean + +tests/CMakeFiles/test-arg-parser.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-arg-parser.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5d4906c1e6b597b6caba9652f3567eb2bc61c25a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-arg-parser" + "../bin/test-arg-parser.pdb" + "CMakeFiles/test-arg-parser.dir/get-model.cpp.o" + "CMakeFiles/test-arg-parser.dir/get-model.cpp.o.d" + "CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o" + "CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-arg-parser.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4b5d0585cb46be49c444c62b7e42ee184a2ce53a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-arg-parser. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a730191022deeacb1fd3fbfbc6123822281d487c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-arg-parser. diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8e574621e48e1bfc1ec0d9161c12d6abbb72bba6 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-arg-parser. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f6a1b9073b168755a3b4c55d4cab4125e2f22383 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..c7b32b7902b3aedb0fa80b0cb1a3e9fd2694cdf9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o CMakeFiles/test-arg-parser.dir/get-model.cpp.o -o ../bin/test-arg-parser -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..f701ee4fc0642701982f3fa4a1ab6c57c9061011 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 71 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..02980934e8671656ae68c9b78ea5feea95b6508a Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..23f4bacf9cd7498d875e33f88b98544599caf729 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o.d @@ -0,0 +1,183 @@ +tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-arg-parser.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./arg.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/set \ + /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_set.h \ + /usr/include/c++/11/bits/stl_multiset.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/unordered_set \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_set.h /usr/include/c++/11/cassert \ + /usr/include/assert.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f056a16f12a76cc6dafd828b6879e5cd8bf2f2bd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp" "tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o" "gcc" "tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..802becf820e9dcfd75b64eec10fb2eab3b2a6367 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-autorelease.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-autorelease.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-autorelease.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-autorelease.dir/flags.make + +tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o: tests/CMakeFiles/test-autorelease.dir/flags.make +tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o: ../tests/test-autorelease.cpp +tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o: tests/CMakeFiles/test-autorelease.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o -MF CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o.d -o CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp" + +tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-autorelease.dir/test-autorelease.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp" > CMakeFiles/test-autorelease.dir/test-autorelease.cpp.i + +tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-autorelease.dir/test-autorelease.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp" -o CMakeFiles/test-autorelease.dir/test-autorelease.cpp.s + +tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o: tests/CMakeFiles/test-autorelease.dir/flags.make +tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o: tests/CMakeFiles/test-autorelease.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o -MF CMakeFiles/test-autorelease.dir/get-model.cpp.o.d -o CMakeFiles/test-autorelease.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-autorelease.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-autorelease.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-autorelease.dir/get-model.cpp.i + +tests/CMakeFiles/test-autorelease.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-autorelease.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-autorelease.dir/get-model.cpp.s + +# Object files for target test-autorelease +test__autorelease_OBJECTS = \ +"CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o" \ +"CMakeFiles/test-autorelease.dir/get-model.cpp.o" + +# External object files for target test-autorelease +test__autorelease_EXTERNAL_OBJECTS = + +bin/test-autorelease: tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o +bin/test-autorelease: tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o +bin/test-autorelease: tests/CMakeFiles/test-autorelease.dir/build.make +bin/test-autorelease: common/libcommon.a +bin/test-autorelease: src/libllama.so +bin/test-autorelease: ggml/src/libggml.so +bin/test-autorelease: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-autorelease: ggml/src/libggml-base.so +bin/test-autorelease: tests/CMakeFiles/test-autorelease.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-autorelease" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-autorelease.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-autorelease.dir/build: bin/test-autorelease +.PHONY : tests/CMakeFiles/test-autorelease.dir/build + +tests/CMakeFiles/test-autorelease.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-autorelease.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-autorelease.dir/clean + +tests/CMakeFiles/test-autorelease.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-autorelease.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5da4872363b1015a4a1e5c6bece2db00bb9aa1c6 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-autorelease" + "../bin/test-autorelease.pdb" + "CMakeFiles/test-autorelease.dir/get-model.cpp.o" + "CMakeFiles/test-autorelease.dir/get-model.cpp.o.d" + "CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o" + "CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-autorelease.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..bb2454236d7f54e81ed1f40d72e534012a14632b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-autorelease. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cb9a77ea6ea1048ce66eca26d025d13b4782d325 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-autorelease. diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..76e470c0f3b8b1a735d2adce00a28e88abfac2ee --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-autorelease. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..6973f8b94ca46cae0fb8f1c7cf5ca4f8a1f81f41 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..f3c525384dbf835da9378f27b65e38210f2e8b2b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o CMakeFiles/test-autorelease.dir/get-model.cpp.o -o ../bin/test-autorelease -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..ba3a0bedc664f97447b7a07f20e7e8bb65bb1749 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 72 +CMAKE_PROGRESS_2 = 73 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..acb59d2f8c34962d40979f6290e64c1ccde2d7bb Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..23481761e5925bad7623cea732ed4163094e4ff3 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o.d @@ -0,0 +1,152 @@ +tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-autorelease.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/tuple /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h /usr/include/c++/11/array \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..573d4bff14f74f24da2a60bde660fcfbcbf56910 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp" "tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o" "gcc" "tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..8959c136f29c558d853de8471f6bd37ab380efcd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-backend-ops.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-backend-ops.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-backend-ops.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-backend-ops.dir/flags.make + +tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o: tests/CMakeFiles/test-backend-ops.dir/flags.make +tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o: ../tests/test-backend-ops.cpp +tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o: tests/CMakeFiles/test-backend-ops.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o -MF CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o.d -o CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp" + +tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp" > CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.i + +tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp" -o CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.s + +tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o: tests/CMakeFiles/test-backend-ops.dir/flags.make +tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o: tests/CMakeFiles/test-backend-ops.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o -MF CMakeFiles/test-backend-ops.dir/get-model.cpp.o.d -o CMakeFiles/test-backend-ops.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-backend-ops.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-backend-ops.dir/get-model.cpp.i + +tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-backend-ops.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-backend-ops.dir/get-model.cpp.s + +# Object files for target test-backend-ops +test__backend__ops_OBJECTS = \ +"CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o" \ +"CMakeFiles/test-backend-ops.dir/get-model.cpp.o" + +# External object files for target test-backend-ops +test__backend__ops_EXTERNAL_OBJECTS = + +bin/test-backend-ops: tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o +bin/test-backend-ops: tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o +bin/test-backend-ops: tests/CMakeFiles/test-backend-ops.dir/build.make +bin/test-backend-ops: common/libcommon.a +bin/test-backend-ops: src/libllama.so +bin/test-backend-ops: ggml/src/libggml.so +bin/test-backend-ops: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-backend-ops: ggml/src/libggml-base.so +bin/test-backend-ops: tests/CMakeFiles/test-backend-ops.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-backend-ops" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-backend-ops.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-backend-ops.dir/build: bin/test-backend-ops +.PHONY : tests/CMakeFiles/test-backend-ops.dir/build + +tests/CMakeFiles/test-backend-ops.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-backend-ops.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-backend-ops.dir/clean + +tests/CMakeFiles/test-backend-ops.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-backend-ops.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f2703a7a8f88c2f057b548f42fc5cc54a5597a53 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-backend-ops" + "../bin/test-backend-ops.pdb" + "CMakeFiles/test-backend-ops.dir/get-model.cpp.o" + "CMakeFiles/test-backend-ops.dir/get-model.cpp.o.d" + "CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o" + "CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-backend-ops.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c817a6032d85ff5fbf644e2d0325c3b90c713ce7 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-backend-ops. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..4622e53c17bb903d7f4e4f5b68598e0f632d834d --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-backend-ops. diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4657357f12fceb7a48e1f9f567aeec38460ec3e9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-backend-ops. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..9740c0035061362d7a69803c272745bf2c921f56 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..96d9951ecb9552c9e6676f57fb36253fc9fa12c0 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o CMakeFiles/test-backend-ops.dir/get-model.cpp.o -o ../bin/test-backend-ops -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..386e9f5529fe92909859217c34fb959d022c16bd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 74 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 75 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f5186cc4c19055b6c3f5b2bfc9a7d603b41cea3a Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..06a2185775f8a53ba38236403b2dbc62a1c2510e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o.d @@ -0,0 +1,220 @@ +tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-backend-ops.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cfloat \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/float.h \ + /usr/include/c++/11/cstdint /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/cinttypes /usr/include/inttypes.h \ + /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/concurrence.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/random \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/random.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/opt_random.h \ + /usr/include/c++/11/bits/random.tcc /usr/include/c++/11/numeric \ + /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h \ + /usr/include/c++/11/stdlib.h /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/future \ + /usr/include/c++/11/mutex /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/bits/std_mutex.h \ + /usr/include/c++/11/bits/unique_lock.h \ + /usr/include/c++/11/condition_variable /usr/include/c++/11/atomic \ + /usr/include/c++/11/bits/atomic_futex.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..36cfc97a3ce025e651387c0d2fe36880fc325eee --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-barrier.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-barrier.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp" "tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o" "gcc" "tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c3a9a24118058e04f000c9a3157b82e59c183910 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-barrier.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-barrier.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-barrier.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-barrier.dir/flags.make + +tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o: tests/CMakeFiles/test-barrier.dir/flags.make +tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o: ../tests/test-barrier.cpp +tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o: tests/CMakeFiles/test-barrier.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o -MF CMakeFiles/test-barrier.dir/test-barrier.cpp.o.d -o CMakeFiles/test-barrier.dir/test-barrier.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp" + +tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-barrier.dir/test-barrier.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp" > CMakeFiles/test-barrier.dir/test-barrier.cpp.i + +tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-barrier.dir/test-barrier.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp" -o CMakeFiles/test-barrier.dir/test-barrier.cpp.s + +tests/CMakeFiles/test-barrier.dir/get-model.cpp.o: tests/CMakeFiles/test-barrier.dir/flags.make +tests/CMakeFiles/test-barrier.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-barrier.dir/get-model.cpp.o: tests/CMakeFiles/test-barrier.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-barrier.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-barrier.dir/get-model.cpp.o -MF CMakeFiles/test-barrier.dir/get-model.cpp.o.d -o CMakeFiles/test-barrier.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-barrier.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-barrier.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-barrier.dir/get-model.cpp.i + +tests/CMakeFiles/test-barrier.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-barrier.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-barrier.dir/get-model.cpp.s + +# Object files for target test-barrier +test__barrier_OBJECTS = \ +"CMakeFiles/test-barrier.dir/test-barrier.cpp.o" \ +"CMakeFiles/test-barrier.dir/get-model.cpp.o" + +# External object files for target test-barrier +test__barrier_EXTERNAL_OBJECTS = + +bin/test-barrier: tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o +bin/test-barrier: tests/CMakeFiles/test-barrier.dir/get-model.cpp.o +bin/test-barrier: tests/CMakeFiles/test-barrier.dir/build.make +bin/test-barrier: common/libcommon.a +bin/test-barrier: src/libllama.so +bin/test-barrier: ggml/src/libggml.so +bin/test-barrier: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-barrier: ggml/src/libggml-base.so +bin/test-barrier: tests/CMakeFiles/test-barrier.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-barrier" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-barrier.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-barrier.dir/build: bin/test-barrier +.PHONY : tests/CMakeFiles/test-barrier.dir/build + +tests/CMakeFiles/test-barrier.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-barrier.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-barrier.dir/clean + +tests/CMakeFiles/test-barrier.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-barrier.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..dc4d9559392c623a4cec0ed611017649805a842e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-barrier" + "../bin/test-barrier.pdb" + "CMakeFiles/test-barrier.dir/get-model.cpp.o" + "CMakeFiles/test-barrier.dir/get-model.cpp.o.d" + "CMakeFiles/test-barrier.dir/test-barrier.cpp.o" + "CMakeFiles/test-barrier.dir/test-barrier.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-barrier.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..2ab9eab7de55667992c54593c9fbda5c0550ed6a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-barrier. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5d72a19eb5be2f3f3eac6ecae8b5f89a3b547bf --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-barrier. diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..04491ce478e6640dd20cd8f141b14271c45d15af --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-barrier. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..fe3d7aa063b411151857c35b21af3a7c5963810a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-barrier.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..d844b57ffedd6af2b3e25a9adaeba4d6026257c5 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-barrier.dir/test-barrier.cpp.o CMakeFiles/test-barrier.dir/get-model.cpp.o -o ../bin/test-barrier -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..d1725e5d08b7089375149c072d02b7cf46f2e9f6 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 76 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a3094377876e7af3c69ccae4d7dad5551b750363 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..bd87d4b9ad8294095e2581f8599c71333199e06b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o.d @@ -0,0 +1,168 @@ +tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-barrier.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/type_traits \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/c++/11/iostream \ + /usr/include/c++/11/ostream /usr/include/c++/11/ios \ + /usr/include/c++/11/iosfwd /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/stl_pair.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc \ + /usr/include/c++/11/bits/ostream.tcc /usr/include/c++/11/istream \ + /usr/include/c++/11/bits/istream.tcc /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-c.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e7db9ffea09d5f2842dd066f0e44f6b126728435 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/DependInfo.cmake @@ -0,0 +1,23 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c" "tests/CMakeFiles/test-c.dir/test-c.c.o" "gcc" "tests/CMakeFiles/test-c.dir/test-c.c.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-c.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..595e4edb8db64989bb8b904e7669ee18cc46c87b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/build.make @@ -0,0 +1,114 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-c.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-c.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-c.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-c.dir/flags.make + +tests/CMakeFiles/test-c.dir/test-c.c.o: tests/CMakeFiles/test-c.dir/flags.make +tests/CMakeFiles/test-c.dir/test-c.c.o: ../tests/test-c.c +tests/CMakeFiles/test-c.dir/test-c.c.o: tests/CMakeFiles/test-c.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building C object tests/CMakeFiles/test-c.dir/test-c.c.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT tests/CMakeFiles/test-c.dir/test-c.c.o -MF CMakeFiles/test-c.dir/test-c.c.o.d -o CMakeFiles/test-c.dir/test-c.c.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c" + +tests/CMakeFiles/test-c.dir/test-c.c.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/test-c.dir/test-c.c.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c" > CMakeFiles/test-c.dir/test-c.c.i + +tests/CMakeFiles/test-c.dir/test-c.c.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/test-c.dir/test-c.c.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c" -o CMakeFiles/test-c.dir/test-c.c.s + +# Object files for target test-c +test__c_OBJECTS = \ +"CMakeFiles/test-c.dir/test-c.c.o" + +# External object files for target test-c +test__c_EXTERNAL_OBJECTS = + +bin/test-c: tests/CMakeFiles/test-c.dir/test-c.c.o +bin/test-c: tests/CMakeFiles/test-c.dir/build.make +bin/test-c: src/libllama.so +bin/test-c: ggml/src/libggml.so +bin/test-c: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-c: ggml/src/libggml-base.so +bin/test-c: tests/CMakeFiles/test-c.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking C executable ../bin/test-c" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-c.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-c.dir/build: bin/test-c +.PHONY : tests/CMakeFiles/test-c.dir/build + +tests/CMakeFiles/test-c.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-c.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-c.dir/clean + +tests/CMakeFiles/test-c.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-c.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-c.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-c.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..45ef454def60d69f30de6448832fc2c6c1ac9ae8 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/test-c" + "../bin/test-c.pdb" + "CMakeFiles/test-c.dir/test-c.c.o" + "CMakeFiles/test-c.dir/test-c.c.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang C) + include(CMakeFiles/test-c.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-c.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a1418209dd2b486c8d301620b5c1a5f75127bcda --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-c. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-c.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..fbbb420701e0d0901e286c8e15a32cf7986b03df --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-c. diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-c.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c00313462eebcd85523d69b34be45fa0957e0c05 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-c. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-c.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..3349ebf3dc834645413d99837fdd365d9a0e2935 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile C with /usr/bin/cc +C_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +C_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +C_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-c.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..85a8bf2dbd5ef2e6782d864f8af2df3b334afc68 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/cc -O3 -DNDEBUG CMakeFiles/test-c.dir/test-c.c.o -o ../bin/test-c -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu" ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-c.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..ee7811fe36f39024471314df70136dd8ae54d9e9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 77 +CMAKE_PROGRESS_2 = 78 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/test-c.c.o b/llama.cpp/build/tests/CMakeFiles/test-c.dir/test-c.c.o new file mode 100644 index 0000000000000000000000000000000000000000..9930a602cc7c67b2052ecf05d8ffa8fb2cbe68b1 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-c.dir/test-c.c.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-c.dir/test-c.c.o.d b/llama.cpp/build/tests/CMakeFiles/test-c.dir/test-c.c.o.d new file mode 100644 index 0000000000000000000000000000000000000000..f0d313758d7bd650539af1cd38179f6514d98088 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-c.dir/test-c.c.o.d @@ -0,0 +1,37 @@ +tests/CMakeFiles/test-c.dir/test-c.c.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-c.c \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7c609b71b7e984c0744bf95133248be6385a6ef7 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp" "tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o" "gcc" "tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..9d6ff8e34ea7fb65e1ff6c609f0de916a38c8e9d --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-chat-template.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-chat-template.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-chat-template.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-chat-template.dir/flags.make + +tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o: tests/CMakeFiles/test-chat-template.dir/flags.make +tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o: ../tests/test-chat-template.cpp +tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o: tests/CMakeFiles/test-chat-template.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o -MF CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o.d -o CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp" + +tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-chat-template.dir/test-chat-template.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp" > CMakeFiles/test-chat-template.dir/test-chat-template.cpp.i + +tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-chat-template.dir/test-chat-template.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp" -o CMakeFiles/test-chat-template.dir/test-chat-template.cpp.s + +tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o: tests/CMakeFiles/test-chat-template.dir/flags.make +tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o: tests/CMakeFiles/test-chat-template.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o -MF CMakeFiles/test-chat-template.dir/get-model.cpp.o.d -o CMakeFiles/test-chat-template.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-chat-template.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-chat-template.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-chat-template.dir/get-model.cpp.i + +tests/CMakeFiles/test-chat-template.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-chat-template.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-chat-template.dir/get-model.cpp.s + +# Object files for target test-chat-template +test__chat__template_OBJECTS = \ +"CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o" \ +"CMakeFiles/test-chat-template.dir/get-model.cpp.o" + +# External object files for target test-chat-template +test__chat__template_EXTERNAL_OBJECTS = + +bin/test-chat-template: tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o +bin/test-chat-template: tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o +bin/test-chat-template: tests/CMakeFiles/test-chat-template.dir/build.make +bin/test-chat-template: common/libcommon.a +bin/test-chat-template: src/libllama.so +bin/test-chat-template: ggml/src/libggml.so +bin/test-chat-template: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-chat-template: ggml/src/libggml-base.so +bin/test-chat-template: tests/CMakeFiles/test-chat-template.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-chat-template" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-chat-template.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-chat-template.dir/build: bin/test-chat-template +.PHONY : tests/CMakeFiles/test-chat-template.dir/build + +tests/CMakeFiles/test-chat-template.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-chat-template.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-chat-template.dir/clean + +tests/CMakeFiles/test-chat-template.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-chat-template.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e4e25f767c5d9d53731fdce0fe974fefe340346d --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-chat-template" + "../bin/test-chat-template.pdb" + "CMakeFiles/test-chat-template.dir/get-model.cpp.o" + "CMakeFiles/test-chat-template.dir/get-model.cpp.o.d" + "CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o" + "CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-chat-template.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8e6e7541bfc036171f2999a2bbd5b555e525f6fd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-chat-template. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..c95e1f999656e7a4e0bcb3f0d312da252a380eb9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-chat-template. diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6171b5b2a97ff96f429bb88224398dc2deafb329 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-chat-template. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..e1f924cd8503e8f5c3e33887a1621e5537ed7401 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..e3a8a35d6e9d05feef7e3bd5ad4e0808a8d76722 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o CMakeFiles/test-chat-template.dir/get-model.cpp.o -o ../bin/test-chat-template -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..12e8c0147cfb58944c067d7ae378af20f87aa017 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 79 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0bf6c49d4b5c6721fe2e121ff9562076dc33deed Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..1f0c221b37186bf2927f898f7d9237427586d812 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o.d @@ -0,0 +1,168 @@ +tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-chat-template.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/cassert \ + /usr/include/assert.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..54c8b2f539192c38fab2b81d51a164b385aec3f2 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp" "tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o" "gcc" "tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f3fdf340301ed9baf1ea18f9ffb45f6c14d09745 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-grammar-integration.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-grammar-integration.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-grammar-integration.dir/flags.make + +tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o: tests/CMakeFiles/test-grammar-integration.dir/flags.make +tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o: ../tests/test-grammar-integration.cpp +tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o: tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o -MF CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o.d -o CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp" + +tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp" > CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.i + +tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp" -o CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.s + +tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o: tests/CMakeFiles/test-grammar-integration.dir/flags.make +tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o: tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o -MF CMakeFiles/test-grammar-integration.dir/get-model.cpp.o.d -o CMakeFiles/test-grammar-integration.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-grammar-integration.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-grammar-integration.dir/get-model.cpp.i + +tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-grammar-integration.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-grammar-integration.dir/get-model.cpp.s + +# Object files for target test-grammar-integration +test__grammar__integration_OBJECTS = \ +"CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o" \ +"CMakeFiles/test-grammar-integration.dir/get-model.cpp.o" + +# External object files for target test-grammar-integration +test__grammar__integration_EXTERNAL_OBJECTS = + +bin/test-grammar-integration: tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o +bin/test-grammar-integration: tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o +bin/test-grammar-integration: tests/CMakeFiles/test-grammar-integration.dir/build.make +bin/test-grammar-integration: common/libcommon.a +bin/test-grammar-integration: src/libllama.so +bin/test-grammar-integration: ggml/src/libggml.so +bin/test-grammar-integration: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-grammar-integration: ggml/src/libggml-base.so +bin/test-grammar-integration: tests/CMakeFiles/test-grammar-integration.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-grammar-integration" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-grammar-integration.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-grammar-integration.dir/build: bin/test-grammar-integration +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/build + +tests/CMakeFiles/test-grammar-integration.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-grammar-integration.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/clean + +tests/CMakeFiles/test-grammar-integration.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7799b4700d93da647f2d95c4fb046cea46a2b205 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-grammar-integration" + "../bin/test-grammar-integration.pdb" + "CMakeFiles/test-grammar-integration.dir/get-model.cpp.o" + "CMakeFiles/test-grammar-integration.dir/get-model.cpp.o.d" + "CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o" + "CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-grammar-integration.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..4ecefbabbfbd4751e30a40496dd39b0ff3e59eaf --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-grammar-integration. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cf7c3eeb9acf107470999f40e534ac64a8afae47 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-grammar-integration. diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b6fbfd5641cd87d84d46ba334562fc7325bbfbd9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-grammar-integration. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..df9c40ece865616dd1be04b6ff0395571621d7e0 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a5b7524c5edc67f25152e760094138465ad4ccdc --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o CMakeFiles/test-grammar-integration.dir/get-model.cpp.o -o ../bin/test-grammar-integration -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..deb08006ab30c2ebea7b6bfd1c8fc0ec61fef2ae --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 80 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 81 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4c0cb16046fa8f5ee3f34c964b1f146dfc70ddea Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ba0e03b6193cce75ae6f033fc137506011479379 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o.d @@ -0,0 +1,258 @@ +tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-integration.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./unicode.h \ + /usr/include/c++/11/cstdint \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h \ + /usr/include/c++/11/string /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json-schema-to-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json.hpp \ + /usr/include/c++/11/algorithm /usr/include/c++/11/bits/stl_algo.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstddef \ + /usr/include/c++/11/iterator /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/bits/streambuf.tcc /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/include/c++/11/forward_list /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/valarray \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/valarray_array.h \ + /usr/include/c++/11/bits/valarray_array.tcc \ + /usr/include/c++/11/bits/valarray_before.h \ + /usr/include/c++/11/bits/slice_array.h \ + /usr/include/c++/11/bits/valarray_after.h \ + /usr/include/c++/11/bits/gslice.h \ + /usr/include/c++/11/bits/gslice_array.h \ + /usr/include/c++/11/bits/mask_array.h \ + /usr/include/c++/11/bits/indirect_array.h /usr/include/c++/11/version \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h /usr/include/c++/11/iomanip \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/numeric /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/any \ + /usr/include/c++/11/cassert /usr/include/assert.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0ea3723306123b2ded2042dc5ac728b4d0882773 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp" "tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o" "gcc" "tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..a418d343dfa40325d57c823da744e5014d4d278f --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-grammar-parser.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-grammar-parser.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-grammar-parser.dir/flags.make + +tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o: tests/CMakeFiles/test-grammar-parser.dir/flags.make +tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o: ../tests/test-grammar-parser.cpp +tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o: tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o -MF CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o.d -o CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp" + +tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp" > CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.i + +tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp" -o CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.s + +tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o: tests/CMakeFiles/test-grammar-parser.dir/flags.make +tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o: tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o -MF CMakeFiles/test-grammar-parser.dir/get-model.cpp.o.d -o CMakeFiles/test-grammar-parser.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-grammar-parser.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-grammar-parser.dir/get-model.cpp.i + +tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-grammar-parser.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-grammar-parser.dir/get-model.cpp.s + +# Object files for target test-grammar-parser +test__grammar__parser_OBJECTS = \ +"CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o" \ +"CMakeFiles/test-grammar-parser.dir/get-model.cpp.o" + +# External object files for target test-grammar-parser +test__grammar__parser_EXTERNAL_OBJECTS = + +bin/test-grammar-parser: tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o +bin/test-grammar-parser: tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o +bin/test-grammar-parser: tests/CMakeFiles/test-grammar-parser.dir/build.make +bin/test-grammar-parser: common/libcommon.a +bin/test-grammar-parser: src/libllama.so +bin/test-grammar-parser: ggml/src/libggml.so +bin/test-grammar-parser: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-grammar-parser: ggml/src/libggml-base.so +bin/test-grammar-parser: tests/CMakeFiles/test-grammar-parser.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-grammar-parser" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-grammar-parser.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-grammar-parser.dir/build: bin/test-grammar-parser +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/build + +tests/CMakeFiles/test-grammar-parser.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-grammar-parser.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/clean + +tests/CMakeFiles/test-grammar-parser.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..19382dbcb69a3b5875d7ca762f118752de1eca83 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-grammar-parser" + "../bin/test-grammar-parser.pdb" + "CMakeFiles/test-grammar-parser.dir/get-model.cpp.o" + "CMakeFiles/test-grammar-parser.dir/get-model.cpp.o.d" + "CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o" + "CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-grammar-parser.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d5cef81d80e2365c657c7c7889e0c04dbc5d2a6f --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-grammar-parser. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..9e14b645a769b406b5af27ddb2fb6588e551eb6b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-grammar-parser. diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..54baaaacd080cff172773d2042ce9bb0b152fc33 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-grammar-parser. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c37faa7cd23d78fde59c509d5b11a26871545ff6 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..038dbeb5bf2b670ec17ea012daada25e60c465aa --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o CMakeFiles/test-grammar-parser.dir/get-model.cpp.o -o ../bin/test-grammar-parser -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..44a35bbe9aa5c72c2a54761d6e7b8fd30fb5ad9e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 82 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d8d7d4ef4fe955e50cefcaaf2863a95e7e5f78fc Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..b7ef0dc57e47381d42d36d65f05d6d5d1749acdc --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o.d @@ -0,0 +1,160 @@ +tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-grammar-parser.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-impl.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/cassert \ + /usr/include/assert.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8181a134832655ad54c61eaf815061f653566795 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp" "tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o" "gcc" "tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..42a710d805f1c18b524418ff8d69ab146c0ae8e3 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-json-schema-to-grammar.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-json-schema-to-grammar.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-json-schema-to-grammar.dir/flags.make + +tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o: tests/CMakeFiles/test-json-schema-to-grammar.dir/flags.make +tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o: ../tests/test-json-schema-to-grammar.cpp +tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o: tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o -MF CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o.d -o CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp" + +tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp" > CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.i + +tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp" -o CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.s + +tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o: tests/CMakeFiles/test-json-schema-to-grammar.dir/flags.make +tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o: tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o -MF CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o.d -o CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.i + +tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.s + +# Object files for target test-json-schema-to-grammar +test__json__schema__to__grammar_OBJECTS = \ +"CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o" \ +"CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o" + +# External object files for target test-json-schema-to-grammar +test__json__schema__to__grammar_EXTERNAL_OBJECTS = + +bin/test-json-schema-to-grammar: tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o +bin/test-json-schema-to-grammar: tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o +bin/test-json-schema-to-grammar: tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make +bin/test-json-schema-to-grammar: common/libcommon.a +bin/test-json-schema-to-grammar: src/libllama.so +bin/test-json-schema-to-grammar: ggml/src/libggml.so +bin/test-json-schema-to-grammar: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-json-schema-to-grammar: ggml/src/libggml-base.so +bin/test-json-schema-to-grammar: tests/CMakeFiles/test-json-schema-to-grammar.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-json-schema-to-grammar" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-json-schema-to-grammar.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-json-schema-to-grammar.dir/build: bin/test-json-schema-to-grammar +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/build + +tests/CMakeFiles/test-json-schema-to-grammar.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-json-schema-to-grammar.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/clean + +tests/CMakeFiles/test-json-schema-to-grammar.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f982ff17d3cb09bd006c0697856945d8d58a470e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-json-schema-to-grammar" + "../bin/test-json-schema-to-grammar.pdb" + "CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o" + "CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o.d" + "CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o" + "CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-json-schema-to-grammar.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..8d6e7fde19145fc1dbe02d905dd6d3f2b0e095f2 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-json-schema-to-grammar. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..6f1ef54ee90da70e215a7bd0f12bd66140786b77 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-json-schema-to-grammar. diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..3663e2f1b7cb623a0da5288766d424e1ae5b1a06 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-json-schema-to-grammar. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..8470709958646f2634e2870457802d5bdacf95d2 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../examples/server" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..e973b7517d5224772f38f3e32ecd2db4a715487e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..1df401c19da78c9aca20c1fe73fb3561dde47fa7 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o -o ../bin/test-json-schema-to-grammar -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..17bb1bec4f3e2be810d8a630de8b97be62157fbf --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 83 +CMAKE_PROGRESS_2 = 84 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..557da544cd24e92c1ffd37a39bce15eb4d471c59 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..083c122ffde7630c402aa7505beab3e624b9396f --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o.d @@ -0,0 +1,272 @@ +tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-json-schema-to-grammar.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json-schema-to-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./json.hpp \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cstddef \ + /usr/include/c++/11/iosfwd /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/iterator \ + /usr/include/c++/11/bits/stream_iterator.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/c++/11/streambuf /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/bits/locale_classes.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/streambuf.tcc /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/concurrence.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h \ + /usr/include/c++/11/forward_list /usr/include/c++/11/bits/forward_list.h \ + /usr/include/c++/11/bits/forward_list.tcc /usr/include/c++/11/map \ + /usr/include/c++/11/bits/stl_tree.h /usr/include/c++/11/bits/stl_map.h \ + /usr/include/c++/11/bits/stl_multimap.h /usr/include/c++/11/valarray \ + /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc \ + /usr/include/c++/11/bits/valarray_array.h \ + /usr/include/c++/11/bits/valarray_array.tcc \ + /usr/include/c++/11/bits/valarray_before.h \ + /usr/include/c++/11/bits/slice_array.h \ + /usr/include/c++/11/bits/valarray_after.h \ + /usr/include/c++/11/bits/gslice.h \ + /usr/include/c++/11/bits/gslice_array.h \ + /usr/include/c++/11/bits/mask_array.h \ + /usr/include/c++/11/bits/indirect_array.h /usr/include/c++/11/version \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/filesystem /usr/include/c++/11/bits/fs_fwd.h \ + /usr/include/c++/11/chrono /usr/include/c++/11/ratio \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h \ + /usr/include/c++/11/bits/fs_path.h /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/locale_facets_nonio.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h /usr/include/c++/11/iomanip \ + /usr/include/c++/11/bits/quoted_string.h /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc /usr/include/c++/11/codecvt \ + /usr/include/c++/11/bits/fs_dir.h /usr/include/c++/11/bits/fs_ops.h \ + /usr/include/c++/11/numeric /usr/include/c++/11/bits/stl_numeric.h \ + /usr/include/c++/11/pstl/glue_numeric_defs.h /usr/include/c++/11/any \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-impl.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/fstream \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/regex \ + /usr/include/c++/11/bitset /usr/include/c++/11/stack \ + /usr/include/c++/11/deque /usr/include/c++/11/bits/stl_deque.h \ + /usr/include/c++/11/bits/deque.tcc /usr/include/c++/11/bits/stl_stack.h \ + /usr/include/c++/11/bits/regex_constants.h \ + /usr/include/c++/11/bits/regex_error.h \ + /usr/include/c++/11/bits/regex_automaton.h \ + /usr/include/c++/11/bits/regex_automaton.tcc \ + /usr/include/c++/11/bits/regex_scanner.h \ + /usr/include/c++/11/bits/regex_scanner.tcc \ + /usr/include/c++/11/bits/regex_compiler.h \ + /usr/include/c++/11/bits/regex_compiler.tcc \ + /usr/include/c++/11/bits/regex.h /usr/include/c++/11/bits/regex.tcc \ + /usr/include/c++/11/bits/regex_executor.h \ + /usr/include/c++/11/bits/regex_executor.tcc diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d1e18ec8ee0916cec9f2c18778794cadd1cf8513 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp" "tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o" "gcc" "tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..545c19b8fcefdeb9e26f7770323e6e094703fe16 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-llama-grammar.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-llama-grammar.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-llama-grammar.dir/flags.make + +tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o: tests/CMakeFiles/test-llama-grammar.dir/flags.make +tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o: ../tests/test-llama-grammar.cpp +tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o: tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o -MF CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o.d -o CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp" + +tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp" > CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.i + +tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp" -o CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.s + +tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o: tests/CMakeFiles/test-llama-grammar.dir/flags.make +tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o: tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o -MF CMakeFiles/test-llama-grammar.dir/get-model.cpp.o.d -o CMakeFiles/test-llama-grammar.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-llama-grammar.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-llama-grammar.dir/get-model.cpp.i + +tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-llama-grammar.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-llama-grammar.dir/get-model.cpp.s + +# Object files for target test-llama-grammar +test__llama__grammar_OBJECTS = \ +"CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o" \ +"CMakeFiles/test-llama-grammar.dir/get-model.cpp.o" + +# External object files for target test-llama-grammar +test__llama__grammar_EXTERNAL_OBJECTS = + +bin/test-llama-grammar: tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o +bin/test-llama-grammar: tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o +bin/test-llama-grammar: tests/CMakeFiles/test-llama-grammar.dir/build.make +bin/test-llama-grammar: common/libcommon.a +bin/test-llama-grammar: src/libllama.so +bin/test-llama-grammar: ggml/src/libggml.so +bin/test-llama-grammar: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-llama-grammar: ggml/src/libggml-base.so +bin/test-llama-grammar: tests/CMakeFiles/test-llama-grammar.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-llama-grammar" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-llama-grammar.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-llama-grammar.dir/build: bin/test-llama-grammar +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/build + +tests/CMakeFiles/test-llama-grammar.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-llama-grammar.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/clean + +tests/CMakeFiles/test-llama-grammar.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..19047f487421b6ff762ffcadca500c8a9dd6ba4b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-llama-grammar" + "../bin/test-llama-grammar.pdb" + "CMakeFiles/test-llama-grammar.dir/get-model.cpp.o" + "CMakeFiles/test-llama-grammar.dir/get-model.cpp.o.d" + "CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o" + "CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-llama-grammar.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..7f309a3ae810aff099d3a8056da96afc8813e8a1 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-llama-grammar. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..02d8c20ae8eb87c7a54dd0b45122dd2f5bdf739a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-llama-grammar. diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..19c13a14f5f4496755df0aaa932619372d64a91d --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-llama-grammar. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c3c9c8887193392d2b7ab18b3716441bfa8dd6fb --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..fa033fc77cd11e9ce95ef5c389532b312c6b302d --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o CMakeFiles/test-llama-grammar.dir/get-model.cpp.o -o ../bin/test-llama-grammar -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..aa650acbe4529bedd44101d13d3019187a54b523 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 85 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 86 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..caeb0fb26fb900c0b3a7239062ecba6503248c9e Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..eb5c61b90c358b04fecee4dd71466382ed9ab985 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o.d @@ -0,0 +1,160 @@ +tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-llama-grammar.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-grammar.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./llama-impl.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/stdexcept \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/cassert \ + /usr/include/assert.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-log.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ec530d451ccab1be514bde80318aaef4b7bf4500 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-log.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-log.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp" "tests/CMakeFiles/test-log.dir/test-log.cpp.o" "gcc" "tests/CMakeFiles/test-log.dir/test-log.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-log.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..f07cb053df519184efcd7f4203599c52a6b033e1 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-log.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-log.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-log.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-log.dir/flags.make + +tests/CMakeFiles/test-log.dir/test-log.cpp.o: tests/CMakeFiles/test-log.dir/flags.make +tests/CMakeFiles/test-log.dir/test-log.cpp.o: ../tests/test-log.cpp +tests/CMakeFiles/test-log.dir/test-log.cpp.o: tests/CMakeFiles/test-log.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-log.dir/test-log.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-log.dir/test-log.cpp.o -MF CMakeFiles/test-log.dir/test-log.cpp.o.d -o CMakeFiles/test-log.dir/test-log.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp" + +tests/CMakeFiles/test-log.dir/test-log.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-log.dir/test-log.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp" > CMakeFiles/test-log.dir/test-log.cpp.i + +tests/CMakeFiles/test-log.dir/test-log.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-log.dir/test-log.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp" -o CMakeFiles/test-log.dir/test-log.cpp.s + +tests/CMakeFiles/test-log.dir/get-model.cpp.o: tests/CMakeFiles/test-log.dir/flags.make +tests/CMakeFiles/test-log.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-log.dir/get-model.cpp.o: tests/CMakeFiles/test-log.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-log.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-log.dir/get-model.cpp.o -MF CMakeFiles/test-log.dir/get-model.cpp.o.d -o CMakeFiles/test-log.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-log.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-log.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-log.dir/get-model.cpp.i + +tests/CMakeFiles/test-log.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-log.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-log.dir/get-model.cpp.s + +# Object files for target test-log +test__log_OBJECTS = \ +"CMakeFiles/test-log.dir/test-log.cpp.o" \ +"CMakeFiles/test-log.dir/get-model.cpp.o" + +# External object files for target test-log +test__log_EXTERNAL_OBJECTS = + +bin/test-log: tests/CMakeFiles/test-log.dir/test-log.cpp.o +bin/test-log: tests/CMakeFiles/test-log.dir/get-model.cpp.o +bin/test-log: tests/CMakeFiles/test-log.dir/build.make +bin/test-log: common/libcommon.a +bin/test-log: src/libllama.so +bin/test-log: ggml/src/libggml.so +bin/test-log: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-log: ggml/src/libggml-base.so +bin/test-log: tests/CMakeFiles/test-log.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-log" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-log.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-log.dir/build: bin/test-log +.PHONY : tests/CMakeFiles/test-log.dir/build + +tests/CMakeFiles/test-log.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-log.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-log.dir/clean + +tests/CMakeFiles/test-log.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-log.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-log.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-log.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..90eb7304e3ec940303384c5a4a8d6799ea47ebab --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-log" + "../bin/test-log.pdb" + "CMakeFiles/test-log.dir/get-model.cpp.o" + "CMakeFiles/test-log.dir/get-model.cpp.o.d" + "CMakeFiles/test-log.dir/test-log.cpp.o" + "CMakeFiles/test-log.dir/test-log.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-log.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-log.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..410c55e0f738c1b7c677f85d79e8610365d5db1e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-log. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-log.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..87602ba836b8d2430fb5bc973a33fce9e1ff8cec --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-log. diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-log.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c200fc0cfe9efc16270de3b2df118569fd1ac6d9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-log. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-log.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-log.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-log.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-log.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..27bdf05a12c947cf8fc9eb599034b715f7947d01 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-log.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-log.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..30cd00f0d1f2c49dd1f32ac7f0fc75da984f1c0f --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-log.dir/test-log.cpp.o CMakeFiles/test-log.dir/get-model.cpp.o -o ../bin/test-log -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-log.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..0f81feda76f36875fed2be475467084d51bd023e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 87 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/test-log.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-log.dir/test-log.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..2d08e8a39e63e761515dfc80b45ac360a100705d Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-log.dir/test-log.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-log.dir/test-log.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-log.dir/test-log.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..53f7d72cf0b95033272fd09abb7dce37cb3d7d54 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-log.dir/test-log.cpp.o.d @@ -0,0 +1,127 @@ +tests/CMakeFiles/test-log.dir/test-log.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-log.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./log.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/new /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/nested_exception.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/array /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/cstdint \ + /usr/include/c++/11/limits /usr/include/c++/11/ctime \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c8e1415ba756604fc9aac947d5f87565a5fd25e3 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp" "tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o" "gcc" "tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..393499f98b3fa8a63503a918eef97b02e0c536e2 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-model-load-cancel.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-model-load-cancel.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-model-load-cancel.dir/flags.make + +tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o: tests/CMakeFiles/test-model-load-cancel.dir/flags.make +tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o: ../tests/test-model-load-cancel.cpp +tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o: tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o -MF CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o.d -o CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp" + +tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp" > CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.i + +tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp" -o CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.s + +tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o: tests/CMakeFiles/test-model-load-cancel.dir/flags.make +tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o: tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o -MF CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o.d -o CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-model-load-cancel.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-model-load-cancel.dir/get-model.cpp.i + +tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-model-load-cancel.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-model-load-cancel.dir/get-model.cpp.s + +# Object files for target test-model-load-cancel +test__model__load__cancel_OBJECTS = \ +"CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o" \ +"CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o" + +# External object files for target test-model-load-cancel +test__model__load__cancel_EXTERNAL_OBJECTS = + +bin/test-model-load-cancel: tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o +bin/test-model-load-cancel: tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o +bin/test-model-load-cancel: tests/CMakeFiles/test-model-load-cancel.dir/build.make +bin/test-model-load-cancel: common/libcommon.a +bin/test-model-load-cancel: src/libllama.so +bin/test-model-load-cancel: ggml/src/libggml.so +bin/test-model-load-cancel: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-model-load-cancel: ggml/src/libggml-base.so +bin/test-model-load-cancel: tests/CMakeFiles/test-model-load-cancel.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-model-load-cancel" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-model-load-cancel.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-model-load-cancel.dir/build: bin/test-model-load-cancel +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/build + +tests/CMakeFiles/test-model-load-cancel.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-model-load-cancel.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/clean + +tests/CMakeFiles/test-model-load-cancel.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..95785fc47f0460ae3cd471c916af1573333301a9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-model-load-cancel" + "../bin/test-model-load-cancel.pdb" + "CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o" + "CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o.d" + "CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o" + "CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-model-load-cancel.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a539b0ffa3fcd04b3726815f8f7724635fb8b788 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-model-load-cancel. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..166ca748e6d86134fbdffa00b66a3db84cff3899 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-model-load-cancel. diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..d2f692cef18ca55d69c6ae19fb3198bb6f775bcd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-model-load-cancel. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4356526545ba15577526dbe9c2eb857feb4e7ffd --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..5f3b9a8d4c1316c0a39ee585419a933964f59cd9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o -o ../bin/test-model-load-cancel -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..cae514d926f918894dfea05fe5f4cf5ae5629fb5 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 88 +CMAKE_PROGRESS_2 = 89 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d897b7f12ab3bd0c04e1a85f9133338b8c7374c9 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..c7a29edad93ff82c1669b28425ac13cb74a465a9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o.d @@ -0,0 +1,74 @@ +tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-model-load-cancel.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h \ + /usr/include/c++/11/cstdlib \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..25edb3b2dde4fb76cb252409648585f7cd8d5567 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp" "tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o" "gcc" "tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..55ecc4f3279627d77596700d738a0edff47a31e8 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-quantize-fns.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-quantize-fns.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-quantize-fns.dir/flags.make + +tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o: tests/CMakeFiles/test-quantize-fns.dir/flags.make +tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o: ../tests/test-quantize-fns.cpp +tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o: tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o -MF CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o.d -o CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp" + +tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp" > CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.i + +tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp" -o CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.s + +tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o: tests/CMakeFiles/test-quantize-fns.dir/flags.make +tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o: tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o -MF CMakeFiles/test-quantize-fns.dir/get-model.cpp.o.d -o CMakeFiles/test-quantize-fns.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-quantize-fns.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-quantize-fns.dir/get-model.cpp.i + +tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-quantize-fns.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-quantize-fns.dir/get-model.cpp.s + +# Object files for target test-quantize-fns +test__quantize__fns_OBJECTS = \ +"CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o" \ +"CMakeFiles/test-quantize-fns.dir/get-model.cpp.o" + +# External object files for target test-quantize-fns +test__quantize__fns_EXTERNAL_OBJECTS = + +bin/test-quantize-fns: tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o +bin/test-quantize-fns: tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o +bin/test-quantize-fns: tests/CMakeFiles/test-quantize-fns.dir/build.make +bin/test-quantize-fns: common/libcommon.a +bin/test-quantize-fns: src/libllama.so +bin/test-quantize-fns: ggml/src/libggml.so +bin/test-quantize-fns: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-quantize-fns: ggml/src/libggml-base.so +bin/test-quantize-fns: tests/CMakeFiles/test-quantize-fns.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-quantize-fns" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-quantize-fns.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-quantize-fns.dir/build: bin/test-quantize-fns +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/build + +tests/CMakeFiles/test-quantize-fns.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-quantize-fns.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/clean + +tests/CMakeFiles/test-quantize-fns.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8aa59e9e366011f84830280372037d8f8b4a7e66 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-quantize-fns" + "../bin/test-quantize-fns.pdb" + "CMakeFiles/test-quantize-fns.dir/get-model.cpp.o" + "CMakeFiles/test-quantize-fns.dir/get-model.cpp.o.d" + "CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o" + "CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-quantize-fns.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..696e1c424a294b7b9d56354ac6e5b0f90c91303f --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-quantize-fns. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..cd8c1749b8998b9031f8abdbf0610289abb1281c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-quantize-fns. diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..cddf3b30462b3ec7c01da6d017800e8361d23c02 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-quantize-fns. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..1e58643fb10e957270a8e9f4cba53f018a26ddc6 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..5578d1ecb642294d9b4bd8e6e12dfc39bc8b13f8 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o CMakeFiles/test-quantize-fns.dir/get-model.cpp.o -o ../bin/test-quantize-fns -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..fa35c6a68546f66cd366388e30eb11d99f78a3ef --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 90 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 91 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4501a0d873d66c793c48b8990c9b52d0064df73c Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..9c33ed3253e09dd30a1e0b1278348187bf1b27a9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o.d @@ -0,0 +1,167 @@ +tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-fns.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/assert.h /usr/include/c++/11/math.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/string \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/c++/11/cstdio /usr/include/c++/11/cerrno \ + /usr/include/errno.h /usr/include/x86_64-linux-gnu/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9fa7a21a51fb60f348e87d68516796ec86ab8d38 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp" "tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o" "gcc" "tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..c2568196456e2237a84d8b0cf81b50344a06e8f3 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-quantize-perf.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-quantize-perf.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-quantize-perf.dir/flags.make + +tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o: tests/CMakeFiles/test-quantize-perf.dir/flags.make +tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o: ../tests/test-quantize-perf.cpp +tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o: tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o -MF CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o.d -o CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp" + +tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp" > CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.i + +tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp" -o CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.s + +tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o: tests/CMakeFiles/test-quantize-perf.dir/flags.make +tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o: tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o -MF CMakeFiles/test-quantize-perf.dir/get-model.cpp.o.d -o CMakeFiles/test-quantize-perf.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-quantize-perf.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-quantize-perf.dir/get-model.cpp.i + +tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-quantize-perf.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-quantize-perf.dir/get-model.cpp.s + +# Object files for target test-quantize-perf +test__quantize__perf_OBJECTS = \ +"CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o" \ +"CMakeFiles/test-quantize-perf.dir/get-model.cpp.o" + +# External object files for target test-quantize-perf +test__quantize__perf_EXTERNAL_OBJECTS = + +bin/test-quantize-perf: tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o +bin/test-quantize-perf: tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o +bin/test-quantize-perf: tests/CMakeFiles/test-quantize-perf.dir/build.make +bin/test-quantize-perf: common/libcommon.a +bin/test-quantize-perf: src/libllama.so +bin/test-quantize-perf: ggml/src/libggml.so +bin/test-quantize-perf: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-quantize-perf: ggml/src/libggml-base.so +bin/test-quantize-perf: tests/CMakeFiles/test-quantize-perf.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-quantize-perf" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-quantize-perf.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-quantize-perf.dir/build: bin/test-quantize-perf +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/build + +tests/CMakeFiles/test-quantize-perf.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-quantize-perf.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/clean + +tests/CMakeFiles/test-quantize-perf.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..315b24c10ea273be7233210a549309787e651727 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-quantize-perf" + "../bin/test-quantize-perf.pdb" + "CMakeFiles/test-quantize-perf.dir/get-model.cpp.o" + "CMakeFiles/test-quantize-perf.dir/get-model.cpp.o.d" + "CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o" + "CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-quantize-perf.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b1f886469a75a8bdd008bff2c77f515a90832d97 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-quantize-perf. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..3fdd2e5f37c7b81485cbc2ae3ab39f3853e0e416 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-quantize-perf. diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..78556dec021604d927aedfd8065017d74d57532c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-quantize-perf. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..acc50b412a41886e075c1c6927978ec254a275f6 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..5f0388a45ec7d058f52cac87c60d01a117e078f0 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o CMakeFiles/test-quantize-perf.dir/get-model.cpp.o -o ../bin/test-quantize-perf -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..296c9f12036a8af5c81f91fbb3f9b470baa6e198 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 92 +CMAKE_PROGRESS_3 = + diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..48ebb98682af56962eea08603e7d806520c6cacb Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4b837816378e9b8f270093041eb79cc3b1fd2e92 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o.d @@ -0,0 +1,288 @@ +tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-quantize-perf.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/assert.h \ + /usr/include/c++/11/math.h /usr/include/c++/11/cmath /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/memory \ + /usr/include/c++/11/bits/stl_raw_storage_iter.h \ + /usr/include/c++/11/bits/align.h /usr/include/c++/11/bit \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/shared_ptr.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/bits/stringfwd.h /usr/include/c++/11/bits/postypes.h \ + /usr/include/c++/11/cwchar /usr/include/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + /usr/include/c++/11/bits/shared_ptr_base.h \ + /usr/include/c++/11/bits/allocated_ptr.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/concurrence.h /usr/include/c++/11/exception \ + /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/shared_ptr_atomic.h \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h \ + /usr/include/c++/11/backward/auto_ptr.h \ + /usr/include/c++/11/pstl/glue_memory_defs.h /usr/include/c++/11/string \ + /usr/include/c++/11/bits/char_traits.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/cctype \ + /usr/include/ctype.h /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/adxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/bmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/cldemoteintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clflushoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clwbintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/clzerointrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/enqcmdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fxsrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lzcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/lwpintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/movdirintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mwaitxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pconfigintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/popcntintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pkuintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rdseedintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/rtmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/serializeintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/sgxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tbmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tsxldtrkintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/uintrintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/waitpkgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wbnoinvdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavecintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsaveoptintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xsavesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xtestintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/hresetintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm_malloc.h \ + /usr/include/c++/11/stdlib.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/emmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/pmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/smmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avxvnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512fintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512erintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512pfintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512cdintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512dqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vlbwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vldqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512ifmavlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmiintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124fmapsintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx5124vnniwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vbmi2vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vnnivlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vpopcntdqvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bitalgintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512vp2intersectvlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/shaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fmaintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/f16cintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/gfniintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vaesintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/vpclmulqdqintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16vlintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/avx512bf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxtileintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxint8intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/amxbf16intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/prfchwintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/keylockerintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/mm3dnow.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/fma4intrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/ammintrin.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/xopintrin.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..de90f303c1d061872203d0372936ddd9599f6d70 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-rope.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-rope.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp" "tests/CMakeFiles/test-rope.dir/test-rope.cpp.o" "gcc" "tests/CMakeFiles/test-rope.dir/test-rope.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..8bc2acfdfdf005832651cf11aad7026f81bb4ca8 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-rope.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-rope.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-rope.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-rope.dir/flags.make + +tests/CMakeFiles/test-rope.dir/test-rope.cpp.o: tests/CMakeFiles/test-rope.dir/flags.make +tests/CMakeFiles/test-rope.dir/test-rope.cpp.o: ../tests/test-rope.cpp +tests/CMakeFiles/test-rope.dir/test-rope.cpp.o: tests/CMakeFiles/test-rope.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-rope.dir/test-rope.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-rope.dir/test-rope.cpp.o -MF CMakeFiles/test-rope.dir/test-rope.cpp.o.d -o CMakeFiles/test-rope.dir/test-rope.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp" + +tests/CMakeFiles/test-rope.dir/test-rope.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-rope.dir/test-rope.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp" > CMakeFiles/test-rope.dir/test-rope.cpp.i + +tests/CMakeFiles/test-rope.dir/test-rope.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-rope.dir/test-rope.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp" -o CMakeFiles/test-rope.dir/test-rope.cpp.s + +tests/CMakeFiles/test-rope.dir/get-model.cpp.o: tests/CMakeFiles/test-rope.dir/flags.make +tests/CMakeFiles/test-rope.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-rope.dir/get-model.cpp.o: tests/CMakeFiles/test-rope.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-rope.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-rope.dir/get-model.cpp.o -MF CMakeFiles/test-rope.dir/get-model.cpp.o.d -o CMakeFiles/test-rope.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-rope.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-rope.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-rope.dir/get-model.cpp.i + +tests/CMakeFiles/test-rope.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-rope.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-rope.dir/get-model.cpp.s + +# Object files for target test-rope +test__rope_OBJECTS = \ +"CMakeFiles/test-rope.dir/test-rope.cpp.o" \ +"CMakeFiles/test-rope.dir/get-model.cpp.o" + +# External object files for target test-rope +test__rope_EXTERNAL_OBJECTS = + +bin/test-rope: tests/CMakeFiles/test-rope.dir/test-rope.cpp.o +bin/test-rope: tests/CMakeFiles/test-rope.dir/get-model.cpp.o +bin/test-rope: tests/CMakeFiles/test-rope.dir/build.make +bin/test-rope: common/libcommon.a +bin/test-rope: src/libllama.so +bin/test-rope: ggml/src/libggml.so +bin/test-rope: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-rope: ggml/src/libggml-base.so +bin/test-rope: tests/CMakeFiles/test-rope.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-rope" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-rope.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-rope.dir/build: bin/test-rope +.PHONY : tests/CMakeFiles/test-rope.dir/build + +tests/CMakeFiles/test-rope.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-rope.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-rope.dir/clean + +tests/CMakeFiles/test-rope.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-rope.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-rope.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..edac5a71f72fca7ca9eaf31c3cecfa82272955cc --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-rope" + "../bin/test-rope.pdb" + "CMakeFiles/test-rope.dir/get-model.cpp.o" + "CMakeFiles/test-rope.dir/get-model.cpp.o.d" + "CMakeFiles/test-rope.dir/test-rope.cpp.o" + "CMakeFiles/test-rope.dir/test-rope.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-rope.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..14b52070493c46d65914c30d78d26f200832bf6e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-rope. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a1edac870608f90fb95e91b8026d4e264fb791bb --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-rope. diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..04f7cb99bafaf3c3edf04ba199a27512be89df75 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-rope. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..61f25d6439e3a0c0f7d23dcfb243b1e5a2937400 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-rope.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..3d16569c02497028d729bbe5eba03225eda324ae --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-rope.dir/test-rope.cpp.o CMakeFiles/test-rope.dir/get-model.cpp.o -o ../bin/test-rope -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..a51ec2eb92d1fb5f3d12bbbaac245201c6d9369b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 93 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 94 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/test-rope.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/test-rope.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ab925914aff82bd458487bdcc1cf79d7acc5b584 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/test-rope.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-rope.dir/test-rope.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/test-rope.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..454cf816fe8c0191ed9234d80c9adcbeb5bcceeb --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-rope.dir/test-rope.cpp.o.d @@ -0,0 +1,127 @@ +tests/CMakeFiles/test-rope.dir/test-rope.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-rope.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/cmath \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/stdlib.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/specfun.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cstdlib /usr/include/c++/11/cassert \ + /usr/include/assert.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/stl_construct.h \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/vector.tcc diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fbd4c8de7f87f6233158f9ef06418e28c9210897 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/DependInfo.cmake @@ -0,0 +1,25 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" "tests/CMakeFiles/test-sampling.dir/get-model.cpp.o" "gcc" "tests/CMakeFiles/test-sampling.dir/get-model.cpp.o.d" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp" "tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o" "gcc" "tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..fac8fa3ffa24c34c17eaeea18dbe8419405e7c55 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/build.make @@ -0,0 +1,131 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-sampling.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-sampling.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-sampling.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-sampling.dir/flags.make + +tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o: tests/CMakeFiles/test-sampling.dir/flags.make +tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o: ../tests/test-sampling.cpp +tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o: tests/CMakeFiles/test-sampling.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o -MF CMakeFiles/test-sampling.dir/test-sampling.cpp.o.d -o CMakeFiles/test-sampling.dir/test-sampling.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp" + +tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-sampling.dir/test-sampling.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp" > CMakeFiles/test-sampling.dir/test-sampling.cpp.i + +tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-sampling.dir/test-sampling.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp" -o CMakeFiles/test-sampling.dir/test-sampling.cpp.s + +tests/CMakeFiles/test-sampling.dir/get-model.cpp.o: tests/CMakeFiles/test-sampling.dir/flags.make +tests/CMakeFiles/test-sampling.dir/get-model.cpp.o: ../tests/get-model.cpp +tests/CMakeFiles/test-sampling.dir/get-model.cpp.o: tests/CMakeFiles/test-sampling.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object tests/CMakeFiles/test-sampling.dir/get-model.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-sampling.dir/get-model.cpp.o -MF CMakeFiles/test-sampling.dir/get-model.cpp.o.d -o CMakeFiles/test-sampling.dir/get-model.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" + +tests/CMakeFiles/test-sampling.dir/get-model.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-sampling.dir/get-model.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" > CMakeFiles/test-sampling.dir/get-model.cpp.i + +tests/CMakeFiles/test-sampling.dir/get-model.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-sampling.dir/get-model.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp" -o CMakeFiles/test-sampling.dir/get-model.cpp.s + +# Object files for target test-sampling +test__sampling_OBJECTS = \ +"CMakeFiles/test-sampling.dir/test-sampling.cpp.o" \ +"CMakeFiles/test-sampling.dir/get-model.cpp.o" + +# External object files for target test-sampling +test__sampling_EXTERNAL_OBJECTS = + +bin/test-sampling: tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o +bin/test-sampling: tests/CMakeFiles/test-sampling.dir/get-model.cpp.o +bin/test-sampling: tests/CMakeFiles/test-sampling.dir/build.make +bin/test-sampling: common/libcommon.a +bin/test-sampling: src/libllama.so +bin/test-sampling: ggml/src/libggml.so +bin/test-sampling: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-sampling: ggml/src/libggml-base.so +bin/test-sampling: tests/CMakeFiles/test-sampling.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/test-sampling" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-sampling.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-sampling.dir/build: bin/test-sampling +.PHONY : tests/CMakeFiles/test-sampling.dir/build + +tests/CMakeFiles/test-sampling.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-sampling.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-sampling.dir/clean + +tests/CMakeFiles/test-sampling.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-sampling.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..582b12b00642be65bd14f3a684077254b7fd6f02 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/cmake_clean.cmake @@ -0,0 +1,13 @@ +file(REMOVE_RECURSE + "../bin/test-sampling" + "../bin/test-sampling.pdb" + "CMakeFiles/test-sampling.dir/get-model.cpp.o" + "CMakeFiles/test-sampling.dir/get-model.cpp.o.d" + "CMakeFiles/test-sampling.dir/test-sampling.cpp.o" + "CMakeFiles/test-sampling.dir/test-sampling.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-sampling.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..c6f5d3619b7f999a548683e1cf984e7cec80d054 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-sampling. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..a940b799eee9b72001ed1aecbfe63a5d252b1ce4 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-sampling. diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..06ebd67485e1b32d20703cc5f7d5f8447be1644e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-sampling. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/get-model.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/get-model.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a58a1d8c731003892b67dae5bb7915a2b12153b0 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/get-model.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/get-model.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/get-model.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..a2b30394eb6fe81c183ee6bd9310f4b85ad624b4 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/get-model.cpp.o.d @@ -0,0 +1,67 @@ +tests/CMakeFiles/test-sampling.dir/get-model.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.cpp \ + /usr/include/stdc-predef.h /usr/include/c++/11/cstdio \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h /usr/include/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstring \ + /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/get-model.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..008e31c6e8c44deedcbcc3236f06c1b97e546b01 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-sampling.dir/test-sampling.cpp.o CMakeFiles/test-sampling.dir/get-model.cpp.o -o ../bin/test-sampling -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..bf53a322160f1684d7e6277acecaa3511dd9c53e --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 95 +CMAKE_PROGRESS_2 = +CMAKE_PROGRESS_3 = 96 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c500776ac692f54df15d98b323aa4d244bf6b15a Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..4911d24524e0a7aba4fe7c05c520433f07355685 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o.d @@ -0,0 +1,184 @@ +tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-sampling.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /usr/include/c++/11/algorithm /usr/include/c++/11/utility \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/stl_algo.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/sys/types.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h \ + /usr/include/c++/11/bits/algorithmfwd.h \ + /usr/include/c++/11/bits/stl_heap.h \ + /usr/include/c++/11/bits/stl_tempbuf.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/uniform_int_dist.h \ + /usr/include/c++/11/pstl/glue_algorithm_defs.h \ + /usr/include/c++/11/functional /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/std_function.h /usr/include/c++/11/typeinfo \ + /usr/include/c++/11/unordered_map /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/hashtable.h \ + /usr/include/c++/11/bits/hashtable_policy.h \ + /usr/include/c++/11/bits/enable_special_members.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/unordered_map.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc \ + /usr/include/c++/11/pstl/execution_defs.h /usr/include/c++/11/cmath \ + /usr/include/math.h /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/flt-eval-method.h \ + /usr/include/x86_64-linux-gnu/bits/fp-logb.h \ + /usr/include/x86_64-linux-gnu/bits/fp-fast.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls-narrow.h \ + /usr/include/x86_64-linux-gnu/bits/iscanonical.h \ + /usr/include/c++/11/bits/specfun.h /usr/include/c++/11/limits \ + /usr/include/c++/11/tr1/gamma.tcc \ + /usr/include/c++/11/tr1/special_function_util.h \ + /usr/include/c++/11/tr1/bessel_function.tcc \ + /usr/include/c++/11/tr1/beta_function.tcc \ + /usr/include/c++/11/tr1/ell_integral.tcc \ + /usr/include/c++/11/tr1/exp_integral.tcc \ + /usr/include/c++/11/tr1/hypergeometric.tcc \ + /usr/include/c++/11/tr1/legendre_function.tcc \ + /usr/include/c++/11/tr1/modified_bessel_func.tcc \ + /usr/include/c++/11/tr1/poly_hermite.tcc \ + /usr/include/c++/11/tr1/poly_laguerre.tcc \ + /usr/include/c++/11/tr1/riemann_zeta.tcc /usr/include/c++/11/string \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/string_view /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4c6fe0f0d6edff832d88744f91f6f9eca686d096 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp" "tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o" "gcc" "tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..86e4ee6f059aaab9e18abe0d3cf93d535d44b236 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-tokenizer-0.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-tokenizer-0.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-tokenizer-0.dir/flags.make + +tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o: tests/CMakeFiles/test-tokenizer-0.dir/flags.make +tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o: ../tests/test-tokenizer-0.cpp +tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o: tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o -MF CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o.d -o CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp" + +tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp" > CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.i + +tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp" -o CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.s + +# Object files for target test-tokenizer-0 +test__tokenizer__0_OBJECTS = \ +"CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o" + +# External object files for target test-tokenizer-0 +test__tokenizer__0_EXTERNAL_OBJECTS = + +bin/test-tokenizer-0: tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o +bin/test-tokenizer-0: tests/CMakeFiles/test-tokenizer-0.dir/build.make +bin/test-tokenizer-0: common/libcommon.a +bin/test-tokenizer-0: src/libllama.so +bin/test-tokenizer-0: ggml/src/libggml.so +bin/test-tokenizer-0: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-tokenizer-0: ggml/src/libggml-base.so +bin/test-tokenizer-0: tests/CMakeFiles/test-tokenizer-0.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/test-tokenizer-0" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-tokenizer-0.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-tokenizer-0.dir/build: bin/test-tokenizer-0 +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/build + +tests/CMakeFiles/test-tokenizer-0.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-tokenizer-0.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/clean + +tests/CMakeFiles/test-tokenizer-0.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..49699bea3e0b7a8d66928a1448c92d8ffbb40d9b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/test-tokenizer-0" + "../bin/test-tokenizer-0.pdb" + "CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o" + "CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-tokenizer-0.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..64081b833eb7e8d3294a2b725aa4001cbb524d1a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-tokenizer-0. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..2261e9960673ef44f8bf53f00a68060808bea0ea --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-tokenizer-0. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..ef854e4b63efd7c2f4a56ec30a78bcc97ecd2b13 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-tokenizer-0. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..2cc162c5c33a25a658a7c16cfd340a583b4f9281 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o -o ../bin/test-tokenizer-0 -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..a09f9bb6aa4d0b33c94236afbe8ad2ca975d533a --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 97 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..50e1f497d292a5554ef437496b18173a04bd7b64 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..57a77d85d2dcc030a856d85f1ab3d8435dba45db --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o.d @@ -0,0 +1,187 @@ +tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-0.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./console.h \ + /usr/include/c++/11/map /usr/include/c++/11/bits/stl_tree.h \ + /usr/include/c++/11/ext/aligned_buffer.h \ + /usr/include/c++/11/bits/node_handle.h \ + /usr/include/c++/11/bits/stl_map.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/utility /usr/include/c++/11/bits/stl_relops.h \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h \ + /usr/include/c++/11/bits/stl_multimap.h \ + /usr/include/c++/11/bits/erase_if.h /usr/include/c++/11/fstream \ + /usr/include/c++/11/bits/codecvt.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/basic_file.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++io.h \ + /usr/include/c++/11/bits/fstream.tcc /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/unique_ptr.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/ctime /usr/include/c++/11/bits/parse_numbers.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..41abd2c261f85ae9b87bd1c19f9a5c5e48502b5c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp" "tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o" "gcc" "tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..96a513d0c66730b300dc72d1fda126c1151065ba --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-tokenizer-1-bpe.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-tokenizer-1-bpe.dir/flags.make + +tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o: tests/CMakeFiles/test-tokenizer-1-bpe.dir/flags.make +tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o: ../tests/test-tokenizer-1-bpe.cpp +tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o: tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o -MF CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o.d -o CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp" + +tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp" > CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.i + +tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp" -o CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.s + +# Object files for target test-tokenizer-1-bpe +test__tokenizer__1__bpe_OBJECTS = \ +"CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o" + +# External object files for target test-tokenizer-1-bpe +test__tokenizer__1__bpe_EXTERNAL_OBJECTS = + +bin/test-tokenizer-1-bpe: tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o +bin/test-tokenizer-1-bpe: tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make +bin/test-tokenizer-1-bpe: common/libcommon.a +bin/test-tokenizer-1-bpe: src/libllama.so +bin/test-tokenizer-1-bpe: ggml/src/libggml.so +bin/test-tokenizer-1-bpe: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-tokenizer-1-bpe: ggml/src/libggml-base.so +bin/test-tokenizer-1-bpe: tests/CMakeFiles/test-tokenizer-1-bpe.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/test-tokenizer-1-bpe" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-tokenizer-1-bpe.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-tokenizer-1-bpe.dir/build: bin/test-tokenizer-1-bpe +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/build + +tests/CMakeFiles/test-tokenizer-1-bpe.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-tokenizer-1-bpe.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/clean + +tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..30f81b3d39ebd8fafb8d6e08d06819861db0e020 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/test-tokenizer-1-bpe" + "../bin/test-tokenizer-1-bpe.pdb" + "CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o" + "CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-tokenizer-1-bpe.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..378e0f1073b35f5c215809c949c062789193b036 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-tokenizer-1-bpe. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..398fd1fc03ab7b0fb0d8608875af1adcd4f2b071 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-tokenizer-1-bpe. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..e851cc9c7a69eb5404a14383a6565dcfd7fa9470 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-tokenizer-1-bpe. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..da4535a5b2a6d1fabc5c680aa80baf5d8754afb9 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o -o ../bin/test-tokenizer-1-bpe -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..0d87696f03b455bad31156ef810eda35f5a2160d --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 98 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8d2fe7b40c7352204f4657d1fca2fc9599adf338 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..ab512445b080d2653c7a0927b053a954cb8b6157 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o.d @@ -0,0 +1,191 @@ +tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-bpe.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./unicode.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./console.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/codecvt /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h /usr/include/c++/11/ctime \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/atomic \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/DependInfo.cmake b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c038aa2365581fb7c4c35dbafe37d22da57adadf --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/DependInfo.cmake @@ -0,0 +1,24 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp" "tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o" "gcc" "tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o.d" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/common/CMakeFiles/common.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src/CMakeFiles/llama.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu/CMakeFiles/ggml-cpu.dir/DependInfo.cmake" + "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/CMakeFiles/ggml-base.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..d3070f087fc428fccd4e4735a3446f98fab2d9a1 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +# Include any dependencies generated for this target. +include tests/CMakeFiles/test-tokenizer-1-spm.dir/depend.make +# Include any dependencies generated by the compiler for this target. +include tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.make + +# Include the progress variables for this target. +include tests/CMakeFiles/test-tokenizer-1-spm.dir/progress.make + +# Include the compile flags for this target's objects. +include tests/CMakeFiles/test-tokenizer-1-spm.dir/flags.make + +tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o: tests/CMakeFiles/test-tokenizer-1-spm.dir/flags.make +tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o: ../tests/test-tokenizer-1-spm.cpp +tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o: tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.ts + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o -MF CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o.d -o CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o -c "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp" + +tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.i" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp" > CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.i + +tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.s" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp" -o CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.s + +# Object files for target test-tokenizer-1-spm +test__tokenizer__1__spm_OBJECTS = \ +"CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o" + +# External object files for target test-tokenizer-1-spm +test__tokenizer__1__spm_EXTERNAL_OBJECTS = + +bin/test-tokenizer-1-spm: tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o +bin/test-tokenizer-1-spm: tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make +bin/test-tokenizer-1-spm: common/libcommon.a +bin/test-tokenizer-1-spm: src/libllama.so +bin/test-tokenizer-1-spm: ggml/src/libggml.so +bin/test-tokenizer-1-spm: ggml/src/ggml-cpu/libggml-cpu.so +bin/test-tokenizer-1-spm: ggml/src/libggml-base.so +bin/test-tokenizer-1-spm: tests/CMakeFiles/test-tokenizer-1-spm.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir="/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/test-tokenizer-1-spm" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test-tokenizer-1-spm.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +tests/CMakeFiles/test-tokenizer-1-spm.dir/build: bin/test-tokenizer-1-spm +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/build + +tests/CMakeFiles/test-tokenizer-1-spm.dir/clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" && $(CMAKE_COMMAND) -P CMakeFiles/test-tokenizer-1-spm.dir/cmake_clean.cmake +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/clean + +tests/CMakeFiles/test-tokenizer-1-spm.dir/depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/DependInfo.cmake" --color=$(COLOR) +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/depend + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/cmake_clean.cmake b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e895f756f660180a85ca3302bb65ed800fd29000 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "../bin/test-tokenizer-1-spm" + "../bin/test-tokenizer-1-spm.pdb" + "CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o" + "CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o.d" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/test-tokenizer-1-spm.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.make new file mode 100644 index 0000000000000000000000000000000000000000..a65d91f5ea3f04db78136e2f00a086f947954eb0 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.make @@ -0,0 +1,2 @@ +# Empty compiler generated dependencies file for test-tokenizer-1-spm. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.ts b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.ts new file mode 100644 index 0000000000000000000000000000000000000000..0cb49e3d0eba4d0a4a8d59b3ca76a1e0c0b265b0 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/compiler_depend.ts @@ -0,0 +1,2 @@ +# CMAKE generated file: DO NOT EDIT! +# Timestamp file for compiler generated dependencies management for test-tokenizer-1-spm. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/depend.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b590dc31177cae6456ee7e568d709b2f2f0365cb --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for test-tokenizer-1-spm. +# This may be replaced when dependencies are built. diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/flags.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..ff481a4fac46570854b794195a1b3d9cf127bf0c --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DGGML_BACKEND_SHARED -DGGML_SHARED -DGGML_USE_CPU -DLLAMA_SHARED + +CXX_INCLUDES = -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/common/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/." -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include" -I"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include" + +CXX_FLAGS = -O3 -DNDEBUG + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/link.txt b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..efedf59a05626275fd73fc481c4e9fbe11fae19b --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -DNDEBUG CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o -o ../bin/test-tokenizer-1-spm -Wl,-rpath,"/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" ../common/libcommon.a ../src/libllama.so ../ggml/src/libggml.so ../ggml/src/ggml-cpu/libggml-cpu.so ../ggml/src/libggml-base.so diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/progress.make b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..f4a80ecaaa5c482d4a842bca5165778d33dafac7 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 99 + diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8a9310fc4bf016a1f41a8f39e7e1bb9916825e94 Binary files /dev/null and b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o differ diff --git a/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o.d b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o.d new file mode 100644 index 0000000000000000000000000000000000000000..9bf5868d7e8ebe2d44a633fbd123cc971bd5d248 --- /dev/null +++ b/llama.cpp/build/tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o.d @@ -0,0 +1,191 @@ +tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o: \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/tests/test-tokenizer-1-spm.cpp \ + /usr/include/stdc-predef.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/../include/llama.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdbool.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stddef.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdint.h /usr/include/stdint.h \ + /usr/include/x86_64-linux-gnu/bits/libc-header-start.h \ + /usr/include/features.h /usr/include/features-time64.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/bits/timesize.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/long-double.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/time64.h \ + /usr/include/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-intn.h \ + /usr/include/x86_64-linux-gnu/bits/stdint-uintn.h /usr/include/stdio.h \ + /usr/lib/gcc/x86_64-linux-gnu/11/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \ + /usr/include/x86_64-linux-gnu/bits/types/cookie_io_functions_t.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/floatn.h \ + /usr/include/x86_64-linux-gnu/bits/floatn-common.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-cpu.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-backend.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/ggml/src/../include/ggml-alloc.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./common.h \ + /usr/include/c++/11/string \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/cpu_defines.h \ + /usr/include/c++/11/pstl/pstl_config.h \ + /usr/include/c++/11/bits/stringfwd.h \ + /usr/include/c++/11/bits/memoryfwd.h \ + /usr/include/c++/11/bits/char_traits.h \ + /usr/include/c++/11/bits/stl_algobase.h \ + /usr/include/c++/11/bits/functexcept.h \ + /usr/include/c++/11/bits/exception_defines.h \ + /usr/include/c++/11/bits/cpp_type_traits.h \ + /usr/include/c++/11/ext/type_traits.h \ + /usr/include/c++/11/ext/numeric_traits.h \ + /usr/include/c++/11/bits/stl_pair.h /usr/include/c++/11/bits/move.h \ + /usr/include/c++/11/type_traits \ + /usr/include/c++/11/bits/stl_iterator_base_types.h \ + /usr/include/c++/11/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/11/bits/concept_check.h \ + /usr/include/c++/11/debug/assertions.h \ + /usr/include/c++/11/bits/stl_iterator.h \ + /usr/include/c++/11/bits/ptr_traits.h /usr/include/c++/11/debug/debug.h \ + /usr/include/c++/11/bits/predefined_ops.h \ + /usr/include/c++/11/bits/postypes.h /usr/include/c++/11/cwchar \ + /usr/include/wchar.h /usr/include/x86_64-linux-gnu/bits/types/wint_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h /usr/include/c++/11/cstdint \ + /usr/include/c++/11/bits/allocator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++allocator.h \ + /usr/include/c++/11/ext/new_allocator.h /usr/include/c++/11/new \ + /usr/include/c++/11/bits/exception.h \ + /usr/include/c++/11/bits/localefwd.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/c++locale.h \ + /usr/include/c++/11/clocale /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/11/iosfwd \ + /usr/include/c++/11/cctype /usr/include/ctype.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endianness.h \ + /usr/include/c++/11/bits/ostream_insert.h \ + /usr/include/c++/11/bits/cxxabi_forced.h \ + /usr/include/c++/11/bits/stl_function.h \ + /usr/include/c++/11/backward/binders.h \ + /usr/include/c++/11/bits/range_access.h \ + /usr/include/c++/11/initializer_list \ + /usr/include/c++/11/bits/basic_string.h \ + /usr/include/c++/11/ext/atomicity.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h \ + /usr/include/pthread.h /usr/include/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/time_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h \ + /usr/include/x86_64-linux-gnu/bits/sched.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_sched_param.h \ + /usr/include/x86_64-linux-gnu/bits/cpu-set.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/timex.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h \ + /usr/include/x86_64-linux-gnu/bits/types/clock_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h \ + /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/timer_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \ + /usr/include/x86_64-linux-gnu/bits/thread-shared-types.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h \ + /usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h \ + /usr/include/x86_64-linux-gnu/bits/struct_mutex.h \ + /usr/include/x86_64-linux-gnu/bits/struct_rwlock.h \ + /usr/include/x86_64-linux-gnu/bits/setjmp.h \ + /usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/types/struct___jmp_buf_tag.h \ + /usr/include/x86_64-linux-gnu/bits/pthread_stack_min-dynamic.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/atomic_word.h \ + /usr/include/x86_64-linux-gnu/sys/single_threaded.h \ + /usr/include/c++/11/ext/alloc_traits.h \ + /usr/include/c++/11/bits/alloc_traits.h \ + /usr/include/c++/11/bits/stl_construct.h /usr/include/c++/11/string_view \ + /usr/include/c++/11/bits/functional_hash.h \ + /usr/include/c++/11/bits/hash_bytes.h \ + /usr/include/c++/11/bits/string_view.tcc \ + /usr/include/c++/11/ext/string_conversions.h /usr/include/c++/11/cstdlib \ + /usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/uintn-identity.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/types/sigset_t.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h \ + /usr/include/c++/11/bits/std_abs.h /usr/include/c++/11/cstdio \ + /usr/include/c++/11/cerrno /usr/include/errno.h \ + /usr/include/x86_64-linux-gnu/bits/errno.h /usr/include/linux/errno.h \ + /usr/include/x86_64-linux-gnu/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/x86_64-linux-gnu/bits/types/error_t.h \ + /usr/include/c++/11/bits/charconv.h \ + /usr/include/c++/11/bits/basic_string.tcc /usr/include/c++/11/vector \ + /usr/include/c++/11/bits/stl_uninitialized.h \ + /usr/include/c++/11/bits/stl_vector.h \ + /usr/include/c++/11/bits/stl_bvector.h \ + /usr/include/c++/11/bits/vector.tcc /usr/include/c++/11/sstream \ + /usr/include/c++/11/istream /usr/include/c++/11/ios \ + /usr/include/c++/11/exception /usr/include/c++/11/bits/exception_ptr.h \ + /usr/include/c++/11/bits/cxxabi_init_exception.h \ + /usr/include/c++/11/typeinfo /usr/include/c++/11/bits/nested_exception.h \ + /usr/include/c++/11/bits/ios_base.h \ + /usr/include/c++/11/bits/locale_classes.h \ + /usr/include/c++/11/bits/locale_classes.tcc \ + /usr/include/c++/11/system_error \ + /usr/include/x86_64-linux-gnu/c++/11/bits/error_constants.h \ + /usr/include/c++/11/stdexcept /usr/include/c++/11/streambuf \ + /usr/include/c++/11/bits/streambuf.tcc \ + /usr/include/c++/11/bits/basic_ios.h \ + /usr/include/c++/11/bits/locale_facets.h /usr/include/c++/11/cwctype \ + /usr/include/wctype.h /usr/include/x86_64-linux-gnu/bits/wctype-wchar.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_base.h \ + /usr/include/c++/11/bits/streambuf_iterator.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/ctype_inline.h \ + /usr/include/c++/11/bits/locale_facets.tcc \ + /usr/include/c++/11/bits/basic_ios.tcc /usr/include/c++/11/ostream \ + /usr/include/c++/11/bits/ostream.tcc \ + /usr/include/c++/11/bits/istream.tcc \ + /usr/include/c++/11/bits/sstream.tcc \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/src/./unicode.h \ + /home/mathis-portable/Documents/KTH/Scalable\ Machine\ Learning/lab_project/ID2224_Lab2/llama.cpp/common/./console.h \ + /usr/include/c++/11/cassert /usr/include/assert.h \ + /usr/include/c++/11/codecvt /usr/include/c++/11/bits/codecvt.h \ + /usr/include/c++/11/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/x86_64-linux-gnu/bits/strings_fortified.h \ + /usr/include/x86_64-linux-gnu/bits/string_fortified.h \ + /usr/include/c++/11/locale \ + /usr/include/c++/11/bits/locale_facets_nonio.h /usr/include/c++/11/ctime \ + /usr/include/x86_64-linux-gnu/c++/11/bits/time_members.h \ + /usr/include/x86_64-linux-gnu/c++/11/bits/messages_members.h \ + /usr/include/libintl.h /usr/include/c++/11/bits/locale_facets_nonio.tcc \ + /usr/include/c++/11/bits/locale_conv.h \ + /usr/include/c++/11/bits/unique_ptr.h /usr/include/c++/11/utility \ + /usr/include/c++/11/bits/stl_relops.h /usr/include/c++/11/tuple \ + /usr/include/c++/11/array /usr/include/c++/11/bits/uses_allocator.h \ + /usr/include/c++/11/bits/invoke.h /usr/include/c++/11/thread \ + /usr/include/c++/11/bits/std_thread.h /usr/include/c++/11/bits/refwrap.h \ + /usr/include/c++/11/bits/this_thread_sleep.h /usr/include/c++/11/chrono \ + /usr/include/c++/11/ratio /usr/include/c++/11/limits \ + /usr/include/c++/11/bits/parse_numbers.h /usr/include/c++/11/atomic \ + /usr/include/c++/11/bits/atomic_base.h \ + /usr/include/c++/11/bits/atomic_lockfree_defines.h diff --git a/llama.cpp/build/tests/CTestTestfile.cmake b/llama.cpp/build/tests/CTestTestfile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ec498f3ce931a1cd7b270fa8335345d6ac0b7698 --- /dev/null +++ b/llama.cpp/build/tests/CTestTestfile.cmake @@ -0,0 +1,64 @@ +# CMake generated Testfile for +# Source directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests +# Build directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests +# +# This file includes the relevant testing commands required for +# testing this directory and lists subdirectories to be tested as well. +add_test(test-tokenizer-0-bert-bge "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-bert-bge.gguf") +set_tests_properties(test-tokenizer-0-bert-bge PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;73;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-command-r "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-command-r.gguf") +set_tests_properties(test-tokenizer-0-command-r PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;74;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-deepseek-coder "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-deepseek-coder.gguf") +set_tests_properties(test-tokenizer-0-deepseek-coder PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;75;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-deepseek-llm "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-deepseek-llm.gguf") +set_tests_properties(test-tokenizer-0-deepseek-llm PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;76;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-falcon "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-falcon.gguf") +set_tests_properties(test-tokenizer-0-falcon PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;77;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-gpt-2 "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-gpt-2.gguf") +set_tests_properties(test-tokenizer-0-gpt-2 PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;78;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-llama-bpe "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-llama-bpe.gguf") +set_tests_properties(test-tokenizer-0-llama-bpe PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;79;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-llama-spm "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-llama-spm.gguf") +set_tests_properties(test-tokenizer-0-llama-spm PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;80;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-mpt "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-mpt.gguf") +set_tests_properties(test-tokenizer-0-mpt PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;81;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-phi-3 "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-phi-3.gguf") +set_tests_properties(test-tokenizer-0-phi-3 PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;82;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-qwen2 "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-qwen2.gguf") +set_tests_properties(test-tokenizer-0-qwen2 PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;83;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-refact "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-refact.gguf") +set_tests_properties(test-tokenizer-0-refact PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;84;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-0-starcoder "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-starcoder.gguf") +set_tests_properties(test-tokenizer-0-starcoder PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;85;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-tokenizer-1-llama-spm "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-1-spm" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/../models/ggml-vocab-llama-spm.gguf") +set_tests_properties(test-tokenizer-1-llama-spm PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;22;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;107;llama_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-log "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-log") +set_tests_properties(test-log PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;111;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-arg-parser "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-arg-parser") +set_tests_properties(test-arg-parser PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;112;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-sampling "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-sampling") +set_tests_properties(test-sampling PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;113;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-chat-template "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-chat-template") +set_tests_properties(test-chat-template PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;114;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-grammar-parser "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-grammar-parser") +set_tests_properties(test-grammar-parser PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;116;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-grammar-integration "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-grammar-integration") +set_tests_properties(test-grammar-integration PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;117;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-llama-grammar "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-llama-grammar") +set_tests_properties(test-llama-grammar PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;118;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-backend-ops "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-backend-ops") +set_tests_properties(test-backend-ops PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;120;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-model-load-cancel "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-model-load-cancel") +set_tests_properties(test-model-load-cancel PROPERTIES LABELS "model" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;122;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-autorelease "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-autorelease") +set_tests_properties(test-autorelease PROPERTIES LABELS "model" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;123;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-barrier "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-barrier") +set_tests_properties(test-barrier PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;127;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-quantize-fns "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-quantize-fns") +set_tests_properties(test-quantize-fns PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;128;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-quantize-perf "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-quantize-perf") +set_tests_properties(test-quantize-perf PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;129;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-rope "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-rope") +set_tests_properties(test-rope PROPERTIES LABELS "main" WORKING_DIRECTORY "." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;130;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") +add_test(test-json-schema-to-grammar "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-json-schema-to-grammar") +set_tests_properties(test-json-schema-to-grammar PROPERTIES LABELS "main" WORKING_DIRECTORY "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/.." _BACKTRACE_TRIPLES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;59;add_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;135;llama_target_and_test;/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests/CMakeLists.txt;0;") diff --git a/llama.cpp/build/tests/Makefile b/llama.cpp/build/tests/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..0c80aa5f9d95a84be737787c03abc90d266a5296 --- /dev/null +++ b/llama.cpp/build/tests/Makefile @@ -0,0 +1,1067 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp" + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/tests//CMakeFiles/progress.marks" + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/all + $(CMAKE_COMMAND) -E cmake_progress_start "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/CMakeFiles" 0 +.PHONY : all + +# The main clean target +clean: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +tests/CMakeFiles/test-tokenizer-0.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-tokenizer-0.dir/rule +.PHONY : tests/CMakeFiles/test-tokenizer-0.dir/rule + +# Convenience name for target. +test-tokenizer-0: tests/CMakeFiles/test-tokenizer-0.dir/rule +.PHONY : test-tokenizer-0 + +# fast build rule for target. +test-tokenizer-0/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/build +.PHONY : test-tokenizer-0/fast + +# Convenience name for target. +tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule +.PHONY : tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule + +# Convenience name for target. +test-tokenizer-1-bpe: tests/CMakeFiles/test-tokenizer-1-bpe.dir/rule +.PHONY : test-tokenizer-1-bpe + +# fast build rule for target. +test-tokenizer-1-bpe/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/build +.PHONY : test-tokenizer-1-bpe/fast + +# Convenience name for target. +tests/CMakeFiles/test-tokenizer-1-spm.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-tokenizer-1-spm.dir/rule +.PHONY : tests/CMakeFiles/test-tokenizer-1-spm.dir/rule + +# Convenience name for target. +test-tokenizer-1-spm: tests/CMakeFiles/test-tokenizer-1-spm.dir/rule +.PHONY : test-tokenizer-1-spm + +# fast build rule for target. +test-tokenizer-1-spm/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/build +.PHONY : test-tokenizer-1-spm/fast + +# Convenience name for target. +tests/CMakeFiles/test-log.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-log.dir/rule +.PHONY : tests/CMakeFiles/test-log.dir/rule + +# Convenience name for target. +test-log: tests/CMakeFiles/test-log.dir/rule +.PHONY : test-log + +# fast build rule for target. +test-log/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/build +.PHONY : test-log/fast + +# Convenience name for target. +tests/CMakeFiles/test-arg-parser.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-arg-parser.dir/rule +.PHONY : tests/CMakeFiles/test-arg-parser.dir/rule + +# Convenience name for target. +test-arg-parser: tests/CMakeFiles/test-arg-parser.dir/rule +.PHONY : test-arg-parser + +# fast build rule for target. +test-arg-parser/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/build +.PHONY : test-arg-parser/fast + +# Convenience name for target. +tests/CMakeFiles/test-sampling.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-sampling.dir/rule +.PHONY : tests/CMakeFiles/test-sampling.dir/rule + +# Convenience name for target. +test-sampling: tests/CMakeFiles/test-sampling.dir/rule +.PHONY : test-sampling + +# fast build rule for target. +test-sampling/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/build +.PHONY : test-sampling/fast + +# Convenience name for target. +tests/CMakeFiles/test-chat-template.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-chat-template.dir/rule +.PHONY : tests/CMakeFiles/test-chat-template.dir/rule + +# Convenience name for target. +test-chat-template: tests/CMakeFiles/test-chat-template.dir/rule +.PHONY : test-chat-template + +# fast build rule for target. +test-chat-template/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/build +.PHONY : test-chat-template/fast + +# Convenience name for target. +tests/CMakeFiles/test-grammar-parser.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-grammar-parser.dir/rule +.PHONY : tests/CMakeFiles/test-grammar-parser.dir/rule + +# Convenience name for target. +test-grammar-parser: tests/CMakeFiles/test-grammar-parser.dir/rule +.PHONY : test-grammar-parser + +# fast build rule for target. +test-grammar-parser/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/build +.PHONY : test-grammar-parser/fast + +# Convenience name for target. +tests/CMakeFiles/test-grammar-integration.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-grammar-integration.dir/rule +.PHONY : tests/CMakeFiles/test-grammar-integration.dir/rule + +# Convenience name for target. +test-grammar-integration: tests/CMakeFiles/test-grammar-integration.dir/rule +.PHONY : test-grammar-integration + +# fast build rule for target. +test-grammar-integration/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/build +.PHONY : test-grammar-integration/fast + +# Convenience name for target. +tests/CMakeFiles/test-llama-grammar.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-llama-grammar.dir/rule +.PHONY : tests/CMakeFiles/test-llama-grammar.dir/rule + +# Convenience name for target. +test-llama-grammar: tests/CMakeFiles/test-llama-grammar.dir/rule +.PHONY : test-llama-grammar + +# fast build rule for target. +test-llama-grammar/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/build +.PHONY : test-llama-grammar/fast + +# Convenience name for target. +tests/CMakeFiles/test-backend-ops.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-backend-ops.dir/rule +.PHONY : tests/CMakeFiles/test-backend-ops.dir/rule + +# Convenience name for target. +test-backend-ops: tests/CMakeFiles/test-backend-ops.dir/rule +.PHONY : test-backend-ops + +# fast build rule for target. +test-backend-ops/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/build +.PHONY : test-backend-ops/fast + +# Convenience name for target. +tests/CMakeFiles/test-model-load-cancel.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-model-load-cancel.dir/rule +.PHONY : tests/CMakeFiles/test-model-load-cancel.dir/rule + +# Convenience name for target. +test-model-load-cancel: tests/CMakeFiles/test-model-load-cancel.dir/rule +.PHONY : test-model-load-cancel + +# fast build rule for target. +test-model-load-cancel/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/build +.PHONY : test-model-load-cancel/fast + +# Convenience name for target. +tests/CMakeFiles/test-autorelease.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-autorelease.dir/rule +.PHONY : tests/CMakeFiles/test-autorelease.dir/rule + +# Convenience name for target. +test-autorelease: tests/CMakeFiles/test-autorelease.dir/rule +.PHONY : test-autorelease + +# fast build rule for target. +test-autorelease/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/build +.PHONY : test-autorelease/fast + +# Convenience name for target. +tests/CMakeFiles/test-barrier.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-barrier.dir/rule +.PHONY : tests/CMakeFiles/test-barrier.dir/rule + +# Convenience name for target. +test-barrier: tests/CMakeFiles/test-barrier.dir/rule +.PHONY : test-barrier + +# fast build rule for target. +test-barrier/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/build +.PHONY : test-barrier/fast + +# Convenience name for target. +tests/CMakeFiles/test-quantize-fns.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-quantize-fns.dir/rule +.PHONY : tests/CMakeFiles/test-quantize-fns.dir/rule + +# Convenience name for target. +test-quantize-fns: tests/CMakeFiles/test-quantize-fns.dir/rule +.PHONY : test-quantize-fns + +# fast build rule for target. +test-quantize-fns/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/build +.PHONY : test-quantize-fns/fast + +# Convenience name for target. +tests/CMakeFiles/test-quantize-perf.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-quantize-perf.dir/rule +.PHONY : tests/CMakeFiles/test-quantize-perf.dir/rule + +# Convenience name for target. +test-quantize-perf: tests/CMakeFiles/test-quantize-perf.dir/rule +.PHONY : test-quantize-perf + +# fast build rule for target. +test-quantize-perf/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/build +.PHONY : test-quantize-perf/fast + +# Convenience name for target. +tests/CMakeFiles/test-rope.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-rope.dir/rule +.PHONY : tests/CMakeFiles/test-rope.dir/rule + +# Convenience name for target. +test-rope: tests/CMakeFiles/test-rope.dir/rule +.PHONY : test-rope + +# fast build rule for target. +test-rope/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/build +.PHONY : test-rope/fast + +# Convenience name for target. +tests/CMakeFiles/test-json-schema-to-grammar.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-json-schema-to-grammar.dir/rule +.PHONY : tests/CMakeFiles/test-json-schema-to-grammar.dir/rule + +# Convenience name for target. +test-json-schema-to-grammar: tests/CMakeFiles/test-json-schema-to-grammar.dir/rule +.PHONY : test-json-schema-to-grammar + +# fast build rule for target. +test-json-schema-to-grammar/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/build +.PHONY : test-json-schema-to-grammar/fast + +# Convenience name for target. +tests/CMakeFiles/test-c.dir/rule: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 tests/CMakeFiles/test-c.dir/rule +.PHONY : tests/CMakeFiles/test-c.dir/rule + +# Convenience name for target. +test-c: tests/CMakeFiles/test-c.dir/rule +.PHONY : test-c + +# fast build rule for target. +test-c/fast: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/build +.PHONY : test-c/fast + +get-model.o: get-model.cpp.o +.PHONY : get-model.o + +# target to build an object file +get-model.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/get-model.cpp.o + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o +.PHONY : get-model.cpp.o + +get-model.i: get-model.cpp.i +.PHONY : get-model.i + +# target to preprocess a source file +get-model.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/get-model.cpp.i + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.i +.PHONY : get-model.cpp.i + +get-model.s: get-model.cpp.s +.PHONY : get-model.s + +# target to generate assembly for a file +get-model.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/get-model.cpp.s + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.s +.PHONY : get-model.cpp.s + +test-arg-parser.o: test-arg-parser.cpp.o +.PHONY : test-arg-parser.o + +# target to build an object file +test-arg-parser.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o +.PHONY : test-arg-parser.cpp.o + +test-arg-parser.i: test-arg-parser.cpp.i +.PHONY : test-arg-parser.i + +# target to preprocess a source file +test-arg-parser.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.i +.PHONY : test-arg-parser.cpp.i + +test-arg-parser.s: test-arg-parser.cpp.s +.PHONY : test-arg-parser.s + +# target to generate assembly for a file +test-arg-parser.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-arg-parser.dir/build.make tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.s +.PHONY : test-arg-parser.cpp.s + +test-autorelease.o: test-autorelease.cpp.o +.PHONY : test-autorelease.o + +# target to build an object file +test-autorelease.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o +.PHONY : test-autorelease.cpp.o + +test-autorelease.i: test-autorelease.cpp.i +.PHONY : test-autorelease.i + +# target to preprocess a source file +test-autorelease.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.i +.PHONY : test-autorelease.cpp.i + +test-autorelease.s: test-autorelease.cpp.s +.PHONY : test-autorelease.s + +# target to generate assembly for a file +test-autorelease.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-autorelease.dir/build.make tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.s +.PHONY : test-autorelease.cpp.s + +test-backend-ops.o: test-backend-ops.cpp.o +.PHONY : test-backend-ops.o + +# target to build an object file +test-backend-ops.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o +.PHONY : test-backend-ops.cpp.o + +test-backend-ops.i: test-backend-ops.cpp.i +.PHONY : test-backend-ops.i + +# target to preprocess a source file +test-backend-ops.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.i +.PHONY : test-backend-ops.cpp.i + +test-backend-ops.s: test-backend-ops.cpp.s +.PHONY : test-backend-ops.s + +# target to generate assembly for a file +test-backend-ops.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-backend-ops.dir/build.make tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.s +.PHONY : test-backend-ops.cpp.s + +test-barrier.o: test-barrier.cpp.o +.PHONY : test-barrier.o + +# target to build an object file +test-barrier.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o +.PHONY : test-barrier.cpp.o + +test-barrier.i: test-barrier.cpp.i +.PHONY : test-barrier.i + +# target to preprocess a source file +test-barrier.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.i +.PHONY : test-barrier.cpp.i + +test-barrier.s: test-barrier.cpp.s +.PHONY : test-barrier.s + +# target to generate assembly for a file +test-barrier.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-barrier.dir/build.make tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.s +.PHONY : test-barrier.cpp.s + +test-c.o: test-c.c.o +.PHONY : test-c.o + +# target to build an object file +test-c.c.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/test-c.c.o +.PHONY : test-c.c.o + +test-c.i: test-c.c.i +.PHONY : test-c.i + +# target to preprocess a source file +test-c.c.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/test-c.c.i +.PHONY : test-c.c.i + +test-c.s: test-c.c.s +.PHONY : test-c.s + +# target to generate assembly for a file +test-c.c.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-c.dir/build.make tests/CMakeFiles/test-c.dir/test-c.c.s +.PHONY : test-c.c.s + +test-chat-template.o: test-chat-template.cpp.o +.PHONY : test-chat-template.o + +# target to build an object file +test-chat-template.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o +.PHONY : test-chat-template.cpp.o + +test-chat-template.i: test-chat-template.cpp.i +.PHONY : test-chat-template.i + +# target to preprocess a source file +test-chat-template.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.i +.PHONY : test-chat-template.cpp.i + +test-chat-template.s: test-chat-template.cpp.s +.PHONY : test-chat-template.s + +# target to generate assembly for a file +test-chat-template.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-chat-template.dir/build.make tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.s +.PHONY : test-chat-template.cpp.s + +test-grammar-integration.o: test-grammar-integration.cpp.o +.PHONY : test-grammar-integration.o + +# target to build an object file +test-grammar-integration.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o +.PHONY : test-grammar-integration.cpp.o + +test-grammar-integration.i: test-grammar-integration.cpp.i +.PHONY : test-grammar-integration.i + +# target to preprocess a source file +test-grammar-integration.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.i +.PHONY : test-grammar-integration.cpp.i + +test-grammar-integration.s: test-grammar-integration.cpp.s +.PHONY : test-grammar-integration.s + +# target to generate assembly for a file +test-grammar-integration.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-integration.dir/build.make tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.s +.PHONY : test-grammar-integration.cpp.s + +test-grammar-parser.o: test-grammar-parser.cpp.o +.PHONY : test-grammar-parser.o + +# target to build an object file +test-grammar-parser.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o +.PHONY : test-grammar-parser.cpp.o + +test-grammar-parser.i: test-grammar-parser.cpp.i +.PHONY : test-grammar-parser.i + +# target to preprocess a source file +test-grammar-parser.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.i +.PHONY : test-grammar-parser.cpp.i + +test-grammar-parser.s: test-grammar-parser.cpp.s +.PHONY : test-grammar-parser.s + +# target to generate assembly for a file +test-grammar-parser.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-grammar-parser.dir/build.make tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.s +.PHONY : test-grammar-parser.cpp.s + +test-json-schema-to-grammar.o: test-json-schema-to-grammar.cpp.o +.PHONY : test-json-schema-to-grammar.o + +# target to build an object file +test-json-schema-to-grammar.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o +.PHONY : test-json-schema-to-grammar.cpp.o + +test-json-schema-to-grammar.i: test-json-schema-to-grammar.cpp.i +.PHONY : test-json-schema-to-grammar.i + +# target to preprocess a source file +test-json-schema-to-grammar.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.i +.PHONY : test-json-schema-to-grammar.cpp.i + +test-json-schema-to-grammar.s: test-json-schema-to-grammar.cpp.s +.PHONY : test-json-schema-to-grammar.s + +# target to generate assembly for a file +test-json-schema-to-grammar.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-json-schema-to-grammar.dir/build.make tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.s +.PHONY : test-json-schema-to-grammar.cpp.s + +test-llama-grammar.o: test-llama-grammar.cpp.o +.PHONY : test-llama-grammar.o + +# target to build an object file +test-llama-grammar.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o +.PHONY : test-llama-grammar.cpp.o + +test-llama-grammar.i: test-llama-grammar.cpp.i +.PHONY : test-llama-grammar.i + +# target to preprocess a source file +test-llama-grammar.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.i +.PHONY : test-llama-grammar.cpp.i + +test-llama-grammar.s: test-llama-grammar.cpp.s +.PHONY : test-llama-grammar.s + +# target to generate assembly for a file +test-llama-grammar.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-llama-grammar.dir/build.make tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.s +.PHONY : test-llama-grammar.cpp.s + +test-log.o: test-log.cpp.o +.PHONY : test-log.o + +# target to build an object file +test-log.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/test-log.cpp.o +.PHONY : test-log.cpp.o + +test-log.i: test-log.cpp.i +.PHONY : test-log.i + +# target to preprocess a source file +test-log.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/test-log.cpp.i +.PHONY : test-log.cpp.i + +test-log.s: test-log.cpp.s +.PHONY : test-log.s + +# target to generate assembly for a file +test-log.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-log.dir/build.make tests/CMakeFiles/test-log.dir/test-log.cpp.s +.PHONY : test-log.cpp.s + +test-model-load-cancel.o: test-model-load-cancel.cpp.o +.PHONY : test-model-load-cancel.o + +# target to build an object file +test-model-load-cancel.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o +.PHONY : test-model-load-cancel.cpp.o + +test-model-load-cancel.i: test-model-load-cancel.cpp.i +.PHONY : test-model-load-cancel.i + +# target to preprocess a source file +test-model-load-cancel.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.i +.PHONY : test-model-load-cancel.cpp.i + +test-model-load-cancel.s: test-model-load-cancel.cpp.s +.PHONY : test-model-load-cancel.s + +# target to generate assembly for a file +test-model-load-cancel.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-model-load-cancel.dir/build.make tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.s +.PHONY : test-model-load-cancel.cpp.s + +test-quantize-fns.o: test-quantize-fns.cpp.o +.PHONY : test-quantize-fns.o + +# target to build an object file +test-quantize-fns.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o +.PHONY : test-quantize-fns.cpp.o + +test-quantize-fns.i: test-quantize-fns.cpp.i +.PHONY : test-quantize-fns.i + +# target to preprocess a source file +test-quantize-fns.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.i +.PHONY : test-quantize-fns.cpp.i + +test-quantize-fns.s: test-quantize-fns.cpp.s +.PHONY : test-quantize-fns.s + +# target to generate assembly for a file +test-quantize-fns.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-fns.dir/build.make tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.s +.PHONY : test-quantize-fns.cpp.s + +test-quantize-perf.o: test-quantize-perf.cpp.o +.PHONY : test-quantize-perf.o + +# target to build an object file +test-quantize-perf.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o +.PHONY : test-quantize-perf.cpp.o + +test-quantize-perf.i: test-quantize-perf.cpp.i +.PHONY : test-quantize-perf.i + +# target to preprocess a source file +test-quantize-perf.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.i +.PHONY : test-quantize-perf.cpp.i + +test-quantize-perf.s: test-quantize-perf.cpp.s +.PHONY : test-quantize-perf.s + +# target to generate assembly for a file +test-quantize-perf.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-quantize-perf.dir/build.make tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.s +.PHONY : test-quantize-perf.cpp.s + +test-rope.o: test-rope.cpp.o +.PHONY : test-rope.o + +# target to build an object file +test-rope.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/test-rope.cpp.o +.PHONY : test-rope.cpp.o + +test-rope.i: test-rope.cpp.i +.PHONY : test-rope.i + +# target to preprocess a source file +test-rope.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/test-rope.cpp.i +.PHONY : test-rope.cpp.i + +test-rope.s: test-rope.cpp.s +.PHONY : test-rope.s + +# target to generate assembly for a file +test-rope.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-rope.dir/build.make tests/CMakeFiles/test-rope.dir/test-rope.cpp.s +.PHONY : test-rope.cpp.s + +test-sampling.o: test-sampling.cpp.o +.PHONY : test-sampling.o + +# target to build an object file +test-sampling.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o +.PHONY : test-sampling.cpp.o + +test-sampling.i: test-sampling.cpp.i +.PHONY : test-sampling.i + +# target to preprocess a source file +test-sampling.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.i +.PHONY : test-sampling.cpp.i + +test-sampling.s: test-sampling.cpp.s +.PHONY : test-sampling.s + +# target to generate assembly for a file +test-sampling.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-sampling.dir/build.make tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.s +.PHONY : test-sampling.cpp.s + +test-tokenizer-0.o: test-tokenizer-0.cpp.o +.PHONY : test-tokenizer-0.o + +# target to build an object file +test-tokenizer-0.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o +.PHONY : test-tokenizer-0.cpp.o + +test-tokenizer-0.i: test-tokenizer-0.cpp.i +.PHONY : test-tokenizer-0.i + +# target to preprocess a source file +test-tokenizer-0.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.i +.PHONY : test-tokenizer-0.cpp.i + +test-tokenizer-0.s: test-tokenizer-0.cpp.s +.PHONY : test-tokenizer-0.s + +# target to generate assembly for a file +test-tokenizer-0.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-0.dir/build.make tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.s +.PHONY : test-tokenizer-0.cpp.s + +test-tokenizer-1-bpe.o: test-tokenizer-1-bpe.cpp.o +.PHONY : test-tokenizer-1-bpe.o + +# target to build an object file +test-tokenizer-1-bpe.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o +.PHONY : test-tokenizer-1-bpe.cpp.o + +test-tokenizer-1-bpe.i: test-tokenizer-1-bpe.cpp.i +.PHONY : test-tokenizer-1-bpe.i + +# target to preprocess a source file +test-tokenizer-1-bpe.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.i +.PHONY : test-tokenizer-1-bpe.cpp.i + +test-tokenizer-1-bpe.s: test-tokenizer-1-bpe.cpp.s +.PHONY : test-tokenizer-1-bpe.s + +# target to generate assembly for a file +test-tokenizer-1-bpe.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-bpe.dir/build.make tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.s +.PHONY : test-tokenizer-1-bpe.cpp.s + +test-tokenizer-1-spm.o: test-tokenizer-1-spm.cpp.o +.PHONY : test-tokenizer-1-spm.o + +# target to build an object file +test-tokenizer-1-spm.cpp.o: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o +.PHONY : test-tokenizer-1-spm.cpp.o + +test-tokenizer-1-spm.i: test-tokenizer-1-spm.cpp.i +.PHONY : test-tokenizer-1-spm.i + +# target to preprocess a source file +test-tokenizer-1-spm.cpp.i: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.i +.PHONY : test-tokenizer-1-spm.cpp.i + +test-tokenizer-1-spm.s: test-tokenizer-1-spm.cpp.s +.PHONY : test-tokenizer-1-spm.s + +# target to generate assembly for a file +test-tokenizer-1-spm.cpp.s: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(MAKE) $(MAKESILENT) -f tests/CMakeFiles/test-tokenizer-1-spm.dir/build.make tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.s +.PHONY : test-tokenizer-1-spm.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... test" + @echo "... test-arg-parser" + @echo "... test-autorelease" + @echo "... test-backend-ops" + @echo "... test-barrier" + @echo "... test-c" + @echo "... test-chat-template" + @echo "... test-grammar-integration" + @echo "... test-grammar-parser" + @echo "... test-json-schema-to-grammar" + @echo "... test-llama-grammar" + @echo "... test-log" + @echo "... test-model-load-cancel" + @echo "... test-quantize-fns" + @echo "... test-quantize-perf" + @echo "... test-rope" + @echo "... test-sampling" + @echo "... test-tokenizer-0" + @echo "... test-tokenizer-1-bpe" + @echo "... test-tokenizer-1-spm" + @echo "... get-model.o" + @echo "... get-model.i" + @echo "... get-model.s" + @echo "... test-arg-parser.o" + @echo "... test-arg-parser.i" + @echo "... test-arg-parser.s" + @echo "... test-autorelease.o" + @echo "... test-autorelease.i" + @echo "... test-autorelease.s" + @echo "... test-backend-ops.o" + @echo "... test-backend-ops.i" + @echo "... test-backend-ops.s" + @echo "... test-barrier.o" + @echo "... test-barrier.i" + @echo "... test-barrier.s" + @echo "... test-c.o" + @echo "... test-c.i" + @echo "... test-c.s" + @echo "... test-chat-template.o" + @echo "... test-chat-template.i" + @echo "... test-chat-template.s" + @echo "... test-grammar-integration.o" + @echo "... test-grammar-integration.i" + @echo "... test-grammar-integration.s" + @echo "... test-grammar-parser.o" + @echo "... test-grammar-parser.i" + @echo "... test-grammar-parser.s" + @echo "... test-json-schema-to-grammar.o" + @echo "... test-json-schema-to-grammar.i" + @echo "... test-json-schema-to-grammar.s" + @echo "... test-llama-grammar.o" + @echo "... test-llama-grammar.i" + @echo "... test-llama-grammar.s" + @echo "... test-log.o" + @echo "... test-log.i" + @echo "... test-log.s" + @echo "... test-model-load-cancel.o" + @echo "... test-model-load-cancel.i" + @echo "... test-model-load-cancel.s" + @echo "... test-quantize-fns.o" + @echo "... test-quantize-fns.i" + @echo "... test-quantize-fns.s" + @echo "... test-quantize-perf.o" + @echo "... test-quantize-perf.i" + @echo "... test-quantize-perf.s" + @echo "... test-rope.o" + @echo "... test-rope.i" + @echo "... test-rope.s" + @echo "... test-sampling.o" + @echo "... test-sampling.i" + @echo "... test-sampling.s" + @echo "... test-tokenizer-0.o" + @echo "... test-tokenizer-0.i" + @echo "... test-tokenizer-0.s" + @echo "... test-tokenizer-1-bpe.o" + @echo "... test-tokenizer-1-bpe.i" + @echo "... test-tokenizer-1-bpe.s" + @echo "... test-tokenizer-1-spm.o" + @echo "... test-tokenizer-1-spm.i" + @echo "... test-tokenizer-1-spm.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build" && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/llama.cpp/build/tests/cmake_install.cmake b/llama.cpp/build/tests/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fb4e49efc0f9da47a93479c54badbf0feeadaa64 --- /dev/null +++ b/llama.cpp/build/tests/cmake_install.cmake @@ -0,0 +1,404 @@ +# Install script for directory: /home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/tests + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-0") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-0") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-1-bpe") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-bpe") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-tokenizer-1-spm") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-tokenizer-1-spm") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-log") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-log") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-arg-parser") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-arg-parser") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-sampling") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-sampling") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-chat-template") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-chat-template") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-grammar-parser") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-parser") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-grammar-integration") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-grammar-integration") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-llama-grammar") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-llama-grammar") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-backend-ops") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-backend-ops") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-model-load-cancel") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-model-load-cancel") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-autorelease") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-autorelease") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-barrier") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-barrier") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-quantize-fns") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-fns") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-quantize-perf") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-quantize-perf") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-rope") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-rope") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/bin/test-json-schema-to-grammar") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar") + file(RPATH_CHANGE + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar" + OLD_RPATH "/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src:/home/mathis-portable/Documents/KTH/Scalable Machine Learning/lab_project/ID2224_Lab2/llama.cpp/build/ggml/src/ggml-cpu:" + NEW_RPATH "") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/test-json-schema-to-grammar") + endif() + endif() +endif() + diff --git a/llama.cpp/ci/README.md b/llama.cpp/ci/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4064705190697a7da430e1b85863afe3c71ea123 --- /dev/null +++ b/llama.cpp/ci/README.md @@ -0,0 +1,29 @@ +# CI + +In addition to [Github Actions](https://github.com/ggerganov/llama.cpp/actions) `llama.cpp` uses a custom CI framework: + +https://github.com/ggml-org/ci + +It monitors the `master` branch for new commits and runs the +[ci/run.sh](https://github.com/ggerganov/llama.cpp/blob/master/ci/run.sh) script on dedicated cloud instances. This allows us +to execute heavier workloads compared to just using Github Actions. Also with time, the cloud instances will be scaled +to cover various hardware architectures, including GPU and Apple Silicon instances. + +Collaborators can optionally trigger the CI run by adding the `ggml-ci` keyword to their commit message. +Only the branches of this repo are monitored for this keyword. + +It is a good practice, before publishing changes to execute the full CI locally on your machine: + +```bash +mkdir tmp + +# CPU-only build +bash ./ci/run.sh ./tmp/results ./tmp/mnt + +# with CUDA support +GG_BUILD_CUDA=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt + +# with SYCL support +source /opt/intel/oneapi/setvars.sh +GG_BUILD_SYCL=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt +``` diff --git a/llama.cpp/ci/run.sh b/llama.cpp/ci/run.sh new file mode 100644 index 0000000000000000000000000000000000000000..abf08a4ff64110e0fa9bc82180b94701086d31a8 --- /dev/null +++ b/llama.cpp/ci/run.sh @@ -0,0 +1,854 @@ +#!/bin/bash +# +# sample usage: +# +# mkdir tmp +# +# # CPU-only build +# bash ./ci/run.sh ./tmp/results ./tmp/mnt +# +# # with CUDA support +# GG_BUILD_CUDA=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt +# +# # with SYCL support +# GG_BUILD_SYCL=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt +# +# # with VULKAN support +# GG_BUILD_VULKAN=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt +# + +if [ -z "$2" ]; then + echo "usage: $0 " + exit 1 +fi + +mkdir -p "$1" +mkdir -p "$2" + +OUT=$(realpath "$1") +MNT=$(realpath "$2") + +rm -f "$OUT/*.log" +rm -f "$OUT/*.exit" +rm -f "$OUT/*.md" + +sd=`dirname $0` +cd $sd/../ +SRC=`pwd` + +CMAKE_EXTRA="-DLLAMA_FATAL_WARNINGS=ON" + +if [ ! -z ${GG_BUILD_METAL} ]; then + CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_METAL=ON -DGGML_METAL_USE_BF16=ON" +fi + +if [ ! -z ${GG_BUILD_CUDA} ]; then + CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=native" +fi + +if [ ! -z ${GG_BUILD_SYCL} ]; then + if [ -z ${ONEAPI_ROOT} ]; then + echo "Not detected ONEAPI_ROOT, please install oneAPI base toolkit and enable it by:" + echo "source /opt/intel/oneapi/setvars.sh" + exit 1 + fi + + CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_SYCL=1 -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL_F16=ON" +fi + +if [ ! -z ${GG_BUILD_VULKAN} ]; then + CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_VULKAN=1" +fi +## helpers + +# download a file if it does not exist or if it is outdated +function gg_wget { + local out=$1 + local url=$2 + + local cwd=`pwd` + + mkdir -p $out + cd $out + + # should not re-download if file is the same + wget -nv -N $url + + cd $cwd +} + +function gg_printf { + printf -- "$@" >> $OUT/README.md +} + +function gg_run { + ci=$1 + + set -o pipefail + set -x + + gg_run_$ci | tee $OUT/$ci.log + cur=$? + echo "$cur" > $OUT/$ci.exit + + set +x + set +o pipefail + + gg_sum_$ci + + ret=$((ret | cur)) +} + +## ci + +# ctest_debug + +function gg_run_ctest_debug { + cd ${SRC} + + rm -rf build-ci-debug && mkdir build-ci-debug && cd build-ci-debug + + set -e + + # Check cmake, make and ctest are installed + gg_check_build_requirements + + (time cmake -DCMAKE_BUILD_TYPE=Debug ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + (time ctest --output-on-failure -L main -E test-opt ) 2>&1 | tee -a $OUT/${ci}-ctest.log + + set +e +} + +function gg_sum_ctest_debug { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Runs ctest in debug mode\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '```\n' + gg_printf '%s\n' "$(cat $OUT/${ci}-ctest.log)" + gg_printf '```\n' + gg_printf '\n' +} + +# ctest_release + +function gg_run_ctest_release { + cd ${SRC} + + rm -rf build-ci-release && mkdir build-ci-release && cd build-ci-release + + set -e + + # Check cmake, make and ctest are installed + gg_check_build_requirements + + (time cmake -DCMAKE_BUILD_TYPE=Release ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + if [ -z ${GG_BUILD_LOW_PERF} ]; then + (time ctest --output-on-failure -L main ) 2>&1 | tee -a $OUT/${ci}-ctest.log + else + (time ctest --output-on-failure -L main -E test-opt ) 2>&1 | tee -a $OUT/${ci}-ctest.log + fi + + set +e +} + +function gg_sum_ctest_release { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Runs ctest in release mode\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '```\n' + gg_printf '%s\n' "$(cat $OUT/${ci}-ctest.log)" + gg_printf '```\n' +} + +# test_scripts_debug + +function gg_run_test_scripts_debug { + cd ${SRC} + + set -e + + (cd ./examples/gguf-split && time bash tests.sh "$SRC/build-ci-debug/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + (cd ./examples/quantize && time bash tests.sh "$SRC/build-ci-debug/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + + set +e +} + +function gg_sum_test_scripts_debug { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Runs test scripts in debug mode\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '```\n' + gg_printf '%s\n' "$(cat $OUT/${ci}-scripts.log)" + gg_printf '```\n' + gg_printf '\n' +} + +# test_scripts_release + +function gg_run_test_scripts_release { + cd ${SRC} + + set -e + + (cd ./examples/gguf-split && time bash tests.sh "$SRC/build-ci-release/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + (cd ./examples/quantize && time bash tests.sh "$SRC/build-ci-release/bin" "$MNT/models") 2>&1 | tee -a $OUT/${ci}-scripts.log + + set +e +} + +function gg_sum_test_scripts_release { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Runs test scripts in release mode\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '```\n' + gg_printf '%s\n' "$(cat $OUT/${ci}-scripts.log)" + gg_printf '```\n' + gg_printf '\n' +} + +function gg_get_model { + local gguf_0="$MNT/models/pythia/1.4B/ggml-model-f16.gguf" + local gguf_1="$MNT/models/pythia/2.8B/ggml-model-f16.gguf" + local gguf_2="$MNT/models/open-llama/7B-v2/ggml-model-f16.gguf" + if [[ -s $gguf_0 ]]; then + echo -n "$gguf_0" + elif [[ -s $gguf_1 ]]; then + echo -n "$gguf_1" + elif [[ -s $gguf_2 ]]; then + echo -n "$gguf_2" + else + echo >&2 "No model found. Can't run gg_run_ctest_with_model." + exit 1 + fi +} + +function gg_run_ctest_with_model_debug { + cd ${SRC} + + local model; model=$(gg_get_model) + cd build-ci-debug + set -e + (LLAMACPP_TEST_MODELFILE="$model" time ctest --output-on-failure -L model) 2>&1 | tee -a $OUT/${ci}-ctest.log + set +e + cd .. +} + +function gg_run_ctest_with_model_release { + cd ${SRC} + + local model; model=$(gg_get_model) + cd build-ci-release + set -e + (LLAMACPP_TEST_MODELFILE="$model" time ctest --output-on-failure -L model) 2>&1 | tee -a $OUT/${ci}-ctest.log + set +e + cd .. +} + +function gg_sum_ctest_with_model_debug { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Runs ctest with model files in debug mode\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '```\n' + gg_printf '%s\n' "$(cat $OUT/${ci}-ctest.log)" + gg_printf '```\n' +} + +function gg_sum_ctest_with_model_release { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Runs ctest with model files in release mode\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '```\n' + gg_printf '%s\n' "$(cat $OUT/${ci}-ctest.log)" + gg_printf '```\n' +} + +# open_llama_7b_v2 + +function gg_run_open_llama_7b_v2 { + cd ${SRC} + + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/raw/main/config.json + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/resolve/main/tokenizer.model + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/raw/main/tokenizer_config.json + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/raw/main/special_tokens_map.json + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/raw/main/pytorch_model.bin.index.json + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/resolve/main/pytorch_model-00001-of-00002.bin + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/resolve/main/pytorch_model-00002-of-00002.bin + gg_wget models-mnt/open-llama/7B-v2/ https://huggingface.co/openlm-research/open_llama_7b_v2/raw/main/generation_config.json + + gg_wget models-mnt/wikitext/ https://huggingface.co/datasets/ggml-org/ci/resolve/main/wikitext-2-raw-v1.zip + unzip -o models-mnt/wikitext/wikitext-2-raw-v1.zip -d models-mnt/wikitext/ + + path_models="../models-mnt/open-llama/7B-v2" + path_wiki="../models-mnt/wikitext/wikitext-2-raw" + + rm -rf build-ci-release && mkdir build-ci-release && cd build-ci-release + + set -e + + (time cmake -DCMAKE_BUILD_TYPE=Release ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + python3 ../examples/convert_legacy_llama.py ${path_models} --outfile ${path_models}/ggml-model-f16.gguf + + model_f16="${path_models}/ggml-model-f16.gguf" + model_q8_0="${path_models}/ggml-model-q8_0.gguf" + model_q4_0="${path_models}/ggml-model-q4_0.gguf" + model_q4_1="${path_models}/ggml-model-q4_1.gguf" + model_q5_0="${path_models}/ggml-model-q5_0.gguf" + model_q5_1="${path_models}/ggml-model-q5_1.gguf" + model_q2_k="${path_models}/ggml-model-q2_k.gguf" + model_q3_k="${path_models}/ggml-model-q3_k.gguf" + model_q4_k="${path_models}/ggml-model-q4_k.gguf" + model_q5_k="${path_models}/ggml-model-q5_k.gguf" + model_q6_k="${path_models}/ggml-model-q6_k.gguf" + + wiki_test="${path_wiki}/wiki.test.raw" + + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q4_0} q4_0 + ./bin/llama-quantize ${model_f16} ${model_q4_1} q4_1 + ./bin/llama-quantize ${model_f16} ${model_q5_0} q5_0 + ./bin/llama-quantize ${model_f16} ${model_q5_1} q5_1 + ./bin/llama-quantize ${model_f16} ${model_q2_k} q2_k + ./bin/llama-quantize ${model_f16} ${model_q3_k} q3_k + ./bin/llama-quantize ${model_f16} ${model_q4_k} q4_k + ./bin/llama-quantize ${model_f16} ${model_q5_k} q5_k + ./bin/llama-quantize ${model_f16} ${model_q6_k} q6_k + + (time ./bin/llama-cli --model ${model_f16} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-cli --model ${model_q8_0} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-cli --model ${model_q4_0} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-cli --model ${model_q4_1} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-cli --model ${model_q5_0} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-cli --model ${model_q5_1} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-cli --model ${model_q2_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-cli --model ${model_q3_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-cli --model ${model_q4_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-cli --model ${model_q5_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-cli --model ${model_q6_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-perplexity --model ${model_f16} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-perplexity --model ${model_q8_0} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-perplexity --model ${model_q4_0} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-perplexity --model ${model_q4_1} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-perplexity --model ${model_q5_0} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-perplexity --model ${model_q5_1} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-perplexity --model ${model_q2_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-perplexity --model ${model_q3_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-perplexity --model ${model_q4_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-perplexity --model ${model_q5_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-perplexity --model ${model_q6_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-imatrix --model ${model_f16} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log + + (time ./bin/llama-save-load-state--model ${model_q4_0} -ngl 10 -c 0 ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state--model ${model_q4_0} -ngl 10 -c 0 -fa ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state--model ${model_q4_0} -ngl 99 -c 0 ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state--model ${model_q4_0} -ngl 99 -c 0 -fa ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + + function check_ppl { + qnt="$1" + ppl=$(echo "$2" | grep -oE "[0-9]+\.[0-9]+" | tail -n 1) + + if [ $(echo "$ppl > 20.0" | bc) -eq 1 ]; then + printf ' - %s @ %s (FAIL: ppl > 20.0)\n' "$qnt" "$ppl" + return 20 + fi + + printf ' - %s @ %s OK\n' "$qnt" "$ppl" + return 0 + } + + check_ppl "f16" "$(cat $OUT/${ci}-tg-f16.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q8_0" "$(cat $OUT/${ci}-tg-q8_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_0" "$(cat $OUT/${ci}-tg-q4_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_1" "$(cat $OUT/${ci}-tg-q4_1.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_0" "$(cat $OUT/${ci}-tg-q5_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_1" "$(cat $OUT/${ci}-tg-q5_1.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q2_k" "$(cat $OUT/${ci}-tg-q2_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q3_k" "$(cat $OUT/${ci}-tg-q3_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_k" "$(cat $OUT/${ci}-tg-q4_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_k" "$(cat $OUT/${ci}-tg-q5_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q6_k" "$(cat $OUT/${ci}-tg-q6_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + + cat $OUT/${ci}-imatrix.log | grep "Final" >> $OUT/${ci}-imatrix-sum.log + + set +e +} + +function gg_sum_open_llama_7b_v2 { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'OpenLLaMA 7B-v2:\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '- perplexity:\n%s\n' "$(cat $OUT/${ci}-ppl.log)" + gg_printf '- imatrix:\n```\n%s\n```\n' "$(cat $OUT/${ci}-imatrix-sum.log)" + gg_printf '- f16: \n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-f16.log)" + gg_printf '- q8_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q8_0.log)" + gg_printf '- q4_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_0.log)" + gg_printf '- q4_1:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_1.log)" + gg_printf '- q5_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_0.log)" + gg_printf '- q5_1:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_1.log)" + gg_printf '- q2_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q2_k.log)" + gg_printf '- q3_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q3_k.log)" + gg_printf '- q4_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_k.log)" + gg_printf '- q5_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_k.log)" + gg_printf '- q6_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q6_k.log)" + gg_printf '- save-load-state: \n```\n%s\n```\n' "$(cat $OUT/${ci}-save-load-state.log)" +} + +# pythia_1.4b + +function gg_run_pythia_1_4b { + cd ${SRC} + + gg_wget models-mnt/pythia/1.4B/ https://huggingface.co/EleutherAI/pythia-1.4b/raw/main/config.json + gg_wget models-mnt/pythia/1.4B/ https://huggingface.co/EleutherAI/pythia-1.4b/raw/main/tokenizer.json + gg_wget models-mnt/pythia/1.4B/ https://huggingface.co/EleutherAI/pythia-1.4b/raw/main/tokenizer_config.json + gg_wget models-mnt/pythia/1.4B/ https://huggingface.co/EleutherAI/pythia-1.4b/raw/main/special_tokens_map.json + gg_wget models-mnt/pythia/1.4B/ https://huggingface.co/EleutherAI/pythia-1.4b/resolve/main/pytorch_model.bin + + gg_wget models-mnt/wikitext/ https://huggingface.co/datasets/ggml-org/ci/resolve/main/wikitext-2-raw-v1.zip + unzip -o models-mnt/wikitext/wikitext-2-raw-v1.zip -d models-mnt/wikitext/ + head -n 60 models-mnt/wikitext/wikitext-2-raw/wiki.test.raw > models-mnt/wikitext/wikitext-2-raw/wiki.test-60.raw + + path_models="../models-mnt/pythia/1.4B" + path_wiki="../models-mnt/wikitext/wikitext-2-raw" + + rm -rf build-ci-release && mkdir build-ci-release && cd build-ci-release + + set -e + + (time cmake -DCMAKE_BUILD_TYPE=Release ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + python3 ../convert_hf_to_gguf.py ${path_models} --outfile ${path_models}/ggml-model-f16.gguf + + model_f16="${path_models}/ggml-model-f16.gguf" + model_q8_0="${path_models}/ggml-model-q8_0.gguf" + model_q4_0="${path_models}/ggml-model-q4_0.gguf" + model_q4_1="${path_models}/ggml-model-q4_1.gguf" + model_q5_0="${path_models}/ggml-model-q5_0.gguf" + model_q5_1="${path_models}/ggml-model-q5_1.gguf" + model_q2_k="${path_models}/ggml-model-q2_k.gguf" + model_q3_k="${path_models}/ggml-model-q3_k.gguf" + model_q4_k="${path_models}/ggml-model-q4_k.gguf" + model_q5_k="${path_models}/ggml-model-q5_k.gguf" + model_q6_k="${path_models}/ggml-model-q6_k.gguf" + + wiki_test_60="${path_wiki}/wiki.test-60.raw" + + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q4_0} q4_0 + ./bin/llama-quantize ${model_f16} ${model_q4_1} q4_1 + ./bin/llama-quantize ${model_f16} ${model_q5_0} q5_0 + ./bin/llama-quantize ${model_f16} ${model_q5_1} q5_1 + ./bin/llama-quantize ${model_f16} ${model_q2_k} q2_k + ./bin/llama-quantize ${model_f16} ${model_q3_k} q3_k + ./bin/llama-quantize ${model_f16} ${model_q4_k} q4_k + ./bin/llama-quantize ${model_f16} ${model_q5_k} q5_k + ./bin/llama-quantize ${model_f16} ${model_q6_k} q6_k + + (time ./bin/llama-cli --model ${model_f16} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-cli --model ${model_q8_0} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-cli --model ${model_q4_0} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-cli --model ${model_q4_1} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-cli --model ${model_q5_0} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-cli --model ${model_q5_1} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-cli --model ${model_q2_k} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-cli --model ${model_q3_k} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-cli --model ${model_q4_k} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-cli --model ${model_q5_k} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-cli --model ${model_q6_k} -ngl 99 -c 0 -s 1234 -n 64 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-perplexity --model ${model_f16} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-perplexity --model ${model_q8_0} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-perplexity --model ${model_q4_0} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-perplexity --model ${model_q4_1} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-perplexity --model ${model_q5_0} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-perplexity --model ${model_q5_1} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-perplexity --model ${model_q2_k} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-perplexity --model ${model_q3_k} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-perplexity --model ${model_q4_k} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-perplexity --model ${model_q5_k} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-perplexity --model ${model_q6_k} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-imatrix --model ${model_f16} -f ${wiki_test_60} -ngl 99 -c 128 -b 128 --chunks 1 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log + + (time ./bin/llama-save-load-state --model ${model_q4_0} -ngl 99 -c 0 ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state --model ${model_q4_0} -ngl 99 -c 0 -fa ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + + function check_ppl { + qnt="$1" + ppl=$(echo "$2" | grep -oE "[0-9]+\.[0-9]+" | tail -n 1) + + if [ $(echo "$ppl > 20.0" | bc) -eq 1 ]; then + printf ' - %s @ %s (FAIL: ppl > 20.0)\n' "$qnt" "$ppl" + return 20 + fi + + printf ' - %s @ %s OK\n' "$qnt" "$ppl" + return 0 + } + + check_ppl "f16" "$(cat $OUT/${ci}-tg-f16.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q8_0" "$(cat $OUT/${ci}-tg-q8_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_0" "$(cat $OUT/${ci}-tg-q4_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_1" "$(cat $OUT/${ci}-tg-q4_1.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_0" "$(cat $OUT/${ci}-tg-q5_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_1" "$(cat $OUT/${ci}-tg-q5_1.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + #check_ppl "q2_k" "$(cat $OUT/${ci}-tg-q2_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log # note: ppl > 20.0 for this quant and model + check_ppl "q3_k" "$(cat $OUT/${ci}-tg-q3_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_k" "$(cat $OUT/${ci}-tg-q4_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_k" "$(cat $OUT/${ci}-tg-q5_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q6_k" "$(cat $OUT/${ci}-tg-q6_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + + cat $OUT/${ci}-imatrix.log | grep "Final" >> $OUT/${ci}-imatrix-sum.log + + set +e +} + +function gg_sum_pythia_1_4b { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Pythia 1.4B:\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '- perplexity:\n%s\n' "$(cat $OUT/${ci}-ppl.log)" + gg_printf '- imatrix:\n```\n%s\n```\n' "$(cat $OUT/${ci}-imatrix-sum.log)" + gg_printf '- f16: \n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-f16.log)" + gg_printf '- q8_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q8_0.log)" + gg_printf '- q4_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_0.log)" + gg_printf '- q4_1:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_1.log)" + gg_printf '- q5_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_0.log)" + gg_printf '- q5_1:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_1.log)" + gg_printf '- q2_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q2_k.log)" + gg_printf '- q3_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q3_k.log)" + gg_printf '- q4_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_k.log)" + gg_printf '- q5_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_k.log)" + gg_printf '- q6_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q6_k.log)" + gg_printf '- save-load-state: \n```\n%s\n```\n' "$(cat $OUT/${ci}-save-load-state.log)" +} + +# pythia_2_8b + +function gg_run_pythia_2_8b { + cd ${SRC} + + gg_wget models-mnt/pythia/2.8B/ https://huggingface.co/EleutherAI/pythia-2.8b/raw/main/config.json + gg_wget models-mnt/pythia/2.8B/ https://huggingface.co/EleutherAI/pythia-2.8b/raw/main/tokenizer.json + gg_wget models-mnt/pythia/2.8B/ https://huggingface.co/EleutherAI/pythia-2.8b/raw/main/tokenizer_config.json + gg_wget models-mnt/pythia/2.8B/ https://huggingface.co/EleutherAI/pythia-2.8b/raw/main/special_tokens_map.json + gg_wget models-mnt/pythia/2.8B/ https://huggingface.co/EleutherAI/pythia-2.8b/resolve/main/pytorch_model.bin + + gg_wget models-mnt/wikitext/ https://huggingface.co/datasets/ggml-org/ci/resolve/main/wikitext-2-raw-v1.zip + unzip -o models-mnt/wikitext/wikitext-2-raw-v1.zip -d models-mnt/wikitext/ + + path_models="../models-mnt/pythia/2.8B" + path_wiki="../models-mnt/wikitext/wikitext-2-raw" + + rm -rf build-ci-release && mkdir build-ci-release && cd build-ci-release + + set -e + + (time cmake -DCMAKE_BUILD_TYPE=Release ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + python3 ../convert_hf_to_gguf.py ${path_models} --outfile ${path_models}/ggml-model-f16.gguf + + model_f16="${path_models}/ggml-model-f16.gguf" + model_q8_0="${path_models}/ggml-model-q8_0.gguf" + model_q4_0="${path_models}/ggml-model-q4_0.gguf" + model_q4_1="${path_models}/ggml-model-q4_1.gguf" + model_q5_0="${path_models}/ggml-model-q5_0.gguf" + model_q5_1="${path_models}/ggml-model-q5_1.gguf" + model_q2_k="${path_models}/ggml-model-q2_k.gguf" + model_q3_k="${path_models}/ggml-model-q3_k.gguf" + model_q4_k="${path_models}/ggml-model-q4_k.gguf" + model_q5_k="${path_models}/ggml-model-q5_k.gguf" + model_q6_k="${path_models}/ggml-model-q6_k.gguf" + + wiki_test="${path_wiki}/wiki.test.raw" + + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + ./bin/llama-quantize ${model_f16} ${model_q4_0} q4_0 + ./bin/llama-quantize ${model_f16} ${model_q4_1} q4_1 + ./bin/llama-quantize ${model_f16} ${model_q5_0} q5_0 + ./bin/llama-quantize ${model_f16} ${model_q5_1} q5_1 + ./bin/llama-quantize ${model_f16} ${model_q2_k} q2_k + ./bin/llama-quantize ${model_f16} ${model_q3_k} q3_k + ./bin/llama-quantize ${model_f16} ${model_q4_k} q4_k + ./bin/llama-quantize ${model_f16} ${model_q5_k} q5_k + ./bin/llama-quantize ${model_f16} ${model_q6_k} q6_k + + (time ./bin/llama-cli --model ${model_f16} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-cli --model ${model_q8_0} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-cli --model ${model_q4_0} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-cli --model ${model_q4_1} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-cli --model ${model_q5_0} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-cli --model ${model_q5_1} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-cli --model ${model_q2_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-cli --model ${model_q3_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-cli --model ${model_q4_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-cli --model ${model_q5_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-cli --model ${model_q6_k} -t 1 -ngl 99 -c 0 -s 1234 -n 256 --ignore-eos -p "I believe the meaning of life is" ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-perplexity --model ${model_f16} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-perplexity --model ${model_q8_0} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + (time ./bin/llama-perplexity --model ${model_q4_0} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_0.log + (time ./bin/llama-perplexity --model ${model_q4_1} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_1.log + (time ./bin/llama-perplexity --model ${model_q5_0} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_0.log + (time ./bin/llama-perplexity --model ${model_q5_1} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_1.log + (time ./bin/llama-perplexity --model ${model_q2_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q2_k.log + (time ./bin/llama-perplexity --model ${model_q3_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q3_k.log + (time ./bin/llama-perplexity --model ${model_q4_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q4_k.log + (time ./bin/llama-perplexity --model ${model_q5_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q5_k.log + (time ./bin/llama-perplexity --model ${model_q6_k} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-tg-q6_k.log + + (time ./bin/llama-imatrix --model ${model_f16} -f ${wiki_test} -t 1 -ngl 99 -c 2048 -b 512 --chunks 4 ) 2>&1 | tee -a $OUT/${ci}-imatrix.log + + (time ./bin/llama-save-load-state --model ${model_q4_0} -ngl 10 -c 0 ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state --model ${model_q4_0} -ngl 10 -c 0 -fa ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state --model ${model_q4_0} -ngl 99 -c 0 ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + (time ./bin/llama-save-load-state --model ${model_q4_0} -ngl 99 -c 0 -fa ) 2>&1 | tee -a $OUT/${ci}-save-load-state.log + + function check_ppl { + qnt="$1" + ppl=$(echo "$2" | grep -oE "[0-9]+\.[0-9]+" | tail -n 1) + + if [ $(echo "$ppl > 20.0" | bc) -eq 1 ]; then + printf ' - %s @ %s (FAIL: ppl > 20.0)\n' "$qnt" "$ppl" + return 20 + fi + + printf ' - %s @ %s OK\n' "$qnt" "$ppl" + return 0 + } + + check_ppl "f16" "$(cat $OUT/${ci}-tg-f16.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q8_0" "$(cat $OUT/${ci}-tg-q8_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_0" "$(cat $OUT/${ci}-tg-q4_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_1" "$(cat $OUT/${ci}-tg-q4_1.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_0" "$(cat $OUT/${ci}-tg-q5_0.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_1" "$(cat $OUT/${ci}-tg-q5_1.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + #check_ppl "q2_k" "$(cat $OUT/${ci}-tg-q2_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log # note: ppl > 20.0 for this quant and model + check_ppl "q3_k" "$(cat $OUT/${ci}-tg-q3_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q4_k" "$(cat $OUT/${ci}-tg-q4_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q5_k" "$(cat $OUT/${ci}-tg-q5_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + check_ppl "q6_k" "$(cat $OUT/${ci}-tg-q6_k.log | grep "^\[1\]")" | tee -a $OUT/${ci}-ppl.log + + cat $OUT/${ci}-imatrix.log | grep "Final" >> $OUT/${ci}-imatrix-sum.log + + set +e +} + +function gg_sum_pythia_2_8b { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Pythia 2.8B:\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '- perplexity:\n%s\n' "$(cat $OUT/${ci}-ppl.log)" + gg_printf '- imatrix:\n```\n%s\n```\n' "$(cat $OUT/${ci}-imatrix-sum.log)" + gg_printf '- f16: \n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-f16.log)" + gg_printf '- q8_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q8_0.log)" + gg_printf '- q4_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_0.log)" + gg_printf '- q4_1:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_1.log)" + gg_printf '- q5_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_0.log)" + gg_printf '- q5_1:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_1.log)" + gg_printf '- q2_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q2_k.log)" + gg_printf '- q3_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q3_k.log)" + gg_printf '- q4_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q4_k.log)" + gg_printf '- q5_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q5_k.log)" + gg_printf '- q6_k:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q6_k.log)" + gg_printf '- save-load-state: \n```\n%s\n```\n' "$(cat $OUT/${ci}-save-load-state.log)" +} + +# bge-small + +function gg_run_embd_bge_small { + cd ${SRC} + + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/config.json + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/tokenizer.json + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/tokenizer_config.json + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/special_tokens_map.json + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/resolve/main/pytorch_model.bin + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/sentence_bert_config.json + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/vocab.txt + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/modules.json + gg_wget models-mnt/bge-small/ https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/config.json + + gg_wget models-mnt/bge-small/1_Pooling https://huggingface.co/BAAI/bge-small-en-v1.5/raw/main/1_Pooling/config.json + + path_models="../models-mnt/bge-small" + + rm -rf build-ci-release && mkdir build-ci-release && cd build-ci-release + + set -e + + (time cmake -DCMAKE_BUILD_TYPE=Release ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + python3 ../convert_hf_to_gguf.py ${path_models} --outfile ${path_models}/ggml-model-f16.gguf + + model_f16="${path_models}/ggml-model-f16.gguf" + model_q8_0="${path_models}/ggml-model-q8_0.gguf" + + ./bin/llama-quantize ${model_f16} ${model_q8_0} q8_0 + + (time ./bin/llama-embedding --model ${model_f16} -p "I believe the meaning of life is" -ngl 99 -c 0 ) 2>&1 | tee -a $OUT/${ci}-tg-f16.log + (time ./bin/llama-embedding --model ${model_q8_0} -p "I believe the meaning of life is" -ngl 99 -c 0 ) 2>&1 | tee -a $OUT/${ci}-tg-q8_0.log + + set +e +} + +function gg_sum_embd_bge_small { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'BGE Small (BERT):\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '- f16: \n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-f16.log)" + gg_printf '- q8_0:\n```\n%s\n```\n' "$(cat $OUT/${ci}-tg-q8_0.log)" +} + +# rerank_tiny + +function gg_run_rerank_tiny { + cd ${SRC} + + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/config.json + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/tokenizer.json + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/tokenizer_config.json + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/special_tokens_map.json + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/resolve/main/pytorch_model.bin + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/sentence_bert_config.json + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/vocab.txt + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/modules.json + gg_wget models-mnt/rerank-tiny/ https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/config.json + + gg_wget models-mnt/rerank-tiny/1_Pooling https://huggingface.co/jinaai/jina-reranker-v1-tiny-en/raw/main/1_Pooling/config.json + + path_models="../models-mnt/rerank-tiny" + + rm -rf build-ci-release && mkdir build-ci-release && cd build-ci-release + + set -e + + (time cmake -DCMAKE_BUILD_TYPE=Release ${CMAKE_EXTRA} .. ) 2>&1 | tee -a $OUT/${ci}-cmake.log + (time make -j$(nproc) ) 2>&1 | tee -a $OUT/${ci}-make.log + + python3 ../convert_hf_to_gguf.py ${path_models} --outfile ${path_models}/ggml-model-f16.gguf + + model_f16="${path_models}/ggml-model-f16.gguf" + + # for this model, the SEP token is "" + (time ./bin/llama-embedding --model ${model_f16} -p "what is panda?hi\nwhat is panda?it's a bear\nwhat is panda?The giant panda (Ailuropoda melanoleuca), sometimes called a panda bear or simply panda, is a bear species endemic to China." -ngl 99 -c 0 --pooling rank --embd-normalize -1 --verbose-prompt) 2>&1 | tee -a $OUT/${ci}-rk-f16.log + + # sample output + # rerank score 0: 0.029 + # rerank score 1: 0.029 + # rerank score 2: 0.135 + + # check that the score is in the range [$3, $4] + function check_score { + qnt="$1" + score=$(echo "$2" | grep -oE "[0-9]+\.[0-9]+" | tail -n 1) + + if [ $(echo "$score < $3" | bc) -eq 1 ] || [ $(echo "$score > $4" | bc) -eq 1 ]; then + printf ' - %s @ %s (FAIL: score not in range [%s, %s])\n' "$qnt" "$score" "$3" "$4" + return 20 + fi + + printf ' - %s @ %s OK\n' "$qnt" "$score" + return 0 + } + + check_score "rerank score 0" "$(cat $OUT/${ci}-rk-f16.log | grep "rerank score 0")" "0.00" "0.05" | tee -a $OUT/${ci}-rk-f16.log + check_score "rerank score 1" "$(cat $OUT/${ci}-rk-f16.log | grep "rerank score 1")" "0.00" "0.05" | tee -a $OUT/${ci}-rk-f16.log + check_score "rerank score 2" "$(cat $OUT/${ci}-rk-f16.log | grep "rerank score 2")" "0.10" "0.30" | tee -a $OUT/${ci}-rk-f16.log + + set +e +} + +function gg_sum_rerank_tiny { + gg_printf '### %s\n\n' "${ci}" + + gg_printf 'Rerank Tiny (Jina):\n' + gg_printf '- status: %s\n' "$(cat $OUT/${ci}.exit)" + gg_printf '- f16: \n```\n%s\n```\n' "$(cat $OUT/${ci}-rk-f16.log)" +} + +function gg_check_build_requirements { + if ! command -v cmake &> /dev/null; then + gg_printf 'cmake not found, please install' + fi + + if ! command -v make &> /dev/null; then + gg_printf 'make not found, please install' + fi + + if ! command -v ctest &> /dev/null; then + gg_printf 'ctest not found, please install' + fi +} + +## main + +export LLAMA_LOG_PREFIX=1 +export LLAMA_LOG_TIMESTAMPS=1 + +if [ -z ${GG_BUILD_LOW_PERF} ]; then + # Create symlink: ./llama.cpp/models-mnt -> $MNT/models/models-mnt + rm -rf ${SRC}/models-mnt + mnt_models=${MNT}/models + mkdir -p ${mnt_models} + ln -sfn ${mnt_models} ${SRC}/models-mnt + + # Create a fresh python3 venv and enter it + if ! python3 -m venv "$MNT/venv"; then + echo "Error: Failed to create Python virtual environment at $MNT/venv." + exit 1 + fi + source "$MNT/venv/bin/activate" + + pip install -r ${SRC}/requirements.txt --disable-pip-version-check + pip install --editable gguf-py --disable-pip-version-check +fi + +ret=0 + +test $ret -eq 0 && gg_run ctest_debug +test $ret -eq 0 && gg_run ctest_release + +if [ -z ${GG_BUILD_LOW_PERF} ]; then + test $ret -eq 0 && gg_run embd_bge_small + test $ret -eq 0 && gg_run rerank_tiny + + if [ -z ${GG_BUILD_CLOUD} ] || [ ${GG_BUILD_EXTRA_TESTS_0} ]; then + test $ret -eq 0 && gg_run test_scripts_debug + test $ret -eq 0 && gg_run test_scripts_release + fi + + if [ -z ${GG_BUILD_VRAM_GB} ] || [ ${GG_BUILD_VRAM_GB} -ge 8 ]; then + if [ -z ${GG_BUILD_CUDA} ] && [ -z ${GG_BUILD_VULKAN} ]; then + test $ret -eq 0 && gg_run pythia_1_4b + else + test $ret -eq 0 && gg_run pythia_2_8b + #test $ret -eq 0 && gg_run open_llama_7b_v2 + fi + test $ret -eq 0 && gg_run ctest_with_model_debug + test $ret -eq 0 && gg_run ctest_with_model_release + fi +fi + +exit $ret diff --git a/llama.cpp/cmake/arm64-apple-clang.cmake b/llama.cpp/cmake/arm64-apple-clang.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5fcd2882afc9d96ccc1c28396b91e5e46c93f66c --- /dev/null +++ b/llama.cpp/cmake/arm64-apple-clang.cmake @@ -0,0 +1,16 @@ +set( CMAKE_SYSTEM_NAME Darwin ) +set( CMAKE_SYSTEM_PROCESSOR arm64 ) + +set( target arm64-apple-darwin-macho ) + +set( CMAKE_C_COMPILER clang ) +set( CMAKE_CXX_COMPILER clang++ ) + +set( CMAKE_C_COMPILER_TARGET ${target} ) +set( CMAKE_CXX_COMPILER_TARGET ${target} ) + +set( arch_c_flags "-march=armv8.4-a -fvectorize -ffp-model=fast -fno-finite-math-only" ) +set( warn_c_flags "-Wno-format -Wno-unused-variable -Wno-unused-function" ) + +set( CMAKE_C_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" ) +set( CMAKE_CXX_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" ) diff --git a/llama.cpp/cmake/arm64-windows-llvm.cmake b/llama.cpp/cmake/arm64-windows-llvm.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8023796800683240e32048180a1eb874ddab1963 --- /dev/null +++ b/llama.cpp/cmake/arm64-windows-llvm.cmake @@ -0,0 +1,16 @@ +set( CMAKE_SYSTEM_NAME Windows ) +set( CMAKE_SYSTEM_PROCESSOR arm64 ) + +set( target arm64-pc-windows-msvc ) + +set( CMAKE_C_COMPILER clang ) +set( CMAKE_CXX_COMPILER clang++ ) + +set( CMAKE_C_COMPILER_TARGET ${target} ) +set( CMAKE_CXX_COMPILER_TARGET ${target} ) + +set( arch_c_flags "-march=armv8.7-a -fvectorize -ffp-model=fast -fno-finite-math-only" ) +set( warn_c_flags "-Wno-format -Wno-unused-variable -Wno-unused-function -Wno-gnu-zero-variadic-macro-arguments" ) + +set( CMAKE_C_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" ) +set( CMAKE_CXX_FLAGS_INIT "${arch_c_flags} ${warn_c_flags}" ) diff --git a/llama.cpp/cmake/arm64-windows-msvc.cmake b/llama.cpp/cmake/arm64-windows-msvc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c77631420ce848d051eb4ef774313964dd5636ed --- /dev/null +++ b/llama.cpp/cmake/arm64-windows-msvc.cmake @@ -0,0 +1,6 @@ +set( CMAKE_SYSTEM_NAME Windows ) +set( CMAKE_SYSTEM_PROCESSOR arm64 ) + +set( target arm64-pc-windows-msvc ) +set( CMAKE_C_COMPILER_TARGET ${target} ) +set( CMAKE_CXX_COMPILER_TARGET ${target} ) diff --git a/llama.cpp/cmake/build-info.cmake b/llama.cpp/cmake/build-info.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ea3dc55c83439a91c9289760bc17b1b0dcd69aa1 --- /dev/null +++ b/llama.cpp/cmake/build-info.cmake @@ -0,0 +1,58 @@ +set(BUILD_NUMBER 0) +set(BUILD_COMMIT "unknown") +set(BUILD_COMPILER "unknown") +set(BUILD_TARGET "unknown") + +# Look for git +find_package(Git) +if(NOT Git_FOUND) + find_program(GIT_EXECUTABLE NAMES git git.exe) + if(GIT_EXECUTABLE) + set(Git_FOUND TRUE) + message(STATUS "Found Git: ${GIT_EXECUTABLE}") + else() + message(WARNING "Git not found. Build info will not be accurate.") + endif() +endif() + +# Get the commit count and hash +if(Git_FOUND) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE HEAD + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE RES + ) + if (RES EQUAL 0) + set(BUILD_COMMIT ${HEAD}) + endif() + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE COUNT + OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE RES + ) + if (RES EQUAL 0) + set(BUILD_NUMBER ${COUNT}) + endif() +endif() + +if(MSVC) + set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}") + set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME}) +else() + execute_process( + COMMAND sh -c "$@ --version | head -1" _ ${CMAKE_C_COMPILER} + OUTPUT_VARIABLE OUT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(BUILD_COMPILER ${OUT}) + execute_process( + COMMAND ${CMAKE_C_COMPILER} -dumpmachine + OUTPUT_VARIABLE OUT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(BUILD_TARGET ${OUT}) +endif() diff --git a/llama.cpp/cmake/common.cmake b/llama.cpp/cmake/common.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0f54871e4143dcd7bbab3b6ae0cb19b8d1a80a13 --- /dev/null +++ b/llama.cpp/cmake/common.cmake @@ -0,0 +1,33 @@ +function(llama_add_compile_flags) + if (LLAMA_FATAL_WARNINGS) + if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + list(APPEND C_FLAGS -Werror) + list(APPEND CXX_FLAGS -Werror) + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + add_compile_options(/WX) + endif() + endif() + + if (LLAMA_ALL_WARNINGS) + if (NOT MSVC) + list(APPEND C_FLAGS -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes + -Werror=implicit-int -Werror=implicit-function-declaration) + + list(APPEND CXX_FLAGS -Wmissing-declarations -Wmissing-noreturn) + + list(APPEND WARNING_FLAGS -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function) + + list(APPEND C_FLAGS ${WARNING_FLAGS}) + list(APPEND CXX_FLAGS ${WARNING_FLAGS}) + + ggml_get_flags(${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}) + + add_compile_options("$<$:${C_FLAGS};${GF_C_FLAGS}>" + "$<$:${CXX_FLAGS};${GF_CXX_FLAGS}>") + else() + # todo : msvc + set(C_FLAGS "" PARENT_SCOPE) + set(CXX_FLAGS "" PARENT_SCOPE) + endif() + endif() +endfunction() diff --git a/llama.cpp/cmake/git-vars.cmake b/llama.cpp/cmake/git-vars.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1a4c24ebf6adeb1126e626f56de601621179353d --- /dev/null +++ b/llama.cpp/cmake/git-vars.cmake @@ -0,0 +1,22 @@ +find_package(Git) + +# the commit's SHA1 +execute_process(COMMAND + "${GIT_EXECUTABLE}" describe --match=NeVeRmAtCh --always --abbrev=8 + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_SHA1 + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + +# the date of the commit +execute_process(COMMAND + "${GIT_EXECUTABLE}" log -1 --format=%ad --date=local + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_DATE + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + +# the subject of the commit +execute_process(COMMAND + "${GIT_EXECUTABLE}" log -1 --format=%s + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_COMMIT_SUBJECT + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) diff --git a/llama.cpp/cmake/llama-config.cmake.in b/llama.cpp/cmake/llama-config.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..5c55bc6b822a6e9a5ddf59095e8089989f83268e --- /dev/null +++ b/llama.cpp/cmake/llama-config.cmake.in @@ -0,0 +1,178 @@ +set(LLAMA_VERSION @LLAMA_INSTALL_VERSION@) +set(LLAMA_BUILD_COMMIT @LLAMA_BUILD_COMMIT@) +set(LLAMA_BUILD_NUMBER @LLAMA_BUILD_NUMBER@) +set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@) + +set(GGML_STATIC @GGML_STATIC@) +set(GGML_NATIVE @GGML_NATIVE@) +set(GGML_LTO @GGML_LTO@) +set(GGML_CCACHE @GGML_CCACHE@) +set(GGML_AVX @GGML_AVX@) +set(GGML_AVX2 @GGML_AVX2@) +set(GGML_AVX512 @GGML_AVX512@) +set(GGML_AVX512_VBMI @GGML_AVX512_VBMI@) +set(GGML_AVX512_VNNI @GGML_AVX512_VNNI@) +set(GGML_AVX512_BF16 @GGML_AVX512_BF16@) +set(GGML_AMX_TILE @GGML_AMX_TILE@) +set(GGML_AMX_INT8 @GGML_AMX_INT8@) +set(GGML_AMX_BF16 @GGML_AMX_BF16@) +set(GGML_FMA @GGML_FMA@) +set(GGML_LASX @GGML_LASX@) +set(GGML_LSX @GGML_LSX@) +set(GGML_RVV @GGML_RVV@) +set(GGML_SVE @GGML_SVE@) + +set(GGML_ACCELERATE @GGML_ACCELERATE@) +set(GGML_OPENMP @GGML_OPENMP@) +set(GGML_CPU_HBM @GGML_CPU_HBM@) +set(GGML_BLAS_VENDOR @GGML_BLAS_VENDOR@) + +set(GGML_CUDA_FORCE_MMQ @GGML_CUDA_FORCE_MMQ@) +set(GGML_CUDA_FORCE_CUBLAS @GGML_CUDA_FORCE_CUBLAS@) +set(GGML_CUDA_F16 @GGML_CUDA_F16@) +set(GGML_CUDA_PEER_MAX_BATCH_SIZE @GGML_CUDA_PEER_MAX_BATCH_SIZE@) +set(GGML_CUDA_NO_PEER_COPY @GGML_CUDA_NO_PEER_COPY@) +set(GGML_CUDA_NO_VMM @GGML_CUDA_NO_VMM@) +set(GGML_CUDA_FA_ALL_QUANTS @GGML_CUDA_FA_ALL_QUANTS@) +set(GGML_CUDA_GRAPHS @GGML_CUDA_GRAPHS@) + +set(GGML_HIP_UMA @GGML_HIP_UMA@) + +set(GGML_VULKAN_CHECK_RESULTS @GGML_VULKAN_CHECK_RESULTS@) +set(GGML_VULKAN_DEBUG @GGML_VULKAN_DEBUG@) +set(GGML_VULKAN_MEMORY_DEBUG @GGML_VULKAN_MEMORY_DEBUG@) +set(GGML_VULKAN_SHADER_DEBUG_INFO @GGML_VULKAN_SHADER_DEBUG_INFO@) +set(GGML_VULKAN_PERF @GGML_VULKAN_PERF@) +set(GGML_VULKAN_VALIDATE @GGML_VULKAN_VALIDATE@) +set(GGML_VULKAN_RUN_TESTS @GGML_VULKAN_RUN_TESTS@) + +set(GGML_METAL_USE_BF16 @GGML_METAL_USE_BF16@) +set(GGML_METAL_NDEBUG @GGML_METAL_NDEBUG@) +set(GGML_METAL_SHADER_DEBUG @GGML_METAL_SHADER_DEBUG@) +set(GGML_METAL_EMBED_LIBRARY @GGML_METAL_EMBED_LIBRARY@) +set(GGML_METAL_MACOSX_VERSION_MIN @GGML_METAL_MACOSX_VERSION_MIN@) +set(GGML_METAL_STD @GGML_METAL_STD@) + +set(GGML_SYCL_F16 @GGML_SYCL_F16@) +set(GGML_SYCL_TARGET @GGML_SYCL_TARGET@) +set(GGML_SYCL_DEVICE_ARCH @GGML_SYCL_DEVICE_ARCH@) + + +@PACKAGE_INIT@ + +set_and_check(LLAMA_INCLUDE_DIR "@PACKAGE_LLAMA_INCLUDE_INSTALL_DIR@") +set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@") +set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@") + +find_package(Threads REQUIRED) + +set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@") +set(_llama_link_deps "") +set(_llama_link_opts "") +foreach(_ggml_lib ggml ggml-base) + string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY") + find_library(${_ggml_lib_var} ${_ggml_lib} + REQUIRED + HINTS ${LLAMA_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH + ) + list(APPEND _llama_link_deps "${${_ggml_lib_var}}") + message(STATUS "Found ${${_ggml_lib_var}}") +endforeach() + +foreach(backend amx blas cann cpu cuda hip kompute metal musa rpc sycl vulkan) + string(TOUPPER "GGML_${backend}" backend_id) + set(_ggml_lib "ggml-${backend}") + string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY") + + find_library(${_ggml_lib_var} ${_ggml_lib} + HINTS ${LLAMA_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH + ) + if(${_ggml_lib_var}) + list(APPEND _llama_link_deps "${${_ggml_lib_var}}") + set(${backend_id} ON) + message(STATUS "Found backend ${${_ggml_lib_var}}") + else() + set(${backend_id} OFF) + endif() +endforeach() + +if (NOT LLAMA_SHARED_LIB) + if (APPLE AND GGML_ACCELERATE) + find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED) + list(APPEND _llama_link_deps ${ACCELERATE_FRAMEWORK}) + endif() + + if (GGML_OPENMP) + find_package(OpenMP REQUIRED) + list(APPEND _llama_link_deps OpenMP::OpenMP_C OpenMP::OpenMP_CXX) + endif() + + if (GGML_CPU_HBM) + find_library(memkind memkind REQUIRED) + list(APPEND _llama_link_deps memkind) + endif() + + if (GGML_BLAS) + find_package(BLAS REQUIRED) + list(APPEND _llama_link_deps ${BLAS_LIBRARIES}) + list(APPEND _llama_link_opts ${BLAS_LINKER_FLAGS}) + endif() + + if (GGML_CUDA) + find_package(CUDAToolkit REQUIRED) + endif() + + if (GGML_METAL) + find_library(FOUNDATION_LIBRARY Foundation REQUIRED) + find_library(METAL_FRAMEWORK Metal REQUIRED) + find_library(METALKIT_FRAMEWORK MetalKit REQUIRED) + list(APPEND _llama_link_deps ${FOUNDATION_LIBRARY} + ${METAL_FRAMEWORK} ${METALKIT_FRAMEWORK}) + endif() + + if (GGML_VULKAN) + find_package(Vulkan REQUIRED) + list(APPEND _llama_link_deps Vulkan::Vulkan) + endif() + + if (GGML_HIP) + find_package(hip REQUIRED) + find_package(hipblas REQUIRED) + find_package(rocblas REQUIRED) + list(APPEND _llama_link_deps hip::host roc::rocblas roc::hipblas) + endif() + + if (GGML_SYCL) + find_package(DNNL) + if (${DNNL_FOUND} AND GGML_SYCL_TARGET STREQUAL "INTEL") + list(APPEND _llama_link_deps DNNL::dnnl) + endif() + if (WIN32) + find_package(IntelSYCL REQUIRED) + find_package(MKL REQUIRED) + list(APPEND _llama_link_deps IntelSYCL::SYCL_CXX MKL::MKL MKL::MKL_SYCL) + endif() + endif() +endif() + +find_library(llama_LIBRARY llama + REQUIRED + HINTS ${LLAMA_LIB_DIR} + NO_CMAKE_FIND_ROOT_PATH +) + +add_library(llama UNKNOWN IMPORTED) +set_target_properties(llama + PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${LLAMA_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_llama_link_deps}" + INTERFACE_LINK_OPTIONS "${_llama_link_opts}" + INTERFACE_COMPILE_DEFINITIONS "${_llama_transient_defines}" + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${llama_LIBRARY}" + INTERFACE_COMPILE_FEATURES cxx_std_11 + POSITION_INDEPENDENT_CODE ON ) + +check_required_components(Llama) diff --git a/llama.cpp/cmake/llama.pc.in b/llama.cpp/cmake/llama.pc.in new file mode 100644 index 0000000000000000000000000000000000000000..326acbb6108fd02e13787371d6dbefcd511c97f8 --- /dev/null +++ b/llama.cpp/cmake/llama.pc.in @@ -0,0 +1,10 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: llama +Description: Port of Facebook's LLaMA model in C/C++ +Version: @PROJECT_VERSION@ +Libs: -L${libdir} -lllama +Cflags: -I${includedir} diff --git a/llama.cpp/common/CMakeLists.txt b/llama.cpp/common/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..89862fe113946dfa1a85fd7be46f82e63fb85b95 --- /dev/null +++ b/llama.cpp/common/CMakeLists.txt @@ -0,0 +1,92 @@ +# common + +find_package(Threads REQUIRED) + +llama_add_compile_flags() + +# Build info header +# + +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../.git") + set(GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../.git") + + # Is git submodule + if(NOT IS_DIRECTORY "${GIT_DIR}") + file(READ ${GIT_DIR} REAL_GIT_DIR_LINK) + string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" REAL_GIT_DIR ${REAL_GIT_DIR_LINK}) + string(FIND "${REAL_GIT_DIR}" "/" SLASH_POS) + if (SLASH_POS EQUAL 0) + set(GIT_DIR "${REAL_GIT_DIR}") + else() + set(GIT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../${REAL_GIT_DIR}") + endif() + endif() + + if(EXISTS "${GIT_DIR}/index") + set(GIT_INDEX "${GIT_DIR}/index") + else() + message(WARNING "Git index not found in git repository.") + set(GIT_INDEX "") + endif() +else() + message(WARNING "Git repository not found; to enable automatic generation of build info, make sure Git is installed and the project is a Git repository.") + set(GIT_INDEX "") +endif() + +# Add a custom command to rebuild build-info.cpp when .git/index changes +add_custom_command( + OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp" + COMMENT "Generating build details from Git" + COMMAND ${CMAKE_COMMAND} -DMSVC=${MSVC} -DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION} + -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID} -DCMAKE_VS_PLATFORM_NAME=${CMAKE_VS_PLATFORM_NAME} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info-gen-cpp.cmake" + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.." + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/build-info.cpp.in" ${GIT_INDEX} + VERBATIM +) +set(TARGET build_info) +add_library(${TARGET} OBJECT build-info.cpp) +if (BUILD_SHARED_LIBS) + set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +set(TARGET common) + +add_library(${TARGET} STATIC + arg.cpp + arg.h + base64.hpp + common.cpp + common.h + console.cpp + console.h + json-schema-to-grammar.cpp + json.hpp + log.cpp + log.h + ngram-cache.cpp + ngram-cache.h + sampling.cpp + sampling.h + speculative.cpp + speculative.h + ) + +if (BUILD_SHARED_LIBS) + set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() + +set(LLAMA_COMMON_EXTRA_LIBS build_info) + +# Use curl to download model url +if (LLAMA_CURL) + find_package(CURL REQUIRED) + add_definitions(-DLLAMA_USE_CURL) + include_directories(${CURL_INCLUDE_DIRS}) + find_library(CURL_LIBRARY curl REQUIRED) + set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} ${CURL_LIBRARY}) +endif () + +target_include_directories(${TARGET} PUBLIC .) +target_compile_features (${TARGET} PUBLIC cxx_std_17) +target_link_libraries (${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama Threads::Threads) diff --git a/llama.cpp/common/arg.cpp b/llama.cpp/common/arg.cpp new file mode 100644 index 0000000000000000000000000000000000000000..078c7538490c4eab9432caf7257f30271087cacd --- /dev/null +++ b/llama.cpp/common/arg.cpp @@ -0,0 +1,2137 @@ +#include "arg.h" + +#include "log.h" +#include "sampling.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "json-schema-to-grammar.h" + +using json = nlohmann::ordered_json; + +common_arg & common_arg::set_examples(std::initializer_list examples) { + this->examples = std::move(examples); + return *this; +} + +common_arg & common_arg::set_env(const char * env) { + help = help + "\n(env: " + env + ")"; + this->env = env; + return *this; +} + +common_arg & common_arg::set_sparam() { + is_sparam = true; + return *this; +} + +bool common_arg::in_example(enum llama_example ex) { + return examples.find(ex) != examples.end(); +} + +bool common_arg::get_value_from_env(std::string & output) { + if (env == nullptr) return false; + char * value = std::getenv(env); + if (value) { + output = value; + return true; + } + return false; +} + +bool common_arg::has_value_from_env() { + return env != nullptr && std::getenv(env); +} + +static std::vector break_str_into_lines(std::string input, size_t max_char_per_line) { + std::vector result; + std::istringstream iss(input); + std::string line; + auto add_line = [&](const std::string& l) { + if (l.length() <= max_char_per_line) { + result.push_back(l); + } else { + std::istringstream line_stream(l); + std::string word, current_line; + while (line_stream >> word) { + if (current_line.length() + !current_line.empty() + word.length() > max_char_per_line) { + if (!current_line.empty()) result.push_back(current_line); + current_line = word; + } else { + current_line += (!current_line.empty() ? " " : "") + word; + } + } + if (!current_line.empty()) result.push_back(current_line); + } + }; + while (std::getline(iss, line)) { + add_line(line); + } + return result; +} + +std::string common_arg::to_string() { + // params for printing to console + const static int n_leading_spaces = 40; + const static int n_char_per_line_help = 70; // TODO: detect this based on current console + std::string leading_spaces(n_leading_spaces, ' '); + + std::ostringstream ss; + for (const auto arg : args) { + if (arg == args.front()) { + if (args.size() == 1) { + ss << arg; + } else { + // first arg is usually abbreviation, we need padding to make it more beautiful + auto tmp = std::string(arg) + ", "; + auto spaces = std::string(std::max(0, 7 - (int)tmp.size()), ' '); + ss << tmp << spaces; + } + } else { + ss << arg << (arg != args.back() ? ", " : ""); + } + } + if (value_hint) ss << " " << value_hint; + if (value_hint_2) ss << " " << value_hint_2; + if (ss.tellp() > n_leading_spaces - 3) { + // current line is too long, add new line + ss << "\n" << leading_spaces; + } else { + // padding between arg and help, same line + ss << std::string(leading_spaces.size() - ss.tellp(), ' '); + } + const auto help_lines = break_str_into_lines(help, n_char_per_line_help); + for (const auto & line : help_lines) { + ss << (&line == &help_lines.front() ? "" : leading_spaces) << line << "\n"; + } + return ss.str(); +} + +// +// utils +// + +static void common_params_handle_model_default(common_params & params) { + if (!params.hf_repo.empty()) { + // short-hand to avoid specifying --hf-file -> default it to --model + if (params.hf_file.empty()) { + if (params.model.empty()) { + throw std::invalid_argument("error: --hf-repo requires either --hf-file or --model\n"); + } + params.hf_file = params.model; + } else if (params.model.empty()) { + // this is to avoid different repo having same file name, or same file name in different subdirs + std::string filename = params.hf_repo + "_" + params.hf_file; + // to make sure we don't have any slashes in the filename + string_replace_all(filename, "/", "_"); + params.model = fs_get_cache_file(filename); + } + } else if (!params.model_url.empty()) { + if (params.model.empty()) { + auto f = string_split(params.model_url, '#').front(); + f = string_split(f, '?').front(); + params.model = fs_get_cache_file(string_split(f, '/').back()); + } + } else if (params.model.empty()) { + params.model = DEFAULT_MODEL_PATH; + } +} + +// +// CLI argument parsing functions +// + +static bool common_params_parse_ex(int argc, char ** argv, common_params_context & ctx_arg) { + std::string arg; + const std::string arg_prefix = "--"; + common_params & params = ctx_arg.params; + + std::unordered_map arg_to_options; + for (auto & opt : ctx_arg.options) { + for (const auto & arg : opt.args) { + arg_to_options[arg] = &opt; + } + } + + // handle environment variables + for (auto & opt : ctx_arg.options) { + std::string value; + if (opt.get_value_from_env(value)) { + try { + if (opt.handler_void && (value == "1" || value == "true")) { + opt.handler_void(params); + } + if (opt.handler_int) { + opt.handler_int(params, std::stoi(value)); + } + if (opt.handler_string) { + opt.handler_string(params, value); + continue; + } + } catch (std::exception & e) { + throw std::invalid_argument(string_format( + "error while handling environment variable \"%s\": %s\n\n", opt.env, e.what())); + } + } + } + + // handle command line arguments + auto check_arg = [&](int i) { + if (i+1 >= argc) { + throw std::invalid_argument("expected value for argument"); + } + }; + + for (int i = 1; i < argc; i++) { + const std::string arg_prefix = "--"; + + std::string arg = argv[i]; + if (arg.compare(0, arg_prefix.size(), arg_prefix) == 0) { + std::replace(arg.begin(), arg.end(), '_', '-'); + } + if (arg_to_options.find(arg) == arg_to_options.end()) { + throw std::invalid_argument(string_format("error: invalid argument: %s", arg.c_str())); + } + auto opt = *arg_to_options[arg]; + if (opt.has_value_from_env()) { + fprintf(stderr, "warn: %s environment variable is set, but will be overwritten by command line argument %s\n", opt.env, arg.c_str()); + } + try { + if (opt.handler_void) { + opt.handler_void(params); + continue; + } + + // arg with single value + check_arg(i); + std::string val = argv[++i]; + if (opt.handler_int) { + opt.handler_int(params, std::stoi(val)); + continue; + } + if (opt.handler_string) { + opt.handler_string(params, val); + continue; + } + + // arg with 2 values + check_arg(i); + std::string val2 = argv[++i]; + if (opt.handler_str_str) { + opt.handler_str_str(params, val, val2); + continue; + } + } catch (std::exception & e) { + throw std::invalid_argument(string_format( + "error while handling argument \"%s\": %s\n\n" + "usage:\n%s\n\nto show complete usage, run with -h", + arg.c_str(), e.what(), arg_to_options[arg]->to_string().c_str())); + } + } + + postprocess_cpu_params(params.cpuparams, nullptr); + postprocess_cpu_params(params.cpuparams_batch, ¶ms.cpuparams); + + postprocess_cpu_params(params.speculative.cpuparams, ¶ms.cpuparams); + postprocess_cpu_params(params.speculative.cpuparams_batch, ¶ms.cpuparams_batch); + + if (params.prompt_cache_all && (params.interactive || params.interactive_first)) { + throw std::invalid_argument("error: --prompt-cache-all not supported in interactive mode yet\n"); + } + + common_params_handle_model_default(params); + + if (params.escape) { + string_process_escapes(params.prompt); + string_process_escapes(params.input_prefix); + string_process_escapes(params.input_suffix); + for (auto & antiprompt : params.antiprompt) { + string_process_escapes(antiprompt); + } + for (auto & seq_breaker : params.sampling.dry_sequence_breakers) { + string_process_escapes(seq_breaker); + } + } + + if (!params.kv_overrides.empty()) { + params.kv_overrides.emplace_back(); + params.kv_overrides.back().key[0] = 0; + } + + if (params.reranking && params.embedding) { + throw std::invalid_argument("error: either --embedding or --reranking can be specified, but not both"); + } + + return true; +} + +static void common_params_print_usage(common_params_context & ctx_arg) { + auto print_options = [](std::vector & options) { + for (common_arg * opt : options) { + printf("%s", opt->to_string().c_str()); + } + }; + + std::vector common_options; + std::vector sparam_options; + std::vector specific_options; + for (auto & opt : ctx_arg.options) { + // in case multiple LLAMA_EXAMPLE_* are set, we prioritize the LLAMA_EXAMPLE_* matching current example + if (opt.is_sparam) { + sparam_options.push_back(&opt); + } else if (opt.in_example(ctx_arg.ex)) { + specific_options.push_back(&opt); + } else { + common_options.push_back(&opt); + } + } + printf("----- common params -----\n\n"); + print_options(common_options); + printf("\n\n----- sampling params -----\n\n"); + print_options(sparam_options); + // TODO: maybe convert enum llama_example to string + printf("\n\n----- example-specific params -----\n\n"); + print_options(specific_options); +} + +static std::vector parse_device_list(const std::string & value) { + std::vector devices; + auto dev_names = string_split(value, ','); + if (dev_names.empty()) { + throw std::invalid_argument("no devices specified"); + } + if (dev_names.size() == 1 && dev_names[0] == "none") { + devices.push_back(nullptr); + } else { + for (const auto & device : dev_names) { + auto * dev = ggml_backend_dev_by_name(device.c_str()); + if (!dev || ggml_backend_dev_type(dev) != GGML_BACKEND_DEVICE_TYPE_GPU) { + throw std::invalid_argument(string_format("invalid device: %s", device.c_str())); + } + devices.push_back(dev); + } + devices.push_back(nullptr); + } + return devices; +} + +bool common_params_parse(int argc, char ** argv, common_params & params, llama_example ex, void(*print_usage)(int, char **)) { + auto ctx_arg = common_params_parser_init(params, ex, print_usage); + const common_params params_org = ctx_arg.params; // the example can modify the default params + + try { + if (!common_params_parse_ex(argc, argv, ctx_arg)) { + ctx_arg.params = params_org; + return false; + } + if (ctx_arg.params.usage) { + common_params_print_usage(ctx_arg); + if (ctx_arg.print_usage) { + ctx_arg.print_usage(argc, argv); + } + exit(0); + } + } catch (const std::invalid_argument & ex) { + fprintf(stderr, "%s\n", ex.what()); + ctx_arg.params = params_org; + return false; + } + + return true; +} + +static std::string list_builtin_chat_templates() { + std::vector supported_tmpl; + int32_t res = llama_chat_builtin_templates(nullptr, 0); + supported_tmpl.resize(res); + res = llama_chat_builtin_templates(supported_tmpl.data(), supported_tmpl.size()); + std::ostringstream msg; + for (auto & tmpl : supported_tmpl) { + msg << tmpl << (&tmpl == &supported_tmpl.back() ? "" : ", "); + } + return msg.str(); +} + +common_params_context common_params_parser_init(common_params & params, llama_example ex, void(*print_usage)(int, char **)) { + // load dynamic backends + ggml_backend_load_all(); + + common_params_context ctx_arg(params); + ctx_arg.print_usage = print_usage; + ctx_arg.ex = ex; + + std::string sampler_type_chars; + std::string sampler_type_names; + for (const auto & sampler : params.sampling.samplers) { + sampler_type_chars += common_sampler_type_to_chr(sampler); + sampler_type_names += common_sampler_type_to_str(sampler) + ";"; + } + sampler_type_names.pop_back(); + + + /** + * filter options by example + * rules: + * - all examples inherit options from LLAMA_EXAMPLE_COMMON + * - if LLAMA_EXAMPLE_* is set (other than COMMON), we only show the option in the corresponding example + * - if both {LLAMA_EXAMPLE_COMMON, LLAMA_EXAMPLE_*,} are set, we will prioritize the LLAMA_EXAMPLE_* matching current example + */ + auto add_opt = [&](common_arg arg) { + if (arg.in_example(ex) || arg.in_example(LLAMA_EXAMPLE_COMMON)) { + ctx_arg.options.push_back(std::move(arg)); + } + }; + + + add_opt(common_arg( + {"-h", "--help", "--usage"}, + "print usage and exit", + [](common_params & params) { + params.usage = true; + } + )); + add_opt(common_arg( + {"--version"}, + "show version and build info", + [](common_params &) { + fprintf(stderr, "version: %d (%s)\n", LLAMA_BUILD_NUMBER, LLAMA_COMMIT); + fprintf(stderr, "built with %s for %s\n", LLAMA_COMPILER, LLAMA_BUILD_TARGET); + exit(0); + } + )); + add_opt(common_arg( + {"--verbose-prompt"}, + string_format("print a verbose prompt before generation (default: %s)", params.verbose_prompt ? "true" : "false"), + [](common_params & params) { + params.verbose_prompt = true; + } + )); + add_opt(common_arg( + {"--no-display-prompt"}, + string_format("don't print prompt at generation (default: %s)", !params.display_prompt ? "true" : "false"), + [](common_params & params) { + params.display_prompt = false; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-co", "--color"}, + string_format("colorise output to distinguish prompt and user input from generations (default: %s)", params.use_color ? "true" : "false"), + [](common_params & params) { + params.use_color = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL, LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_LOOKUP})); + add_opt(common_arg( + {"-t", "--threads"}, "N", + string_format("number of threads to use during generation (default: %d)", params.cpuparams.n_threads), + [](common_params & params, int value) { + params.cpuparams.n_threads = value; + if (params.cpuparams.n_threads <= 0) { + params.cpuparams.n_threads = std::thread::hardware_concurrency(); + } + } + ).set_env("LLAMA_ARG_THREADS")); + add_opt(common_arg( + {"-tb", "--threads-batch"}, "N", + "number of threads to use during batch and prompt processing (default: same as --threads)", + [](common_params & params, int value) { + params.cpuparams_batch.n_threads = value; + if (params.cpuparams_batch.n_threads <= 0) { + params.cpuparams_batch.n_threads = std::thread::hardware_concurrency(); + } + } + )); + add_opt(common_arg( + {"-C", "--cpu-mask"}, "M", + "CPU affinity mask: arbitrarily long hex. Complements cpu-range (default: \"\")", + [](common_params & params, const std::string & mask) { + params.cpuparams.mask_valid = true; + if (!parse_cpu_mask(mask, params.cpuparams.cpumask)) { + throw std::invalid_argument("invalid cpumask"); + } + } + )); + add_opt(common_arg( + {"-Cr", "--cpu-range"}, "lo-hi", + "range of CPUs for affinity. Complements --cpu-mask", + [](common_params & params, const std::string & range) { + params.cpuparams.mask_valid = true; + if (!parse_cpu_range(range, params.cpuparams.cpumask)) { + throw std::invalid_argument("invalid range"); + } + } + )); + add_opt(common_arg( + {"--cpu-strict"}, "<0|1>", + string_format("use strict CPU placement (default: %u)\n", (unsigned) params.cpuparams.strict_cpu), + [](common_params & params, const std::string & value) { + params.cpuparams.strict_cpu = std::stoul(value); + } + )); + add_opt(common_arg( + {"--prio"}, "N", + string_format("set process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: %d)\n", params.cpuparams.priority), + [](common_params & params, int prio) { + if (prio < 0 || prio > 3) { + throw std::invalid_argument("invalid value"); + } + params.cpuparams.priority = (enum ggml_sched_priority) prio; + } + )); + add_opt(common_arg( + {"--poll"}, "<0...100>", + string_format("use polling level to wait for work (0 - no polling, default: %u)\n", (unsigned) params.cpuparams.poll), + [](common_params & params, const std::string & value) { + params.cpuparams.poll = std::stoul(value); + } + )); + add_opt(common_arg( + {"-Cb", "--cpu-mask-batch"}, "M", + "CPU affinity mask: arbitrarily long hex. Complements cpu-range-batch (default: same as --cpu-mask)", + [](common_params & params, const std::string & mask) { + params.cpuparams_batch.mask_valid = true; + if (!parse_cpu_mask(mask, params.cpuparams_batch.cpumask)) { + throw std::invalid_argument("invalid cpumask"); + } + } + )); + add_opt(common_arg( + {"-Crb", "--cpu-range-batch"}, "lo-hi", + "ranges of CPUs for affinity. Complements --cpu-mask-batch", + [](common_params & params, const std::string & range) { + params.cpuparams_batch.mask_valid = true; + if (!parse_cpu_range(range, params.cpuparams_batch.cpumask)) { + throw std::invalid_argument("invalid range"); + } + } + )); + add_opt(common_arg( + {"--cpu-strict-batch"}, "<0|1>", + "use strict CPU placement (default: same as --cpu-strict)", + [](common_params & params, int value) { + params.cpuparams_batch.strict_cpu = value; + } + )); + add_opt(common_arg( + {"--prio-batch"}, "N", + string_format("set process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: %d)\n", params.cpuparams_batch.priority), + [](common_params & params, int prio) { + if (prio < 0 || prio > 3) { + throw std::invalid_argument("invalid value"); + } + params.cpuparams_batch.priority = (enum ggml_sched_priority) prio; + } + )); + add_opt(common_arg( + {"--poll-batch"}, "<0|1>", + "use polling to wait for work (default: same as --poll)", + [](common_params & params, int value) { + params.cpuparams_batch.poll = value; + } + )); + add_opt(common_arg( + {"-lcs", "--lookup-cache-static"}, "FNAME", + "path to static lookup cache to use for lookup decoding (not updated by generation)", + [](common_params & params, const std::string & value) { + params.lookup_cache_static = value; + } + ).set_examples({LLAMA_EXAMPLE_LOOKUP})); + add_opt(common_arg( + {"-lcd", "--lookup-cache-dynamic"}, "FNAME", + "path to dynamic lookup cache to use for lookup decoding (updated by generation)", + [](common_params & params, const std::string & value) { + params.lookup_cache_dynamic = value; + } + ).set_examples({LLAMA_EXAMPLE_LOOKUP})); + add_opt(common_arg( + {"-c", "--ctx-size"}, "N", + string_format("size of the prompt context (default: %d, 0 = loaded from model)", params.n_ctx), + [](common_params & params, int value) { + params.n_ctx = value; + } + ).set_env("LLAMA_ARG_CTX_SIZE")); + add_opt(common_arg( + {"-n", "--predict", "--n-predict"}, "N", + string_format("number of tokens to predict (default: %d, -1 = infinity, -2 = until context filled)", params.n_predict), + [](common_params & params, int value) { + params.n_predict = value; + } + ).set_env("LLAMA_ARG_N_PREDICT")); + add_opt(common_arg( + {"-b", "--batch-size"}, "N", + string_format("logical maximum batch size (default: %d)", params.n_batch), + [](common_params & params, int value) { + params.n_batch = value; + } + ).set_env("LLAMA_ARG_BATCH")); + add_opt(common_arg( + {"-ub", "--ubatch-size"}, "N", + string_format("physical maximum batch size (default: %d)", params.n_ubatch), + [](common_params & params, int value) { + params.n_ubatch = value; + } + ).set_env("LLAMA_ARG_UBATCH")); + add_opt(common_arg( + {"--keep"}, "N", + string_format("number of tokens to keep from the initial prompt (default: %d, -1 = all)", params.n_keep), + [](common_params & params, int value) { + params.n_keep = value; + } + )); + add_opt(common_arg( + {"--no-context-shift"}, + string_format("disables context shift on inifinite text generation (default: %s)", params.ctx_shift ? "disabled" : "enabled"), + [](common_params & params) { + params.ctx_shift = false; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_NO_CONTEXT_SHIFT")); + add_opt(common_arg( + {"--chunks"}, "N", + string_format("max number of chunks to process (default: %d, -1 = all)", params.n_chunks), + [](common_params & params, int value) { + params.n_chunks = value; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX, LLAMA_EXAMPLE_PERPLEXITY, LLAMA_EXAMPLE_RETRIEVAL})); + add_opt(common_arg( + {"-fa", "--flash-attn"}, + string_format("enable Flash Attention (default: %s)", params.flash_attn ? "enabled" : "disabled"), + [](common_params & params) { + params.flash_attn = true; + } + ).set_env("LLAMA_ARG_FLASH_ATTN")); + add_opt(common_arg( + {"-p", "--prompt"}, "PROMPT", + ex == LLAMA_EXAMPLE_MAIN + ? "prompt to start generation with\nif -cnv is set, this will be used as system prompt" + : "prompt to start generation with", + [](common_params & params, const std::string & value) { + params.prompt = value; + } + )); + add_opt(common_arg( + {"--no-perf"}, + string_format("disable internal libllama performance timings (default: %s)", params.no_perf ? "true" : "false"), + [](common_params & params) { + params.no_perf = true; + params.sampling.no_perf = true; + } + ).set_env("LLAMA_ARG_NO_PERF")); + add_opt(common_arg( + {"-f", "--file"}, "FNAME", + "a file containing the prompt (default: none)", + [](common_params & params, const std::string & value) { + std::ifstream file(value); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + // store the external file name in params + params.prompt_file = value; + std::copy(std::istreambuf_iterator(file), std::istreambuf_iterator(), back_inserter(params.prompt)); + if (!params.prompt.empty() && params.prompt.back() == '\n') { + params.prompt.pop_back(); + } + } + )); + add_opt(common_arg( + {"--in-file"}, "FNAME", + "an input file (repeat to specify multiple files)", + [](common_params & params, const std::string & value) { + std::ifstream file(value); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + params.in_files.push_back(value); + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX})); + add_opt(common_arg( + {"-bf", "--binary-file"}, "FNAME", + "binary file containing the prompt (default: none)", + [](common_params & params, const std::string & value) { + std::ifstream file(value, std::ios::binary); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + // store the external file name in params + params.prompt_file = value; + std::ostringstream ss; + ss << file.rdbuf(); + params.prompt = ss.str(); + fprintf(stderr, "Read %zu bytes from binary file %s\n", params.prompt.size(), value.c_str()); + } + )); + add_opt(common_arg( + {"-e", "--escape"}, + string_format("process escapes sequences (\\n, \\r, \\t, \\', \\\", \\\\) (default: %s)", params.escape ? "true" : "false"), + [](common_params & params) { + params.escape = true; + } + )); + add_opt(common_arg( + {"--no-escape"}, + "do not process escape sequences", + [](common_params & params) { + params.escape = false; + } + )); + add_opt(common_arg( + {"-ptc", "--print-token-count"}, "N", + string_format("print token count every N tokens (default: %d)", params.n_print), + [](common_params & params, int value) { + params.n_print = value; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"--prompt-cache"}, "FNAME", + "file to cache prompt state for faster startup (default: none)", + [](common_params & params, const std::string & value) { + params.path_prompt_cache = value; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"--prompt-cache-all"}, + "if specified, saves user input and generations to cache as well\n", + [](common_params & params) { + params.prompt_cache_all = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"--prompt-cache-ro"}, + "if specified, uses the prompt cache but does not update it", + [](common_params & params) { + params.prompt_cache_ro = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-r", "--reverse-prompt"}, "PROMPT", + "halt generation at PROMPT, return control in interactive mode\n", + [](common_params & params, const std::string & value) { + params.antiprompt.emplace_back(value); + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-sp", "--special"}, + string_format("special tokens output enabled (default: %s)", params.special ? "true" : "false"), + [](common_params & params) { + params.special = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"-cnv", "--conversation"}, + string_format( + "run in conversation mode:\n" + "- does not print special tokens and suffix/prefix\n" + "- interactive mode is also enabled\n" + "(default: %s)", + params.conversation ? "true" : "false" + ), + [](common_params & params) { + params.conversation = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-i", "--interactive"}, + string_format("run in interactive mode (default: %s)", params.interactive ? "true" : "false"), + [](common_params & params) { + params.interactive = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-if", "--interactive-first"}, + string_format("run in interactive mode and wait for input right away (default: %s)", params.interactive_first ? "true" : "false"), + [](common_params & params) { + params.interactive_first = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-mli", "--multiline-input"}, + "allows you to write or paste multiple lines without ending each in '\\'", + [](common_params & params) { + params.multiline_input = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"--in-prefix-bos"}, + "prefix BOS to user inputs, preceding the `--in-prefix` string", + [](common_params & params) { + params.input_prefix_bos = true; + params.enable_chat_template = false; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"--in-prefix"}, "STRING", + "string to prefix user inputs with (default: empty)", + [](common_params & params, const std::string & value) { + params.input_prefix = value; + params.enable_chat_template = false; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL})); + add_opt(common_arg( + {"--in-suffix"}, "STRING", + "string to suffix after user inputs with (default: empty)", + [](common_params & params, const std::string & value) { + params.input_suffix = value; + params.enable_chat_template = false; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL})); + add_opt(common_arg( + {"--no-warmup"}, + "skip warming up the model with an empty run", + [](common_params & params) { + params.warmup = false; + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"--spm-infill"}, + string_format( + "use Suffix/Prefix/Middle pattern for infill (instead of Prefix/Suffix/Middle) as some models prefer this. (default: %s)", + params.spm_infill ? "enabled" : "disabled" + ), + [](common_params & params) { + params.spm_infill = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER, LLAMA_EXAMPLE_INFILL})); + add_opt(common_arg( + {"--samplers"}, "SAMPLERS", + string_format("samplers that will be used for generation in the order, separated by \';\'\n(default: %s)", sampler_type_names.c_str()), + [](common_params & params, const std::string & value) { + const auto sampler_names = string_split(value, ';'); + params.sampling.samplers = common_sampler_types_from_names(sampler_names, true); + } + ).set_sparam()); + add_opt(common_arg( + {"-s", "--seed"}, "SEED", + string_format("RNG seed (default: %d, use random seed for %d)", params.sampling.seed, LLAMA_DEFAULT_SEED), + [](common_params & params, const std::string & value) { + params.sampling.seed = std::stoul(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--sampling-seq"}, "SEQUENCE", + string_format("simplified sequence for samplers that will be used (default: %s)", sampler_type_chars.c_str()), + [](common_params & params, const std::string & value) { + params.sampling.samplers = common_sampler_types_from_chars(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--ignore-eos"}, + "ignore end of stream token and continue generating (implies --logit-bias EOS-inf)", + [](common_params & params) { + params.sampling.ignore_eos = true; + } + ).set_sparam()); + add_opt(common_arg( + {"--penalize-nl"}, + string_format("penalize newline tokens (default: %s)", params.sampling.penalize_nl ? "true" : "false"), + [](common_params & params) { + params.sampling.penalize_nl = true; + } + ).set_sparam()); + add_opt(common_arg( + {"--temp"}, "N", + string_format("temperature (default: %.1f)", (double)params.sampling.temp), + [](common_params & params, const std::string & value) { + params.sampling.temp = std::stof(value); + params.sampling.temp = std::max(params.sampling.temp, 0.0f); + } + ).set_sparam()); + add_opt(common_arg( + {"--top-k"}, "N", + string_format("top-k sampling (default: %d, 0 = disabled)", params.sampling.top_k), + [](common_params & params, int value) { + params.sampling.top_k = value; + } + ).set_sparam()); + add_opt(common_arg( + {"--top-p"}, "N", + string_format("top-p sampling (default: %.1f, 1.0 = disabled)", (double)params.sampling.top_p), + [](common_params & params, const std::string & value) { + params.sampling.top_p = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--min-p"}, "N", + string_format("min-p sampling (default: %.1f, 0.0 = disabled)", (double)params.sampling.min_p), + [](common_params & params, const std::string & value) { + params.sampling.min_p = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--xtc-probability"}, "N", + string_format("xtc probability (default: %.1f, 0.0 = disabled)", (double)params.sampling.xtc_probability), + [](common_params & params, const std::string & value) { + params.sampling.xtc_probability = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--xtc-threshold"}, "N", + string_format("xtc threshold (default: %.1f, 1.0 = disabled)", (double)params.sampling.xtc_threshold), + [](common_params & params, const std::string & value) { + params.sampling.xtc_threshold = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--typical"}, "N", + string_format("locally typical sampling, parameter p (default: %.1f, 1.0 = disabled)", (double)params.sampling.typ_p), + [](common_params & params, const std::string & value) { + params.sampling.typ_p = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--repeat-last-n"}, "N", + string_format("last n tokens to consider for penalize (default: %d, 0 = disabled, -1 = ctx_size)", params.sampling.penalty_last_n), + [](common_params & params, int value) { + params.sampling.penalty_last_n = value; + params.sampling.n_prev = std::max(params.sampling.n_prev, params.sampling.penalty_last_n); + } + ).set_sparam()); + add_opt(common_arg( + {"--repeat-penalty"}, "N", + string_format("penalize repeat sequence of tokens (default: %.1f, 1.0 = disabled)", (double)params.sampling.penalty_repeat), + [](common_params & params, const std::string & value) { + params.sampling.penalty_repeat = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--presence-penalty"}, "N", + string_format("repeat alpha presence penalty (default: %.1f, 0.0 = disabled)", (double)params.sampling.penalty_present), + [](common_params & params, const std::string & value) { + params.sampling.penalty_present = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--frequency-penalty"}, "N", + string_format("repeat alpha frequency penalty (default: %.1f, 0.0 = disabled)", (double)params.sampling.penalty_freq), + [](common_params & params, const std::string & value) { + params.sampling.penalty_freq = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--dry-multiplier"}, "N", + string_format("set DRY sampling multiplier (default: %.1f, 0.0 = disabled)", (double)params.sampling.dry_multiplier), + [](common_params & params, const std::string & value) { + params.sampling.dry_multiplier = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--dry-base"}, "N", + string_format("set DRY sampling base value (default: %.2f)", (double)params.sampling.dry_base), + [](common_params & params, const std::string & value) { + float potential_base = std::stof(value); + if (potential_base >= 1.0f) + { + params.sampling.dry_base = potential_base; + } + } + ).set_sparam()); + add_opt(common_arg( + {"--dry-allowed-length"}, "N", + string_format("set allowed length for DRY sampling (default: %d)", params.sampling.dry_allowed_length), + [](common_params & params, int value) { + params.sampling.dry_allowed_length = value; + } + ).set_sparam()); + add_opt(common_arg( + {"--dry-penalty-last-n"}, "N", + string_format("set DRY penalty for the last n tokens (default: %d, 0 = disable, -1 = context size)", params.sampling.dry_penalty_last_n), + [](common_params & params, int value) { + params.sampling.dry_penalty_last_n = value; + } + ).set_sparam()); + add_opt(common_arg( + {"--dry-sequence-breaker"}, "STRING", + string_format("add sequence breaker for DRY sampling, clearing out default breakers (%s) in the process; use \"none\" to not use any sequence breakers\n", + params.sampling.dry_sequence_breakers.empty() ? "none" : + std::accumulate(std::next(params.sampling.dry_sequence_breakers.begin()), + params.sampling.dry_sequence_breakers.end(), + std::string("'") + (params.sampling.dry_sequence_breakers[0] == "\n" ? "\\n" : params.sampling.dry_sequence_breakers[0]) + "'", + [](const std::string& a, const std::string& b) { + std::string formatted_b = (b == "\n") ? "\\n" : b; + return a + ", '" + formatted_b + "'"; + }).c_str()), + [](common_params & params, const std::string & value) { + static bool defaults_cleared = false; + + if (!defaults_cleared) { + params.sampling.dry_sequence_breakers.clear(); + defaults_cleared = true; + } + + if (value == "none") { + params.sampling.dry_sequence_breakers.clear(); + } else { + params.sampling.dry_sequence_breakers.emplace_back(value); + } + } + ).set_sparam()); + add_opt(common_arg( + {"--dynatemp-range"}, "N", + string_format("dynamic temperature range (default: %.1f, 0.0 = disabled)", (double)params.sampling.dynatemp_range), + [](common_params & params, const std::string & value) { + params.sampling.dynatemp_range = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--dynatemp-exp"}, "N", + string_format("dynamic temperature exponent (default: %.1f)", (double)params.sampling.dynatemp_exponent), + [](common_params & params, const std::string & value) { + params.sampling.dynatemp_exponent = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--mirostat"}, "N", + string_format("use Mirostat sampling.\nTop K, Nucleus and Locally Typical samplers are ignored if used.\n" + "(default: %d, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)", params.sampling.mirostat), + [](common_params & params, int value) { + params.sampling.mirostat = value; + } + ).set_sparam()); + add_opt(common_arg( + {"--mirostat-lr"}, "N", + string_format("Mirostat learning rate, parameter eta (default: %.1f)", (double)params.sampling.mirostat_eta), + [](common_params & params, const std::string & value) { + params.sampling.mirostat_eta = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"--mirostat-ent"}, "N", + string_format("Mirostat target entropy, parameter tau (default: %.1f)", (double)params.sampling.mirostat_tau), + [](common_params & params, const std::string & value) { + params.sampling.mirostat_tau = std::stof(value); + } + ).set_sparam()); + add_opt(common_arg( + {"-l", "--logit-bias"}, "TOKEN_ID(+/-)BIAS", + "modifies the likelihood of token appearing in the completion,\n" + "i.e. `--logit-bias 15043+1` to increase likelihood of token ' Hello',\n" + "or `--logit-bias 15043-1` to decrease likelihood of token ' Hello'", + [](common_params & params, const std::string & value) { + std::stringstream ss(value); + llama_token key; + char sign; + std::string value_str; + try { + if (ss >> key && ss >> sign && std::getline(ss, value_str) && (sign == '+' || sign == '-')) { + const float bias = std::stof(value_str) * ((sign == '-') ? -1.0f : 1.0f); + params.sampling.logit_bias.push_back({key, bias}); + } else { + throw std::invalid_argument("invalid input format"); + } + } catch (const std::exception&) { + throw std::invalid_argument("invalid input format"); + } + } + ).set_sparam()); + add_opt(common_arg( + {"--grammar"}, "GRAMMAR", + string_format("BNF-like grammar to constrain generations (see samples in grammars/ dir) (default: '%s')", params.sampling.grammar.c_str()), + [](common_params & params, const std::string & value) { + params.sampling.grammar = value; + } + ).set_sparam()); + add_opt(common_arg( + {"--grammar-file"}, "FNAME", + "file to read grammar from", + [](common_params & params, const std::string & value) { + std::ifstream file(value); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + std::copy( + std::istreambuf_iterator(file), + std::istreambuf_iterator(), + std::back_inserter(params.sampling.grammar) + ); + } + ).set_sparam()); + add_opt(common_arg( + {"-j", "--json-schema"}, "SCHEMA", + "JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object\nFor schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead", + [](common_params & params, const std::string & value) { + params.sampling.grammar = json_schema_to_grammar(json::parse(value)); + } + ).set_sparam()); + add_opt(common_arg( + {"--pooling"}, "{none,mean,cls,last,rank}", + "pooling type for embeddings, use model default if unspecified", + [](common_params & params, const std::string & value) { + /**/ if (value == "none") { params.pooling_type = LLAMA_POOLING_TYPE_NONE; } + else if (value == "mean") { params.pooling_type = LLAMA_POOLING_TYPE_MEAN; } + else if (value == "cls") { params.pooling_type = LLAMA_POOLING_TYPE_CLS; } + else if (value == "last") { params.pooling_type = LLAMA_POOLING_TYPE_LAST; } + else if (value == "rank") { params.pooling_type = LLAMA_POOLING_TYPE_RANK; } + else { throw std::invalid_argument("invalid value"); } + } + ).set_examples({LLAMA_EXAMPLE_EMBEDDING, LLAMA_EXAMPLE_RETRIEVAL, LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_POOLING")); + add_opt(common_arg( + {"--attention"}, "{causal,non-causal}", + "attention type for embeddings, use model default if unspecified", + [](common_params & params, const std::string & value) { + /**/ if (value == "causal") { params.attention_type = LLAMA_ATTENTION_TYPE_CAUSAL; } + else if (value == "non-causal") { params.attention_type = LLAMA_ATTENTION_TYPE_NON_CAUSAL; } + else { throw std::invalid_argument("invalid value"); } + } + ).set_examples({LLAMA_EXAMPLE_EMBEDDING})); + add_opt(common_arg( + {"--rope-scaling"}, "{none,linear,yarn}", + "RoPE frequency scaling method, defaults to linear unless specified by the model", + [](common_params & params, const std::string & value) { + /**/ if (value == "none") { params.rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_NONE; } + else if (value == "linear") { params.rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_LINEAR; } + else if (value == "yarn") { params.rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_YARN; } + else { throw std::invalid_argument("invalid value"); } + } + ).set_env("LLAMA_ARG_ROPE_SCALING_TYPE")); + add_opt(common_arg( + {"--rope-scale"}, "N", + "RoPE context scaling factor, expands context by a factor of N", + [](common_params & params, const std::string & value) { + params.rope_freq_scale = 1.0f / std::stof(value); + } + ).set_env("LLAMA_ARG_ROPE_SCALE")); + add_opt(common_arg( + {"--rope-freq-base"}, "N", + "RoPE base frequency, used by NTK-aware scaling (default: loaded from model)", + [](common_params & params, const std::string & value) { + params.rope_freq_base = std::stof(value); + } + ).set_env("LLAMA_ARG_ROPE_FREQ_BASE")); + add_opt(common_arg( + {"--rope-freq-scale"}, "N", + "RoPE frequency scaling factor, expands context by a factor of 1/N", + [](common_params & params, const std::string & value) { + params.rope_freq_scale = std::stof(value); + } + ).set_env("LLAMA_ARG_ROPE_FREQ_SCALE")); + add_opt(common_arg( + {"--yarn-orig-ctx"}, "N", + string_format("YaRN: original context size of model (default: %d = model training context size)", params.yarn_orig_ctx), + [](common_params & params, int value) { + params.yarn_orig_ctx = value; + } + ).set_env("LLAMA_ARG_YARN_ORIG_CTX")); + add_opt(common_arg( + {"--yarn-ext-factor"}, "N", + string_format("YaRN: extrapolation mix factor (default: %.1f, 0.0 = full interpolation)", (double)params.yarn_ext_factor), + [](common_params & params, const std::string & value) { + params.yarn_ext_factor = std::stof(value); + } + ).set_env("LLAMA_ARG_YARN_EXT_FACTOR")); + add_opt(common_arg( + {"--yarn-attn-factor"}, "N", + string_format("YaRN: scale sqrt(t) or attention magnitude (default: %.1f)", (double)params.yarn_attn_factor), + [](common_params & params, const std::string & value) { + params.yarn_attn_factor = std::stof(value); + } + ).set_env("LLAMA_ARG_YARN_ATTN_FACTOR")); + add_opt(common_arg( + {"--yarn-beta-slow"}, "N", + string_format("YaRN: high correction dim or alpha (default: %.1f)", (double)params.yarn_beta_slow), + [](common_params & params, const std::string & value) { + params.yarn_beta_slow = std::stof(value); + } + ).set_env("LLAMA_ARG_YARN_BETA_SLOW")); + add_opt(common_arg( + {"--yarn-beta-fast"}, "N", + string_format("YaRN: low correction dim or beta (default: %.1f)", (double)params.yarn_beta_fast), + [](common_params & params, const std::string & value) { + params.yarn_beta_fast = std::stof(value); + } + ).set_env("LLAMA_ARG_YARN_BETA_FAST")); + add_opt(common_arg( + {"-gan", "--grp-attn-n"}, "N", + string_format("group-attention factor (default: %d)", params.grp_attn_n), + [](common_params & params, int value) { + params.grp_attn_n = value; + } + ).set_env("LLAMA_ARG_GRP_ATTN_N").set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_PASSKEY})); + add_opt(common_arg( + {"-gaw", "--grp-attn-w"}, "N", + string_format("group-attention width (default: %d)", params.grp_attn_w), + [](common_params & params, int value) { + params.grp_attn_w = value; + } + ).set_env("LLAMA_ARG_GRP_ATTN_W").set_examples({LLAMA_EXAMPLE_MAIN})); + add_opt(common_arg( + {"-dkvc", "--dump-kv-cache"}, + "verbose print of the KV cache", + [](common_params & params) { + params.dump_kv_cache = true; + } + )); + add_opt(common_arg( + {"-nkvo", "--no-kv-offload"}, + "disable KV offload", + [](common_params & params) { + params.no_kv_offload = true; + } + ).set_env("LLAMA_ARG_NO_KV_OFFLOAD")); + add_opt(common_arg( + {"-ctk", "--cache-type-k"}, "TYPE", + string_format("KV cache data type for K (default: %s)", params.cache_type_k.c_str()), + [](common_params & params, const std::string & value) { + // TODO: get the type right here + params.cache_type_k = value; + } + ).set_env("LLAMA_ARG_CACHE_TYPE_K")); + add_opt(common_arg( + {"-ctv", "--cache-type-v"}, "TYPE", + string_format("KV cache data type for V (default: %s)", params.cache_type_v.c_str()), + [](common_params & params, const std::string & value) { + // TODO: get the type right here + params.cache_type_v = value; + } + ).set_env("LLAMA_ARG_CACHE_TYPE_V")); + add_opt(common_arg( + {"--perplexity", "--all-logits"}, + string_format("return logits for all tokens in the batch (default: %s)", params.logits_all ? "true" : "false"), + [](common_params & params) { + params.logits_all = true; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--hellaswag"}, + "compute HellaSwag score over random tasks from datafile supplied with -f", + [](common_params & params) { + params.hellaswag = true; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--hellaswag-tasks"}, "N", + string_format("number of tasks to use when computing the HellaSwag score (default: %zu)", params.hellaswag_tasks), + [](common_params & params, int value) { + params.hellaswag_tasks = value; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--winogrande"}, + "compute Winogrande score over random tasks from datafile supplied with -f", + [](common_params & params) { + params.winogrande = true; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--winogrande-tasks"}, "N", + string_format("number of tasks to use when computing the Winogrande score (default: %zu)", params.winogrande_tasks), + [](common_params & params, int value) { + params.winogrande_tasks = value; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--multiple-choice"}, + "compute multiple choice score over random tasks from datafile supplied with -f", + [](common_params & params) { + params.multiple_choice = true; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--multiple-choice-tasks"}, "N", + string_format("number of tasks to use when computing the multiple choice score (default: %zu)", params.multiple_choice_tasks), + [](common_params & params, int value) { + params.multiple_choice_tasks = value; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--kl-divergence"}, + "computes KL-divergence to logits provided via --kl-divergence-base", + [](common_params & params) { + params.kl_divergence = true; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--save-all-logits", "--kl-divergence-base"}, "FNAME", + "set logits file", + [](common_params & params, const std::string & value) { + params.logits_file = value; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--ppl-stride"}, "N", + string_format("stride for perplexity calculation (default: %d)", params.ppl_stride), + [](common_params & params, int value) { + params.ppl_stride = value; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"--ppl-output-type"}, "<0|1>", + string_format("output type for perplexity calculation (default: %d)", params.ppl_output_type), + [](common_params & params, int value) { + params.ppl_output_type = value; + } + ).set_examples({LLAMA_EXAMPLE_PERPLEXITY})); + add_opt(common_arg( + {"-dt", "--defrag-thold"}, "N", + string_format("KV cache defragmentation threshold (default: %.1f, < 0 - disabled)", (double)params.defrag_thold), + [](common_params & params, const std::string & value) { + params.defrag_thold = std::stof(value); + } + ).set_env("LLAMA_ARG_DEFRAG_THOLD")); + add_opt(common_arg( + {"-np", "--parallel"}, "N", + string_format("number of parallel sequences to decode (default: %d)", params.n_parallel), + [](common_params & params, int value) { + params.n_parallel = value; + } + ).set_env("LLAMA_ARG_N_PARALLEL")); + add_opt(common_arg( + {"-ns", "--sequences"}, "N", + string_format("number of sequences to decode (default: %d)", params.n_sequences), + [](common_params & params, int value) { + params.n_sequences = value; + } + ).set_examples({LLAMA_EXAMPLE_PARALLEL})); + add_opt(common_arg( + {"-cb", "--cont-batching"}, + string_format("enable continuous batching (a.k.a dynamic batching) (default: %s)", params.cont_batching ? "enabled" : "disabled"), + [](common_params & params) { + params.cont_batching = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_CONT_BATCHING")); + add_opt(common_arg( + {"-nocb", "--no-cont-batching"}, + "disable continuous batching", + [](common_params & params) { + params.cont_batching = false; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_NO_CONT_BATCHING")); + add_opt(common_arg( + {"--mmproj"}, "FILE", + "path to a multimodal projector file for LLaVA. see examples/llava/README.md", + [](common_params & params, const std::string & value) { + params.mmproj = value; + } + ).set_examples({LLAMA_EXAMPLE_LLAVA})); + add_opt(common_arg( + {"--image"}, "FILE", + "path to an image file. use with multimodal models. Specify multiple times for batching", + [](common_params & params, const std::string & value) { + params.image.emplace_back(value); + } + ).set_examples({LLAMA_EXAMPLE_LLAVA})); + if (llama_supports_rpc()) { + add_opt(common_arg( + {"--rpc"}, "SERVERS", + "comma separated list of RPC servers", + [](common_params & params, const std::string & value) { + params.rpc_servers = value; + } + ).set_env("LLAMA_ARG_RPC")); + } + add_opt(common_arg( + {"--mlock"}, + "force system to keep model in RAM rather than swapping or compressing", + [](common_params & params) { + params.use_mlock = true; + } + ).set_env("LLAMA_ARG_MLOCK")); + add_opt(common_arg( + {"--no-mmap"}, + "do not memory-map model (slower load but may reduce pageouts if not using mlock)", + [](common_params & params) { + params.use_mmap = false; + } + ).set_env("LLAMA_ARG_NO_MMAP")); + add_opt(common_arg( + {"--numa"}, "TYPE", + "attempt optimizations that help on some NUMA systems\n" + "- distribute: spread execution evenly over all nodes\n" + "- isolate: only spawn threads on CPUs on the node that execution started on\n" + "- numactl: use the CPU map provided by numactl\n" + "if run without this previously, it is recommended to drop the system page cache before using this\n" + "see https://github.com/ggerganov/llama.cpp/issues/1437", + [](common_params & params, const std::string & value) { + /**/ if (value == "distribute" || value == "") { params.numa = GGML_NUMA_STRATEGY_DISTRIBUTE; } + else if (value == "isolate") { params.numa = GGML_NUMA_STRATEGY_ISOLATE; } + else if (value == "numactl") { params.numa = GGML_NUMA_STRATEGY_NUMACTL; } + else { throw std::invalid_argument("invalid value"); } + } + ).set_env("LLAMA_ARG_NUMA")); + add_opt(common_arg( + {"-dev", "--device"}, "", + "comma-separated list of devices to use for offloading (none = don't offload)\n" + "use --list-devices to see a list of available devices", + [](common_params & params, const std::string & value) { + params.devices = parse_device_list(value); + } + ).set_env("LLAMA_ARG_DEVICE")); + add_opt(common_arg( + {"--list-devices"}, + "print list of available devices and exit", + [](common_params &) { + printf("Available devices:\n"); + for (size_t i = 0; i < ggml_backend_dev_count(); ++i) { + auto * dev = ggml_backend_dev_get(i); + if (ggml_backend_dev_type(dev) == GGML_BACKEND_DEVICE_TYPE_GPU) { + size_t free, total; + ggml_backend_dev_memory(dev, &free, &total); + printf(" %s: %s (%zu MiB, %zu MiB free)\n", ggml_backend_dev_name(dev), ggml_backend_dev_description(dev), total / 1024 / 1024, free / 1024 / 1024); + } + } + exit(0); + } + )); + add_opt(common_arg( + {"-ngl", "--gpu-layers", "--n-gpu-layers"}, "N", + "number of layers to store in VRAM", + [](common_params & params, int value) { + params.n_gpu_layers = value; + if (!llama_supports_gpu_offload()) { + fprintf(stderr, "warning: no usable GPU found, --gpu-layers option will be ignored\n"); + fprintf(stderr, "warning: one possible reason is that llama.cpp was compiled without GPU support\n"); + fprintf(stderr, "warning: consult docs/build.md for compilation instructions\n"); + } + } + ).set_env("LLAMA_ARG_N_GPU_LAYERS")); + add_opt(common_arg( + {"-sm", "--split-mode"}, "{none,layer,row}", + "how to split the model across multiple GPUs, one of:\n" + "- none: use one GPU only\n" + "- layer (default): split layers and KV across GPUs\n" + "- row: split rows across GPUs", + [](common_params & params, const std::string & value) { + std::string arg_next = value; + if (arg_next == "none") { + params.split_mode = LLAMA_SPLIT_MODE_NONE; + } else if (arg_next == "layer") { + params.split_mode = LLAMA_SPLIT_MODE_LAYER; + } else if (arg_next == "row") { + params.split_mode = LLAMA_SPLIT_MODE_ROW; + } else { + throw std::invalid_argument("invalid value"); + } + if (!llama_supports_gpu_offload()) { + fprintf(stderr, "warning: llama.cpp was compiled without support for GPU offload. Setting the split mode has no effect.\n"); + } + } + ).set_env("LLAMA_ARG_SPLIT_MODE")); + add_opt(common_arg( + {"-ts", "--tensor-split"}, "N0,N1,N2,...", + "fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1", + [](common_params & params, const std::string & value) { + std::string arg_next = value; + + // split string by , and / + const std::regex regex{ R"([,/]+)" }; + std::sregex_token_iterator it{ arg_next.begin(), arg_next.end(), regex, -1 }; + std::vector split_arg{ it, {} }; + if (split_arg.size() >= llama_max_devices()) { + throw std::invalid_argument( + string_format("got %d input configs, but system only has %d devices", (int)split_arg.size(), (int)llama_max_devices()) + ); + } + for (size_t i = 0; i < llama_max_devices(); ++i) { + if (i < split_arg.size()) { + params.tensor_split[i] = std::stof(split_arg[i]); + } else { + params.tensor_split[i] = 0.0f; + } + } + if (!llama_supports_gpu_offload()) { + fprintf(stderr, "warning: llama.cpp was compiled without support for GPU offload. Setting a tensor split has no effect.\n"); + } + } + ).set_env("LLAMA_ARG_TENSOR_SPLIT")); + add_opt(common_arg( + {"-mg", "--main-gpu"}, "INDEX", + string_format("the GPU to use for the model (with split-mode = none), or for intermediate results and KV (with split-mode = row) (default: %d)", params.main_gpu), + [](common_params & params, int value) { + params.main_gpu = value; + if (!llama_supports_gpu_offload()) { + fprintf(stderr, "warning: llama.cpp was compiled without support for GPU offload. Setting the main GPU has no effect.\n"); + } + } + ).set_env("LLAMA_ARG_MAIN_GPU")); + add_opt(common_arg( + {"--check-tensors"}, + string_format("check model tensor data for invalid values (default: %s)", params.check_tensors ? "true" : "false"), + [](common_params & params) { + params.check_tensors = true; + } + )); + add_opt(common_arg( + {"--override-kv"}, "KEY=TYPE:VALUE", + "advanced option to override model metadata by key. may be specified multiple times.\n" + "types: int, float, bool, str. example: --override-kv tokenizer.ggml.add_bos_token=bool:false", + [](common_params & params, const std::string & value) { + if (!string_parse_kv_override(value.c_str(), params.kv_overrides)) { + throw std::runtime_error(string_format("error: Invalid type for KV override: %s\n", value.c_str())); + } + } + )); + add_opt(common_arg( + {"--lora"}, "FNAME", + "path to LoRA adapter (can be repeated to use multiple adapters)", + [](common_params & params, const std::string & value) { + params.lora_adapters.push_back({ std::string(value), 1.0 }); + } + // we define this arg on both COMMON and EXPORT_LORA, so when showing help message of export-lora, it will be categorized as "example-specific" arg + ).set_examples({LLAMA_EXAMPLE_COMMON, LLAMA_EXAMPLE_EXPORT_LORA})); + add_opt(common_arg( + {"--lora-scaled"}, "FNAME", "SCALE", + "path to LoRA adapter with user defined scaling (can be repeated to use multiple adapters)", + [](common_params & params, const std::string & fname, const std::string & scale) { + params.lora_adapters.push_back({ fname, std::stof(scale) }); + } + // we define this arg on both COMMON and EXPORT_LORA, so when showing help message of export-lora, it will be categorized as "example-specific" arg + ).set_examples({LLAMA_EXAMPLE_COMMON, LLAMA_EXAMPLE_EXPORT_LORA})); + add_opt(common_arg( + {"--control-vector"}, "FNAME", + "add a control vector\nnote: this argument can be repeated to add multiple control vectors", + [](common_params & params, const std::string & value) { + params.control_vectors.push_back({ 1.0f, value, }); + } + )); + add_opt(common_arg( + {"--control-vector-scaled"}, "FNAME", "SCALE", + "add a control vector with user defined scaling SCALE\n" + "note: this argument can be repeated to add multiple scaled control vectors", + [](common_params & params, const std::string & fname, const std::string & scale) { + params.control_vectors.push_back({ std::stof(scale), fname }); + } + )); + add_opt(common_arg( + {"--control-vector-layer-range"}, "START", "END", + "layer range to apply the control vector(s) to, start and end inclusive", + [](common_params & params, const std::string & start, const std::string & end) { + params.control_vector_layer_start = std::stoi(start); + params.control_vector_layer_end = std::stoi(end); + } + )); + add_opt(common_arg( + {"-a", "--alias"}, "STRING", + "set alias for model name (to be used by REST API)", + [](common_params & params, const std::string & value) { + params.model_alias = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_ALIAS")); + add_opt(common_arg( + {"-m", "--model"}, "FNAME", + ex == LLAMA_EXAMPLE_EXPORT_LORA + ? std::string("model path from which to load base model") + : string_format( + "model path (default: `models/$filename` with filename from `--hf-file` " + "or `--model-url` if set, otherwise %s)", DEFAULT_MODEL_PATH + ), + [](common_params & params, const std::string & value) { + params.model = value; + } + ).set_examples({LLAMA_EXAMPLE_COMMON, LLAMA_EXAMPLE_EXPORT_LORA}).set_env("LLAMA_ARG_MODEL")); + add_opt(common_arg( + {"-mu", "--model-url"}, "MODEL_URL", + "model download url (default: unused)", + [](common_params & params, const std::string & value) { + params.model_url = value; + } + ).set_env("LLAMA_ARG_MODEL_URL")); + add_opt(common_arg( + {"-hfr", "--hf-repo"}, "REPO", + "Hugging Face model repository (default: unused)", + [](common_params & params, const std::string & value) { + params.hf_repo = value; + } + ).set_env("LLAMA_ARG_HF_REPO")); + add_opt(common_arg( + {"-hff", "--hf-file"}, "FILE", + "Hugging Face model file (default: unused)", + [](common_params & params, const std::string & value) { + params.hf_file = value; + } + ).set_env("LLAMA_ARG_HF_FILE")); + add_opt(common_arg( + {"-hft", "--hf-token"}, "TOKEN", + "Hugging Face access token (default: value from HF_TOKEN environment variable)", + [](common_params & params, const std::string & value) { + params.hf_token = value; + } + ).set_env("HF_TOKEN")); + add_opt(common_arg( + {"--context-file"}, "FNAME", + "file to load context from (repeat to specify multiple files)", + [](common_params & params, const std::string & value) { + std::ifstream file(value, std::ios::binary); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + params.context_files.push_back(value); + } + ).set_examples({LLAMA_EXAMPLE_RETRIEVAL})); + add_opt(common_arg( + {"--chunk-size"}, "N", + string_format("minimum length of embedded text chunks (default: %d)", params.chunk_size), + [](common_params & params, int value) { + params.chunk_size = value; + } + ).set_examples({LLAMA_EXAMPLE_RETRIEVAL})); + add_opt(common_arg( + {"--chunk-separator"}, "STRING", + string_format("separator between chunks (default: '%s')", params.chunk_separator.c_str()), + [](common_params & params, const std::string & value) { + params.chunk_separator = value; + } + ).set_examples({LLAMA_EXAMPLE_RETRIEVAL})); + add_opt(common_arg( + {"--junk"}, "N", + string_format("number of times to repeat the junk text (default: %d)", params.n_junk), + [](common_params & params, int value) { + params.n_junk = value; + } + ).set_examples({LLAMA_EXAMPLE_PASSKEY})); + add_opt(common_arg( + {"--pos"}, "N", + string_format("position of the passkey in the junk text (default: %d)", params.i_pos), + [](common_params & params, int value) { + params.i_pos = value; + } + ).set_examples({LLAMA_EXAMPLE_PASSKEY})); + add_opt(common_arg( + {"-o", "--output", "--output-file"}, "FNAME", + string_format("output file (default: '%s')", + ex == LLAMA_EXAMPLE_EXPORT_LORA + ? params.lora_outfile.c_str() + : ex == LLAMA_EXAMPLE_CVECTOR_GENERATOR + ? params.cvector_outfile.c_str() + : params.out_file.c_str()), + [](common_params & params, const std::string & value) { + params.out_file = value; + params.cvector_outfile = value; + params.lora_outfile = value; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX, LLAMA_EXAMPLE_CVECTOR_GENERATOR, LLAMA_EXAMPLE_EXPORT_LORA})); + add_opt(common_arg( + {"-ofreq", "--output-frequency"}, "N", + string_format("output the imatrix every N iterations (default: %d)", params.n_out_freq), + [](common_params & params, int value) { + params.n_out_freq = value; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX})); + add_opt(common_arg( + {"--save-frequency"}, "N", + string_format("save an imatrix copy every N iterations (default: %d)", params.n_save_freq), + [](common_params & params, int value) { + params.n_save_freq = value; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX})); + add_opt(common_arg( + {"--process-output"}, + string_format("collect data for the output tensor (default: %s)", params.process_output ? "true" : "false"), + [](common_params & params) { + params.process_output = true; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX})); + add_opt(common_arg( + {"--no-ppl"}, + string_format("do not compute perplexity (default: %s)", params.compute_ppl ? "true" : "false"), + [](common_params & params) { + params.compute_ppl = false; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX})); + add_opt(common_arg( + {"--chunk", "--from-chunk"}, "N", + string_format("start processing the input from chunk N (default: %d)", params.i_chunk), + [](common_params & params, int value) { + params.i_chunk = value; + } + ).set_examples({LLAMA_EXAMPLE_IMATRIX})); + add_opt(common_arg( + {"-pps"}, + string_format("is the prompt shared across parallel sequences (default: %s)", params.is_pp_shared ? "true" : "false"), + [](common_params & params) { + params.is_pp_shared = true; + } + ).set_examples({LLAMA_EXAMPLE_BENCH})); + add_opt(common_arg( + {"-npp"}, "n0,n1,...", + "number of prompt tokens", + [](common_params & params, const std::string & value) { + auto p = string_split(value, ','); + params.n_pp.insert(params.n_pp.end(), p.begin(), p.end()); + } + ).set_examples({LLAMA_EXAMPLE_BENCH})); + add_opt(common_arg( + {"-ntg"}, "n0,n1,...", + "number of text generation tokens", + [](common_params & params, const std::string & value) { + auto p = string_split(value, ','); + params.n_tg.insert(params.n_tg.end(), p.begin(), p.end()); + } + ).set_examples({LLAMA_EXAMPLE_BENCH})); + add_opt(common_arg( + {"-npl"}, "n0,n1,...", + "number of parallel prompts", + [](common_params & params, const std::string & value) { + auto p = string_split(value, ','); + params.n_pl.insert(params.n_pl.end(), p.begin(), p.end()); + } + ).set_examples({LLAMA_EXAMPLE_BENCH})); + add_opt(common_arg( + {"--embd-normalize"}, "N", + string_format("normalisation for embeddings (default: %d) (-1=none, 0=max absolute int16, 1=taxicab, 2=euclidean, >2=p-norm)", params.embd_normalize), + [](common_params & params, int value) { + params.embd_normalize = value; + } + ).set_examples({LLAMA_EXAMPLE_EMBEDDING})); + add_opt(common_arg( + {"--embd-output-format"}, "FORMAT", + "empty = default, \"array\" = [[],[]...], \"json\" = openai style, \"json+\" = same \"json\" + cosine similarity matrix", + [](common_params & params, const std::string & value) { + params.embd_out = value; + } + ).set_examples({LLAMA_EXAMPLE_EMBEDDING})); + add_opt(common_arg( + {"--embd-separator"}, "STRING", + "separator of embeddings (default \\n) for example \"<#sep#>\"", + [](common_params & params, const std::string & value) { + params.embd_sep = value; + } + ).set_examples({LLAMA_EXAMPLE_EMBEDDING})); + add_opt(common_arg( + {"--host"}, "HOST", + string_format("ip address to listen (default: %s)", params.hostname.c_str()), + [](common_params & params, const std::string & value) { + params.hostname = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_HOST")); + add_opt(common_arg( + {"--port"}, "PORT", + string_format("port to listen (default: %d)", params.port), + [](common_params & params, int value) { + params.port = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_PORT")); + add_opt(common_arg( + {"--path"}, "PATH", + string_format("path to serve static files from (default: %s)", params.public_path.c_str()), + [](common_params & params, const std::string & value) { + params.public_path = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_STATIC_PATH")); + add_opt(common_arg( + {"--embedding", "--embeddings"}, + string_format("restrict to only support embedding use case; use only with dedicated embedding models (default: %s)", params.embedding ? "enabled" : "disabled"), + [](common_params & params) { + params.embedding = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_EMBEDDINGS")); + add_opt(common_arg( + {"--reranking", "--rerank"}, + string_format("enable reranking endpoint on server (default: %s)", params.reranking ? "enabled" : "disabled"), + [](common_params & params) { + params.reranking = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_RERANKING")); + add_opt(common_arg( + {"--api-key"}, "KEY", + "API key to use for authentication (default: none)", + [](common_params & params, const std::string & value) { + params.api_keys.push_back(value); + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_API_KEY")); + add_opt(common_arg( + {"--api-key-file"}, "FNAME", + "path to file containing API keys (default: none)", + [](common_params & params, const std::string & value) { + std::ifstream key_file(value); + if (!key_file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + std::string key; + while (std::getline(key_file, key)) { + if (!key.empty()) { + params.api_keys.push_back(key); + } + } + key_file.close(); + } + ).set_examples({LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--ssl-key-file"}, "FNAME", + "path to file a PEM-encoded SSL private key", + [](common_params & params, const std::string & value) { + params.ssl_file_key = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_SSL_KEY_FILE")); + add_opt(common_arg( + {"--ssl-cert-file"}, "FNAME", + "path to file a PEM-encoded SSL certificate", + [](common_params & params, const std::string & value) { + params.ssl_file_cert = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_SSL_CERT_FILE")); + add_opt(common_arg( + {"-to", "--timeout"}, "N", + string_format("server read/write timeout in seconds (default: %d)", params.timeout_read), + [](common_params & params, int value) { + params.timeout_read = value; + params.timeout_write = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_TIMEOUT")); + add_opt(common_arg( + {"--threads-http"}, "N", + string_format("number of threads used to process HTTP requests (default: %d)", params.n_threads_http), + [](common_params & params, int value) { + params.n_threads_http = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_THREADS_HTTP")); + add_opt(common_arg( + {"--cache-reuse"}, "N", + string_format("min chunk size to attempt reusing from the cache via KV shifting (default: %d)", params.n_cache_reuse), + [](common_params & params, int value) { + params.n_cache_reuse = value; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_CACHE_REUSE")); + add_opt(common_arg( + {"--metrics"}, + string_format("enable prometheus compatible metrics endpoint (default: %s)", params.endpoint_metrics ? "enabled" : "disabled"), + [](common_params & params) { + params.endpoint_metrics = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_ENDPOINT_METRICS")); + add_opt(common_arg( + {"--slots"}, + string_format("enable slots monitoring endpoint (default: %s)", params.endpoint_slots ? "enabled" : "disabled"), + [](common_params & params) { + params.endpoint_slots = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_ENDPOINT_SLOTS")); + add_opt(common_arg( + {"--props"}, + string_format("enable changing global properties via POST /props (default: %s)", params.endpoint_props ? "enabled" : "disabled"), + [](common_params & params) { + params.endpoint_props = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_ENDPOINT_PROPS")); + add_opt(common_arg( + {"--no-slots"}, + "disables slots monitoring endpoint", + [](common_params & params) { + params.endpoint_slots = false; + } + ).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_NO_ENDPOINT_SLOTS")); + add_opt(common_arg( + {"--slot-save-path"}, "PATH", + "path to save slot kv cache (default: disabled)", + [](common_params & params, const std::string & value) { + params.slot_save_path = value; + // if doesn't end with DIRECTORY_SEPARATOR, add it + if (!params.slot_save_path.empty() && params.slot_save_path[params.slot_save_path.size() - 1] != DIRECTORY_SEPARATOR) { + params.slot_save_path += DIRECTORY_SEPARATOR; + } + } + ).set_examples({LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--chat-template"}, "JINJA_TEMPLATE", + string_format( + "set custom jinja chat template (default: template taken from model's metadata)\n" + "if suffix/prefix are specified, template will be disabled\n" + "list of built-in templates:\n%s", list_builtin_chat_templates().c_str() + ), + [](common_params & params, const std::string & value) { + if (!common_chat_verify_template(value)) { + throw std::runtime_error(string_format( + "error: the supplied chat template is not supported: %s\n" + "note: llama.cpp does not use jinja parser, we only support commonly used templates\n", + value.c_str() + )); + } + params.chat_template = value; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_CHAT_TEMPLATE")); + add_opt(common_arg( + {"-sps", "--slot-prompt-similarity"}, "SIMILARITY", + string_format("how much the prompt of a request must match the prompt of a slot in order to use that slot (default: %.2f, 0.0 = disabled)\n", params.slot_prompt_similarity), + [](common_params & params, const std::string & value) { + params.slot_prompt_similarity = std::stof(value); + } + ).set_examples({LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--lora-init-without-apply"}, + string_format("load LoRA adapters without applying them (apply later via POST /lora-adapters) (default: %s)", params.lora_init_without_apply ? "enabled" : "disabled"), + [](common_params & params) { + params.lora_init_without_apply = true; + } + ).set_examples({LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--simple-io"}, + "use basic IO for better compatibility in subprocesses and limited consoles", + [](common_params & params) { + params.simple_io = true; + } + ).set_examples({LLAMA_EXAMPLE_MAIN, LLAMA_EXAMPLE_INFILL})); + add_opt(common_arg( + {"--positive-file"}, "FNAME", + string_format("positive prompts file, one prompt per line (default: '%s')", params.cvector_positive_file.c_str()), + [](common_params & params, const std::string & value) { + params.cvector_positive_file = value; + } + ).set_examples({LLAMA_EXAMPLE_CVECTOR_GENERATOR})); + add_opt(common_arg( + {"--negative-file"}, "FNAME", + string_format("negative prompts file, one prompt per line (default: '%s')", params.cvector_negative_file.c_str()), + [](common_params & params, const std::string & value) { + params.cvector_negative_file = value; + } + ).set_examples({LLAMA_EXAMPLE_CVECTOR_GENERATOR})); + add_opt(common_arg( + {"--pca-batch"}, "N", + string_format("batch size used for PCA. Larger batch runs faster, but uses more memory (default: %d)", params.n_pca_batch), + [](common_params & params, int value) { + params.n_pca_batch = value; + } + ).set_examples({LLAMA_EXAMPLE_CVECTOR_GENERATOR})); + add_opt(common_arg( + {"--pca-iter"}, "N", + string_format("number of iterations used for PCA (default: %d)", params.n_pca_iterations), + [](common_params & params, int value) { + params.n_pca_iterations = value; + } + ).set_examples({LLAMA_EXAMPLE_CVECTOR_GENERATOR})); + add_opt(common_arg( + {"--method"}, "{pca, mean}", + "dimensionality reduction method to be used (default: pca)", + [](common_params & params, const std::string & value) { + /**/ if (value == "pca") { params.cvector_dimre_method = DIMRE_METHOD_PCA; } + else if (value == "mean") { params.cvector_dimre_method = DIMRE_METHOD_MEAN; } + else { throw std::invalid_argument("invalid value"); } + } + ).set_examples({LLAMA_EXAMPLE_CVECTOR_GENERATOR})); + add_opt(common_arg( + {"--output-format"}, "{md,jsonl}", + "output format for batched-bench results (default: md)", + [](common_params & params, const std::string & value) { + /**/ if (value == "jsonl") { params.batched_bench_output_jsonl = true; } + else if (value == "md") { params.batched_bench_output_jsonl = false; } + else { std::invalid_argument("invalid value"); } + } + ).set_examples({LLAMA_EXAMPLE_BENCH})); + add_opt(common_arg( + {"--log-disable"}, + "Log disable", + [](common_params &) { + common_log_pause(common_log_main()); + } + )); + add_opt(common_arg( + {"--log-file"}, "FNAME", + "Log to file", + [](common_params &, const std::string & value) { + common_log_set_file(common_log_main(), value.c_str()); + } + )); + add_opt(common_arg( + {"--log-colors"}, + "Enable colored logging", + [](common_params &) { + common_log_set_colors(common_log_main(), true); + } + ).set_env("LLAMA_LOG_COLORS")); + add_opt(common_arg( + {"-v", "--verbose", "--log-verbose"}, + "Set verbosity level to infinity (i.e. log all messages, useful for debugging)", + [](common_params & params) { + params.verbosity = INT_MAX; + common_log_set_verbosity_thold(INT_MAX); + } + )); + add_opt(common_arg( + {"-lv", "--verbosity", "--log-verbosity"}, "N", + "Set the verbosity threshold. Messages with a higher verbosity will be ignored.", + [](common_params & params, int value) { + params.verbosity = value; + common_log_set_verbosity_thold(value); + } + ).set_env("LLAMA_LOG_VERBOSITY")); + add_opt(common_arg( + {"--log-prefix"}, + "Enable prefx in log messages", + [](common_params &) { + common_log_set_prefix(common_log_main(), true); + } + ).set_env("LLAMA_LOG_PREFIX")); + add_opt(common_arg( + {"--log-timestamps"}, + "Enable timestamps in log messages", + [](common_params &) { + common_log_set_timestamps(common_log_main(), true); + } + ).set_env("LLAMA_LOG_TIMESTAMPS")); + + // speculative parameters + add_opt(common_arg( + {"-td", "--threads-draft"}, "N", + "number of threads to use during generation (default: same as --threads)", + [](common_params & params, int value) { + params.speculative.cpuparams.n_threads = value; + if (params.speculative.cpuparams.n_threads <= 0) { + params.speculative.cpuparams.n_threads = std::thread::hardware_concurrency(); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"-tbd", "--threads-batch-draft"}, "N", + "number of threads to use during batch and prompt processing (default: same as --threads-draft)", + [](common_params & params, int value) { + params.speculative.cpuparams_batch.n_threads = value; + if (params.speculative.cpuparams_batch.n_threads <= 0) { + params.speculative.cpuparams_batch.n_threads = std::thread::hardware_concurrency(); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"-Cd", "--cpu-mask-draft"}, "M", + "Draft model CPU affinity mask. Complements cpu-range-draft (default: same as --cpu-mask)", + [](common_params & params, const std::string & mask) { + params.speculative.cpuparams.mask_valid = true; + if (!parse_cpu_mask(mask, params.speculative.cpuparams.cpumask)) { + throw std::invalid_argument("invalid cpumask"); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"-Crd", "--cpu-range-draft"}, "lo-hi", + "Ranges of CPUs for affinity. Complements --cpu-mask-draft", + [](common_params & params, const std::string & range) { + params.speculative.cpuparams.mask_valid = true; + if (!parse_cpu_range(range, params.speculative.cpuparams.cpumask)) { + throw std::invalid_argument("invalid range"); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--cpu-strict-draft"}, "<0|1>", + "Use strict CPU placement for draft model (default: same as --cpu-strict)", + [](common_params & params, int value) { + params.speculative.cpuparams.strict_cpu = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--prio-draft"}, "N", + string_format("set draft process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: %d)\n", params.speculative.cpuparams.priority), + [](common_params & params, int prio) { + if (prio < 0 || prio > 3) { + throw std::invalid_argument("invalid value"); + } + params.speculative.cpuparams.priority = (enum ggml_sched_priority) prio; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--poll-draft"}, "<0|1>", + "Use polling to wait for draft model work (default: same as --poll])", + [](common_params & params, int value) { + params.speculative.cpuparams.poll = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"-Cbd", "--cpu-mask-batch-draft"}, "M", + "Draft model CPU affinity mask. Complements cpu-range-draft (default: same as --cpu-mask)", + [](common_params & params, const std::string & mask) { + params.speculative.cpuparams_batch.mask_valid = true; + if (!parse_cpu_mask(mask, params.speculative.cpuparams_batch.cpumask)) { + throw std::invalid_argument("invalid cpumask"); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"-Crbd", "--cpu-range-batch-draft"}, "lo-hi", + "Ranges of CPUs for affinity. Complements --cpu-mask-draft-batch)", + [](common_params & params, const std::string & range) { + params.speculative.cpuparams_batch.mask_valid = true; + if (!parse_cpu_range(range, params.speculative.cpuparams_batch.cpumask)) { + throw std::invalid_argument("invalid cpumask"); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--cpu-strict-batch-draft"}, "<0|1>", + "Use strict CPU placement for draft model (default: --cpu-strict-draft)", + [](common_params & params, int value) { + params.speculative.cpuparams_batch.strict_cpu = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--prio-batch-draft"}, "N", + string_format("set draft process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime (default: %d)\n", params.speculative.cpuparams_batch.priority), + [](common_params & params, int prio) { + if (prio < 0 || prio > 3) { + throw std::invalid_argument("invalid value"); + } + params.speculative.cpuparams_batch.priority = (enum ggml_sched_priority) prio; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--poll-batch-draft"}, "<0|1>", + "Use polling to wait for draft model work (default: --poll-draft)", + [](common_params & params, int value) { + params.speculative.cpuparams_batch.poll = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--draft-max", "--draft", "--draft-n"}, "N", + string_format("number of tokens to draft for speculative decoding (default: %d)", params.speculative.n_max), + [](common_params & params, int value) { + params.speculative.n_max = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_LOOKUP, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--draft-min", "--draft-n-min"}, "N", + string_format("minimum number of draft tokens to use for speculative decoding (default: %d)", params.speculative.n_min), + [](common_params & params, int value) { + params.speculative.n_min = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_LOOKUP, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"--draft-p-split"}, "P", + string_format("speculative decoding split probability (default: %.1f)", (double)params.speculative.p_split), + [](common_params & params, const std::string & value) { + params.speculative.p_split = std::stof(value); + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE})); + add_opt(common_arg( + {"--draft-p-min"}, "P", + string_format("minimum speculative decoding probability (greedy) (default: %.1f)", (double)params.speculative.p_min), + [](common_params & params, const std::string & value) { + params.speculative.p_min = std::stof(value); + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"-cd", "--ctx-size-draft"}, "N", + string_format("size of the prompt context for the draft model (default: %d, 0 = loaded from model)", params.speculative.n_ctx), + [](common_params & params, int value) { + params.speculative.n_ctx = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"-devd", "--device-draft"}, "", + "comma-separated list of devices to use for offloading the draft model (none = don't offload)\n" + "use --list-devices to see a list of available devices", + [](common_params & params, const std::string & value) { + params.speculative.devices = parse_device_list(value); + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"-ngld", "--gpu-layers-draft", "--n-gpu-layers-draft"}, "N", + "number of layers to store in VRAM for the draft model", + [](common_params & params, int value) { + params.speculative.n_gpu_layers = value; + if (!llama_supports_gpu_offload()) { + fprintf(stderr, "warning: no usable GPU found, --gpu-layers-draft option will be ignored\n"); + fprintf(stderr, "warning: one possible reason is that llama.cpp was compiled without GPU support\n"); + fprintf(stderr, "warning: consult docs/build.md for compilation instructions\n"); + } + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"-md", "--model-draft"}, "FNAME", + "draft model for speculative decoding (default: unused)", + [](common_params & params, const std::string & value) { + params.speculative.model = value; + } + ).set_examples({LLAMA_EXAMPLE_SPECULATIVE, LLAMA_EXAMPLE_SERVER})); + + return ctx_arg; +} diff --git a/llama.cpp/common/arg.h b/llama.cpp/common/arg.h new file mode 100644 index 0000000000000000000000000000000000000000..a6700d323cc14b54b4ef5b2445d29e4baec19594 --- /dev/null +++ b/llama.cpp/common/arg.h @@ -0,0 +1,77 @@ +#pragma once + +#include "common.h" + +#include +#include +#include + +// +// CLI argument parsing +// + +struct common_arg { + std::set examples = {LLAMA_EXAMPLE_COMMON}; + std::vector args; + const char * value_hint = nullptr; // help text or example for arg value + const char * value_hint_2 = nullptr; // for second arg value + const char * env = nullptr; + std::string help; + bool is_sparam = false; // is current arg a sampling param? + void (*handler_void) (common_params & params) = nullptr; + void (*handler_string) (common_params & params, const std::string &) = nullptr; + void (*handler_str_str)(common_params & params, const std::string &, const std::string &) = nullptr; + void (*handler_int) (common_params & params, int) = nullptr; + + common_arg( + const std::initializer_list & args, + const char * value_hint, + const std::string & help, + void (*handler)(common_params & params, const std::string &) + ) : args(args), value_hint(value_hint), help(help), handler_string(handler) {} + + common_arg( + const std::initializer_list & args, + const char * value_hint, + const std::string & help, + void (*handler)(common_params & params, int) + ) : args(args), value_hint(value_hint), help(help), handler_int(handler) {} + + common_arg( + const std::initializer_list & args, + const std::string & help, + void (*handler)(common_params & params) + ) : args(args), help(help), handler_void(handler) {} + + // support 2 values for arg + common_arg( + const std::initializer_list & args, + const char * value_hint, + const char * value_hint_2, + const std::string & help, + void (*handler)(common_params & params, const std::string &, const std::string &) + ) : args(args), value_hint(value_hint), value_hint_2(value_hint_2), help(help), handler_str_str(handler) {} + + common_arg & set_examples(std::initializer_list examples); + common_arg & set_env(const char * env); + common_arg & set_sparam(); + bool in_example(enum llama_example ex); + bool get_value_from_env(std::string & output); + bool has_value_from_env(); + std::string to_string(); +}; + +struct common_params_context { + enum llama_example ex = LLAMA_EXAMPLE_COMMON; + common_params & params; + std::vector options; + void(*print_usage)(int, char **) = nullptr; + common_params_context(common_params & params) : params(params) {} +}; + +// parse input arguments from CLI +// if one argument has invalid value, it will automatically display usage of the specific argument (and not the full usage message) +bool common_params_parse(int argc, char ** argv, common_params & params, llama_example ex, void(*print_usage)(int, char **) = nullptr); + +// function to be used by test-arg-parser +common_params_context common_params_parser_init(common_params & params, llama_example ex, void(*print_usage)(int, char **) = nullptr); diff --git a/llama.cpp/common/base64.hpp b/llama.cpp/common/base64.hpp new file mode 100644 index 0000000000000000000000000000000000000000..563247a6e5f7dba837c07a509026d8b36e61387c --- /dev/null +++ b/llama.cpp/common/base64.hpp @@ -0,0 +1,392 @@ +/* +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to +*/ + +#ifndef PUBLIC_DOMAIN_BASE64_HPP_ +#define PUBLIC_DOMAIN_BASE64_HPP_ + +#include +#include +#include +#include + +class base64_error : public std::runtime_error +{ +public: + using std::runtime_error::runtime_error; +}; + +class base64 +{ +public: + enum class alphabet + { + /** the alphabet is detected automatically */ + auto_, + /** the standard base64 alphabet is used */ + standard, + /** like `standard` except that the characters `+` and `/` are replaced by `-` and `_` respectively*/ + url_filename_safe + }; + + enum class decoding_behavior + { + /** if the input is not padded, the remaining bits are ignored */ + moderate, + /** if a padding character is encounter decoding is finished */ + loose + }; + + /** + Encodes all the elements from `in_begin` to `in_end` to `out`. + + @warning The source and destination cannot overlap. The destination must be able to hold at least + `required_encode_size(std::distance(in_begin, in_end))`, otherwise the behavior depends on the output iterator. + + @tparam Input_iterator the source; the returned elements are cast to `std::uint8_t` and should not be greater than + 8 bits + @tparam Output_iterator the destination; the elements written to it are from the type `char` + @param in_begin the beginning of the source + @param in_end the ending of the source + @param out the destination iterator + @param alphabet which alphabet should be used + @returns the iterator to the next element past the last element copied + @throws see `Input_iterator` and `Output_iterator` + */ + template + static Output_iterator encode(Input_iterator in_begin, Input_iterator in_end, Output_iterator out, + alphabet alphabet = alphabet::standard) + { + constexpr auto pad = '='; + const char* alpha = alphabet == alphabet::url_filename_safe + ? "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_" + : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + while (in_begin != in_end) { + std::uint8_t i0 = 0, i1 = 0, i2 = 0; + + // first character + i0 = static_cast(*in_begin); + ++in_begin; + + *out = alpha[i0 >> 2 & 0x3f]; + ++out; + + // part of first character and second + if (in_begin != in_end) { + i1 = static_cast(*in_begin); + ++in_begin; + + *out = alpha[((i0 & 0x3) << 4) | (i1 >> 4 & 0x0f)]; + ++out; + } else { + *out = alpha[(i0 & 0x3) << 4]; + ++out; + + // last padding + *out = pad; + ++out; + + // last padding + *out = pad; + ++out; + + break; + } + + // part of second character and third + if (in_begin != in_end) { + i2 = static_cast(*in_begin); + ++in_begin; + + *out = alpha[((i1 & 0xf) << 2) | (i2 >> 6 & 0x03)]; + ++out; + } else { + *out = alpha[(i1 & 0xf) << 2]; + ++out; + + // last padding + *out = pad; + ++out; + + break; + } + + // rest of third + *out = alpha[i2 & 0x3f]; + ++out; + } + + return out; + } + /** + Encodes a string. + + @param str the string that should be encoded + @param alphabet which alphabet should be used + @returns the encoded base64 string + @throws see base64::encode() + */ + static std::string encode(const std::string& str, alphabet alphabet = alphabet::standard) + { + std::string result; + + result.reserve(required_encode_size(str.length()) + 1); + + encode(str.begin(), str.end(), std::back_inserter(result), alphabet); + + return result; + } + /** + Encodes a char array. + + @param buffer the char array + @param size the size of the array + @param alphabet which alphabet should be used + @returns the encoded string + */ + static std::string encode(const char* buffer, std::size_t size, alphabet alphabet = alphabet::standard) + { + std::string result; + + result.reserve(required_encode_size(size) + 1); + + encode(buffer, buffer + size, std::back_inserter(result), alphabet); + + return result; + } + /** + Decodes all the elements from `in_begin` to `in_end` to `out`. `in_begin` may point to the same location as `out`, + in other words: inplace decoding is possible. + + @warning The destination must be able to hold at least `required_decode_size(std::distance(in_begin, in_end))`, + otherwise the behavior depends on the output iterator. + + @tparam Input_iterator the source; the returned elements are cast to `char` + @tparam Output_iterator the destination; the elements written to it are from the type `std::uint8_t` + @param in_begin the beginning of the source + @param in_end the ending of the source + @param out the destination iterator + @param alphabet which alphabet should be used + @param behavior the behavior when an error was detected + @returns the iterator to the next element past the last element copied + @throws base64_error depending on the set behavior + @throws see `Input_iterator` and `Output_iterator` + */ + template + static Output_iterator decode(Input_iterator in_begin, Input_iterator in_end, Output_iterator out, + alphabet alphabet = alphabet::auto_, + decoding_behavior behavior = decoding_behavior::moderate) + { + //constexpr auto pad = '='; + std::uint8_t last = 0; + auto bits = 0; + + while (in_begin != in_end) { + auto c = *in_begin; + ++in_begin; + + if (c == '=') { + break; + } + + auto part = _base64_value(alphabet, c); + + // enough bits for one byte + if (bits + 6 >= 8) { + *out = (last << (8 - bits)) | (part >> (bits - 2)); + ++out; + + bits -= 2; + } else { + bits += 6; + } + + last = part; + } + + // check padding + if (behavior != decoding_behavior::loose) { + while (in_begin != in_end) { + auto c = *in_begin; + ++in_begin; + + if (c != '=') { + throw base64_error("invalid base64 character."); + } + } + } + + return out; + } + /** + Decodes a string. + + @param str the base64 encoded string + @param alphabet which alphabet should be used + @param behavior the behavior when an error was detected + @returns the decoded string + @throws see base64::decode() + */ + static std::string decode(const std::string& str, alphabet alphabet = alphabet::auto_, + decoding_behavior behavior = decoding_behavior::moderate) + { + std::string result; + + result.reserve(max_decode_size(str.length())); + + decode(str.begin(), str.end(), std::back_inserter(result), alphabet, behavior); + + return result; + } + /** + Decodes a string. + + @param buffer the base64 encoded buffer + @param size the size of the buffer + @param alphabet which alphabet should be used + @param behavior the behavior when an error was detected + @returns the decoded string + @throws see base64::decode() + */ + static std::string decode(const char* buffer, std::size_t size, alphabet alphabet = alphabet::auto_, + decoding_behavior behavior = decoding_behavior::moderate) + { + std::string result; + + result.reserve(max_decode_size(size)); + + decode(buffer, buffer + size, std::back_inserter(result), alphabet, behavior); + + return result; + } + /** + Decodes a string inplace. + + @param[in,out] str the base64 encoded string + @param alphabet which alphabet should be used + @param behavior the behavior when an error was detected + @throws base64::decode_inplace() + */ + static void decode_inplace(std::string& str, alphabet alphabet = alphabet::auto_, + decoding_behavior behavior = decoding_behavior::moderate) + { + str.resize(decode(str.begin(), str.end(), str.begin(), alphabet, behavior) - str.begin()); + } + /** + Decodes a char array inplace. + + @param[in,out] str the string array + @param size the length of the array + @param alphabet which alphabet should be used + @param behavior the behavior when an error was detected + @returns the pointer to the next element past the last element decoded + @throws base64::decode_inplace() + */ + static char* decode_inplace(char* str, std::size_t size, alphabet alphabet = alphabet::auto_, + decoding_behavior behavior = decoding_behavior::moderate) + { + return decode(str, str + size, str, alphabet, behavior); + } + /** + Returns the required decoding size for a given size. The value is calculated with the following formula: + + $$ + \lceil \frac{size}{4} \rceil \cdot 3 + $$ + + @param size the size of the encoded input + @returns the size of the resulting decoded buffer; this the absolute maximum + */ + static std::size_t max_decode_size(std::size_t size) noexcept + { + return (size / 4 + (size % 4 ? 1 : 0)) * 3; + } + /** + Returns the required encoding size for a given size. The value is calculated with the following formula: + + $$ + \lceil \frac{size}{3} \rceil \cdot 4 + $$ + + @param size the size of the decoded input + @returns the size of the resulting encoded buffer + */ + static std::size_t required_encode_size(std::size_t size) noexcept + { + return (size / 3 + (size % 3 ? 1 : 0)) * 4; + } + +private: + static std::uint8_t _base64_value(alphabet& alphabet, char c) + { + if (c >= 'A' && c <= 'Z') { + return c - 'A'; + } else if (c >= 'a' && c <= 'z') { + return c - 'a' + 26; + } else if (c >= '0' && c <= '9') { + return c - '0' + 52; + } + + // comes down to alphabet + if (alphabet == alphabet::standard) { + if (c == '+') { + return 62; + } else if (c == '/') { + return 63; + } + } else if (alphabet == alphabet::url_filename_safe) { + if (c == '-') { + return 62; + } else if (c == '_') { + return 63; + } + } // auto detect + else { + if (c == '+') { + alphabet = alphabet::standard; + + return 62; + } else if (c == '/') { + alphabet = alphabet::standard; + + return 63; + } else if (c == '-') { + alphabet = alphabet::url_filename_safe; + + return 62; + } else if (c == '_') { + alphabet = alphabet::url_filename_safe; + + return 63; + } + } + + throw base64_error("invalid base64 character."); + } +}; + +#endif // !PUBLIC_DOMAIN_BASE64_HPP_ diff --git a/llama.cpp/common/build-info.cpp b/llama.cpp/common/build-info.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ea6eef5a2cc4175b5eb9395b4687ffe33d94e22e --- /dev/null +++ b/llama.cpp/common/build-info.cpp @@ -0,0 +1,4 @@ +int LLAMA_BUILD_NUMBER = 4246; +char const *LLAMA_COMMIT = "0115df2f"; +char const *LLAMA_COMPILER = "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"; +char const *LLAMA_BUILD_TARGET = "x86_64-linux-gnu"; diff --git a/llama.cpp/common/build-info.cpp.in b/llama.cpp/common/build-info.cpp.in new file mode 100644 index 0000000000000000000000000000000000000000..0b945aa68fff3e77b881328e4fd63f6e2f9017ee --- /dev/null +++ b/llama.cpp/common/build-info.cpp.in @@ -0,0 +1,4 @@ +int LLAMA_BUILD_NUMBER = @BUILD_NUMBER@; +char const *LLAMA_COMMIT = "@BUILD_COMMIT@"; +char const *LLAMA_COMPILER = "@BUILD_COMPILER@"; +char const *LLAMA_BUILD_TARGET = "@BUILD_TARGET@"; diff --git a/llama.cpp/common/cmake/build-info-gen-cpp.cmake b/llama.cpp/common/cmake/build-info-gen-cpp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fbc92b52cc4fef0504388cd08bcfaad3113efa17 --- /dev/null +++ b/llama.cpp/common/cmake/build-info-gen-cpp.cmake @@ -0,0 +1,24 @@ +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/build-info.cmake) + +set(TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp.in") +set(OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/common/build-info.cpp") + +# Only write the build info if it changed +if(EXISTS ${OUTPUT_FILE}) + file(READ ${OUTPUT_FILE} CONTENTS) + string(REGEX MATCH "LLAMA_COMMIT = \"([^\"]*)\";" _ ${CONTENTS}) + set(OLD_COMMIT ${CMAKE_MATCH_1}) + string(REGEX MATCH "LLAMA_COMPILER = \"([^\"]*)\";" _ ${CONTENTS}) + set(OLD_COMPILER ${CMAKE_MATCH_1}) + string(REGEX MATCH "LLAMA_BUILD_TARGET = \"([^\"]*)\";" _ ${CONTENTS}) + set(OLD_TARGET ${CMAKE_MATCH_1}) + if ( + NOT OLD_COMMIT STREQUAL BUILD_COMMIT OR + NOT OLD_COMPILER STREQUAL BUILD_COMPILER OR + NOT OLD_TARGET STREQUAL BUILD_TARGET + ) + configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE}) + endif() +else() + configure_file(${TEMPLATE_FILE} ${OUTPUT_FILE}) +endif() diff --git a/llama.cpp/common/common.cpp b/llama.cpp/common/common.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6143516d2250f49f328d58f760bf7a7c54001cb6 --- /dev/null +++ b/llama.cpp/common/common.cpp @@ -0,0 +1,1971 @@ +#if defined(_MSC_VER) +#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING +#endif + +#include "common.h" +#include "log.h" +// Change JSON_ASSERT from assert() to GGML_ASSERT: +#define JSON_ASSERT GGML_ASSERT +#include "json.hpp" +#include "json-schema-to-grammar.h" +#include "llama.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(__APPLE__) && defined(__MACH__) +#include +#include +#endif + +#if defined(_WIN32) +#define WIN32_LEAN_AND_MEAN +#ifndef NOMINMAX +# define NOMINMAX +#endif +#include +#include +#include +#include +#else +#include +#include +#include +#endif +#if defined(LLAMA_USE_CURL) +#include +#include +#include +#endif + +#if defined(_MSC_VER) +#pragma warning(disable: 4244 4267) // possible loss of data +#endif + +#if defined(LLAMA_USE_CURL) +#ifdef __linux__ +#include +#elif defined(_WIN32) +#define PATH_MAX MAX_PATH +#else +#include +#endif +#define LLAMA_CURL_MAX_URL_LENGTH 2084 // Maximum URL Length in Chrome: 2083 +#endif // LLAMA_USE_CURL + +using json = nlohmann::ordered_json; + +// +// CPU utils +// + +int32_t cpu_get_num_physical_cores() { +#ifdef __linux__ + // enumerate the set of thread siblings, num entries is num cores + std::unordered_set siblings; + for (uint32_t cpu=0; cpu < UINT32_MAX; ++cpu) { + std::ifstream thread_siblings("/sys/devices/system/cpu/cpu" + + std::to_string(cpu) + "/topology/thread_siblings"); + if (!thread_siblings.is_open()) { + break; // no more cpus + } + std::string line; + if (std::getline(thread_siblings, line)) { + siblings.insert(line); + } + } + if (!siblings.empty()) { + return static_cast(siblings.size()); + } +#elif defined(__APPLE__) && defined(__MACH__) + int32_t num_physical_cores; + size_t len = sizeof(num_physical_cores); + int result = sysctlbyname("hw.perflevel0.physicalcpu", &num_physical_cores, &len, NULL, 0); + if (result == 0) { + return num_physical_cores; + } + result = sysctlbyname("hw.physicalcpu", &num_physical_cores, &len, NULL, 0); + if (result == 0) { + return num_physical_cores; + } +#elif defined(_WIN32) && (_WIN32_WINNT >= 0x0601) && !defined(__MINGW64__) // windows 7 and later + // TODO: windows + arm64 + mingw64 + unsigned int n_threads_win = std::thread::hardware_concurrency(); + unsigned int default_threads = n_threads_win > 0 ? (n_threads_win <= 4 ? n_threads_win : n_threads_win / 2) : 4; + + DWORD buffer_size = 0; + if (!GetLogicalProcessorInformationEx(RelationProcessorCore, nullptr, &buffer_size)) { + if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) { + return default_threads; + } + } + + std::vector buffer(buffer_size); + if (!GetLogicalProcessorInformationEx(RelationProcessorCore, reinterpret_cast(buffer.data()), &buffer_size)) { + return default_threads; + } + + int32_t num_physical_cores = 0; + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX info = reinterpret_cast(buffer.data()); + while (buffer_size > 0) { + if (info->Relationship == RelationProcessorCore) { + num_physical_cores += info->Processor.GroupCount; + } + buffer_size -= info->Size; + info = reinterpret_cast(reinterpret_cast(info) + info->Size); + } + + return num_physical_cores > 0 ? num_physical_cores : default_threads; +#endif + unsigned int n_threads = std::thread::hardware_concurrency(); + return n_threads > 0 ? (n_threads <= 4 ? n_threads : n_threads / 2) : 4; +} + +#if defined(__x86_64__) && defined(__linux__) && !defined(__ANDROID__) +#include + +static void cpuid(unsigned leaf, unsigned subleaf, + unsigned *eax, unsigned *ebx, unsigned *ecx, unsigned *edx) { + __asm__("movq\t%%rbx,%%rsi\n\t" + "cpuid\n\t" + "xchgq\t%%rbx,%%rsi" + : "=a"(*eax), "=S"(*ebx), "=c"(*ecx), "=d"(*edx) + : "0"(leaf), "2"(subleaf)); +} + +static int pin_cpu(int cpu) { + cpu_set_t mask; + CPU_ZERO(&mask); + CPU_SET(cpu, &mask); + return pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask); +} + +static bool is_hybrid_cpu(void) { + unsigned eax, ebx, ecx, edx; + cpuid(7, 0, &eax, &ebx, &ecx, &edx); + return !!(edx & (1u << 15)); +} + +static bool is_running_on_efficiency_core(void) { + unsigned eax, ebx, ecx, edx; + cpuid(0x1a, 0, &eax, &ebx, &ecx, &edx); + int intel_atom = 0x20; + int core_type = (eax & 0xff000000u) >> 24; + return core_type == intel_atom; +} + +static int cpu_count_math_cpus(int n_cpu) { + int result = 0; + for (int cpu = 0; cpu < n_cpu; ++cpu) { + if (pin_cpu(cpu)) { + return -1; + } + if (is_running_on_efficiency_core()) { + continue; // efficiency cores harm lockstep threading + } + ++cpu; // hyperthreading isn't useful for linear algebra + ++result; + } + return result; +} + +#endif // __x86_64__ && __linux__ + +/** + * Returns number of CPUs on system that are useful for math. + */ +int32_t cpu_get_num_math() { +#if defined(__x86_64__) && defined(__linux__) && !defined(__ANDROID__) + int n_cpu = sysconf(_SC_NPROCESSORS_ONLN); + if (n_cpu < 1) { + return cpu_get_num_physical_cores(); + } + if (is_hybrid_cpu()) { + cpu_set_t affinity; + if (!pthread_getaffinity_np(pthread_self(), sizeof(affinity), &affinity)) { + int result = cpu_count_math_cpus(n_cpu); + pthread_setaffinity_np(pthread_self(), sizeof(affinity), &affinity); + if (result > 0) { + return result; + } + } + } +#endif + return cpu_get_num_physical_cores(); +} + +// Helper for setting process priority + +#if defined(_WIN32) + +bool set_process_priority(enum ggml_sched_priority prio) { + if (prio == GGML_SCHED_PRIO_NORMAL) { + return true; + } + + DWORD p = NORMAL_PRIORITY_CLASS; + switch (prio) { + case GGML_SCHED_PRIO_NORMAL: p = NORMAL_PRIORITY_CLASS; break; + case GGML_SCHED_PRIO_MEDIUM: p = ABOVE_NORMAL_PRIORITY_CLASS; break; + case GGML_SCHED_PRIO_HIGH: p = HIGH_PRIORITY_CLASS; break; + case GGML_SCHED_PRIO_REALTIME: p = REALTIME_PRIORITY_CLASS; break; + } + + if (!SetPriorityClass(GetCurrentProcess(), p)) { + LOG_WRN("failed to set process priority class %d : (%d)\n", prio, (int) GetLastError()); + return false; + } + + return true; +} + +#else // MacOS and POSIX +#include +#include + +bool set_process_priority(enum ggml_sched_priority prio) { + if (prio == GGML_SCHED_PRIO_NORMAL) { + return true; + } + + int p = 0; + switch (prio) { + case GGML_SCHED_PRIO_NORMAL: p = 0; break; + case GGML_SCHED_PRIO_MEDIUM: p = -5; break; + case GGML_SCHED_PRIO_HIGH: p = -10; break; + case GGML_SCHED_PRIO_REALTIME: p = -20; break; + } + + if (!setpriority(PRIO_PROCESS, 0, p)) { + LOG_WRN("failed to set process priority %d : %s (%d)\n", prio, strerror(errno), errno); + return false; + } + return true; +} + +#endif + +// +// CLI argument parsing +// + + +void postprocess_cpu_params(cpu_params& cpuparams, const cpu_params* role_model) { + int32_t n_set = 0; + + if (cpuparams.n_threads < 0) { + // Assuming everything about cpuparams is invalid + if (role_model != nullptr) { + cpuparams = *role_model; + } else { + cpuparams.n_threads = cpu_get_num_math(); + } + } + + for (int32_t i = 0; i < GGML_MAX_N_THREADS; i++) { + if (cpuparams.cpumask[i]) { + n_set++; + } + } + + if (n_set && n_set < cpuparams.n_threads) { + // Not enough set bits, may experience performance issues. + LOG_WRN("Not enough set bits in CPU mask (%d) to satisfy requested thread count: %d\n", n_set, cpuparams.n_threads); + } +} + +bool parse_cpu_range(const std::string & range, bool (&boolmask)[GGML_MAX_N_THREADS]) { + size_t dash_loc = range.find('-'); + if (dash_loc == std::string::npos) { + LOG_ERR("Format of CPU range is invalid! Expected []-[].\n"); + return false; + } + + size_t start_i; + size_t end_i; + + if (dash_loc == 0) { + start_i = 0; + } else { + start_i = std::stoull(range.substr(0, dash_loc)); + if (start_i >= GGML_MAX_N_THREADS) { + LOG_ERR("Start index out of bounds!\n"); + return false; + } + } + + if (dash_loc == range.length() - 1) { + end_i = GGML_MAX_N_THREADS - 1; + } else { + end_i = std::stoull(range.substr(dash_loc + 1)); + if (end_i >= GGML_MAX_N_THREADS) { + LOG_ERR("End index out of bounds!\n"); + return false; + } + } + + for (size_t i = start_i; i <= end_i; i++) { + boolmask[i] = true; + } + + return true; +} + +bool parse_cpu_mask(const std::string & mask, bool (&boolmask)[GGML_MAX_N_THREADS]) { + // Discard potential 0x prefix + size_t start_i = 0; + if (mask.length() >= 2 && mask.substr(0, 2) == "0x") { + start_i = 2; + } + + size_t num_digits = mask.length() - start_i; + if (num_digits > 128) num_digits = 128; + + size_t end_i = num_digits + start_i; + + for (size_t i = start_i, n = (num_digits*4 - 1); i < end_i; i++, n-=4) { + char c = mask.at(i); + int8_t id = c; + + if ((c >= '0' && c <= '9')) { + id -= '0'; + } else if (c >= 'a' && c <= 'f') { + id -= 'a' - 10; + } else if (c >= 'A' && c <= 'F') { + id -= 'A' - 10; + } else { + LOG_ERR("Invalid hex character '%c' at position %d\n", c, int32_t(i)); + return false; + } + + boolmask[ n ] = boolmask[ n ] || ((id & 8) != 0); + boolmask[n - 1] = boolmask[n - 1] || ((id & 4) != 0); + boolmask[n - 2] = boolmask[n - 2] || ((id & 2) != 0); + boolmask[n - 3] = boolmask[n - 3] || ((id & 1) != 0); + } + + return true; +} + +void common_init() { + llama_log_set([](ggml_log_level level, const char * text, void * /*user_data*/) { + if (LOG_DEFAULT_LLAMA <= common_log_verbosity_thold) { + common_log_add(common_log_main(), level, "%s", text); + } + }, NULL); + +#ifdef NDEBUG + const char * build_type = ""; +#else + const char * build_type = " (debug)"; +#endif + + LOG_INF("build: %d (%s) with %s for %s%s\n", LLAMA_BUILD_NUMBER, LLAMA_COMMIT, LLAMA_COMPILER, LLAMA_BUILD_TARGET, build_type); +} + +std::string common_params_get_system_info(const common_params & params) { + std::ostringstream os; + + os << "system_info: n_threads = " << params.cpuparams.n_threads; + if (params.cpuparams_batch.n_threads != -1) { + os << " (n_threads_batch = " << params.cpuparams_batch.n_threads << ")"; + } +#if defined(_WIN32) && (_WIN32_WINNT >= 0x0601) && !defined(__MINGW64__) // windows 7 and later + // TODO: windows + arm64 + mingw64 + DWORD logicalProcessorCount = GetActiveProcessorCount(ALL_PROCESSOR_GROUPS); + os << " / " << logicalProcessorCount << " | " << llama_print_system_info(); +#else + os << " / " << std::thread::hardware_concurrency() << " | " << llama_print_system_info(); +#endif + + return os.str(); +} + +// +// String utils +// + +std::string string_format(const char * fmt, ...) { + va_list ap; + va_list ap2; + va_start(ap, fmt); + va_copy(ap2, ap); + int size = vsnprintf(NULL, 0, fmt, ap); + GGML_ASSERT(size >= 0 && size < INT_MAX); // NOLINT + std::vector buf(size + 1); + int size2 = vsnprintf(buf.data(), size + 1, fmt, ap2); + GGML_ASSERT(size2 == size); + va_end(ap2); + va_end(ap); + return std::string(buf.data(), size); +} + +std::string string_strip(const std::string & str) { + size_t start = 0; + size_t end = str.size(); + while (start < end && std::isspace(str[start])) { + start++; + } + while (end > start && std::isspace(str[end - 1])) { + end--; + } + return str.substr(start, end - start); +} + +std::string string_get_sortable_timestamp() { + using clock = std::chrono::system_clock; + + const clock::time_point current_time = clock::now(); + const time_t as_time_t = clock::to_time_t(current_time); + char timestamp_no_ns[100]; + std::strftime(timestamp_no_ns, 100, "%Y_%m_%d-%H_%M_%S", std::localtime(&as_time_t)); + + const int64_t ns = std::chrono::duration_cast( + current_time.time_since_epoch() % 1000000000).count(); + char timestamp_ns[11]; + snprintf(timestamp_ns, 11, "%09" PRId64, ns); + + return std::string(timestamp_no_ns) + "." + std::string(timestamp_ns); +} + +void string_replace_all(std::string & s, const std::string & search, const std::string & replace) { + if (search.empty()) { + return; + } + std::string builder; + builder.reserve(s.length()); + size_t pos = 0; + size_t last_pos = 0; + while ((pos = s.find(search, last_pos)) != std::string::npos) { + builder.append(s, last_pos, pos - last_pos); + builder.append(replace); + last_pos = pos + search.length(); + } + builder.append(s, last_pos, std::string::npos); + s = std::move(builder); +} + +std::string string_from(bool value) { + return value ? "true" : "false"; +} + +std::string string_from(const std::vector & values) { + std::stringstream buf; + + buf << "[ "; + bool first = true; + for (auto e : values) { + if (first) { + first = false; + } else { + buf << ", "; + } + buf << std::to_string(e); + } + buf << " ]"; + + return buf.str(); +} + +std::string string_from(const struct llama_context * ctx, const std::vector & tokens) { + std::stringstream buf; + + buf << "[ "; + + bool first = true; + for (const auto & token : tokens) { + if (!first) { + buf << ", "; + } else { + first = false; + } + + auto detokenized = common_token_to_piece(ctx, token); + + detokenized.erase( + std::remove_if( + detokenized.begin(), + detokenized.end(), + [](const unsigned char c) { return !std::isprint(c); }), + detokenized.end()); + + buf << "'" << detokenized << "'" + << ":" << std::to_string(token); + } + + buf << " ]"; + + return buf.str(); +} + +std::string string_from(const struct llama_context * ctx, const struct llama_batch & batch) { + std::stringstream buf; + + buf << "[ "; + + bool first = true; + for (int i = 0; i < batch.n_tokens; ++i) { + if (!first) { + buf << ", "; + } else { + first = false; + } + + auto detokenized = common_token_to_piece(ctx, batch.token[i]); + + detokenized.erase( + std::remove_if( + detokenized.begin(), + detokenized.end(), + [](const unsigned char c) { return !std::isprint(c); }), + detokenized.end()); + + buf << "\n" << std::to_string(i) + << ", token '" << detokenized << "'" + << ", pos " << std::to_string(batch.pos[i]) + << ", n_seq_id " << std::to_string(batch.n_seq_id[i]) + << ", seq_id " << std::to_string(batch.seq_id[i][0]) + << ", logits " << std::to_string(batch.logits[i]); + } + + buf << " ]"; + + return buf.str(); +} + +void string_process_escapes(std::string & input) { + std::size_t input_len = input.length(); + std::size_t output_idx = 0; + + for (std::size_t input_idx = 0; input_idx < input_len; ++input_idx) { + if (input[input_idx] == '\\' && input_idx + 1 < input_len) { + switch (input[++input_idx]) { + case 'n': input[output_idx++] = '\n'; break; + case 'r': input[output_idx++] = '\r'; break; + case 't': input[output_idx++] = '\t'; break; + case '\'': input[output_idx++] = '\''; break; + case '\"': input[output_idx++] = '\"'; break; + case '\\': input[output_idx++] = '\\'; break; + case 'x': + // Handle \x12, etc + if (input_idx + 2 < input_len) { + const char x[3] = { input[input_idx + 1], input[input_idx + 2], 0 }; + char *err_p = nullptr; + const long val = std::strtol(x, &err_p, 16); + if (err_p == x + 2) { + input_idx += 2; + input[output_idx++] = char(val); + break; + } + } + // fall through + default: input[output_idx++] = '\\'; + input[output_idx++] = input[input_idx]; break; + } + } else { + input[output_idx++] = input[input_idx]; + } + } + + input.resize(output_idx); +} + +bool string_parse_kv_override(const char * data, std::vector & overrides) { + const char * sep = strchr(data, '='); + if (sep == nullptr || sep - data >= 128) { + LOG_ERR("%s: malformed KV override '%s'\n", __func__, data); + return false; + } + llama_model_kv_override kvo; + std::strncpy(kvo.key, data, sep - data); + kvo.key[sep - data] = 0; + sep++; + if (strncmp(sep, "int:", 4) == 0) { + sep += 4; + kvo.tag = LLAMA_KV_OVERRIDE_TYPE_INT; + kvo.val_i64 = std::atol(sep); + } else if (strncmp(sep, "float:", 6) == 0) { + sep += 6; + kvo.tag = LLAMA_KV_OVERRIDE_TYPE_FLOAT; + kvo.val_f64 = std::atof(sep); + } else if (strncmp(sep, "bool:", 5) == 0) { + sep += 5; + kvo.tag = LLAMA_KV_OVERRIDE_TYPE_BOOL; + if (std::strcmp(sep, "true") == 0) { + kvo.val_bool = true; + } else if (std::strcmp(sep, "false") == 0) { + kvo.val_bool = false; + } else { + LOG_ERR("%s: invalid boolean value for KV override '%s'\n", __func__, data); + return false; + } + } else if (strncmp(sep, "str:", 4) == 0) { + sep += 4; + kvo.tag = LLAMA_KV_OVERRIDE_TYPE_STR; + if (strlen(sep) > 127) { + LOG_ERR("%s: malformed KV override '%s', value cannot exceed 127 chars\n", __func__, data); + return false; + } + strncpy(kvo.val_str, sep, 127); + kvo.val_str[127] = '\0'; + } else { + LOG_ERR("%s: invalid type for KV override '%s'\n", __func__, data); + return false; + } + overrides.emplace_back(std::move(kvo)); + return true; +} + +// +// Filesystem utils +// + +// Validate if a filename is safe to use +// To validate a full path, split the path by the OS-specific path separator, and validate each part with this function +bool fs_validate_filename(const std::string & filename) { + if (!filename.length()) { + // Empty filename invalid + return false; + } + if (filename.length() > 255) { + // Limit at common largest possible filename on Linux filesystems + // to avoid unnecessary further validation + // (On systems with smaller limits it will be caught by the OS) + return false; + } + + std::u32string filename_utf32; + try { +#if defined(__clang__) + // disable C++17 deprecation warning for std::codecvt_utf8 +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif + std::wstring_convert, char32_t> converter; + +#if defined(__clang__) +# pragma clang diagnostic pop +#endif + + filename_utf32 = converter.from_bytes(filename); + + // If the reverse conversion mismatches, it means overlong UTF-8 sequences were used, + // or invalid encodings were encountered. Reject such attempts + std::string filename_reencoded = converter.to_bytes(filename_utf32); + if (filename_reencoded != filename) { + return false; + } + } catch (const std::exception &) { + return false; + } + + // Check for forbidden codepoints: + // - Control characters + // - Unicode equivalents of illegal characters + // - UTF-16 surrogate pairs + // - UTF-8 replacement character + // - Byte order mark (BOM) + // - Illegal characters: / \ : * ? " < > | + for (char32_t c : filename_utf32) { + if (c <= 0x1F // Control characters (C0) + || c == 0x7F // Control characters (DEL) + || (c >= 0x80 && c <= 0x9F) // Control characters (C1) + || c == 0xFF0E // Fullwidth Full Stop (period equivalent) + || c == 0x2215 // Division Slash (forward slash equivalent) + || c == 0x2216 // Set Minus (backslash equivalent) + || (c >= 0xD800 && c <= 0xDFFF) // UTF-16 surrogate pairs + || c == 0xFFFD // Replacement Character (UTF-8) + || c == 0xFEFF // Byte Order Mark (BOM) + || c == '/' || c == '\\' || c == ':' || c == '*' // Illegal characters + || c == '?' || c == '"' || c == '<' || c == '>' || c == '|') { + return false; + } + } + + // Reject any leading or trailing ' ', or any trailing '.', these are stripped on Windows and will cause a different filename + // Unicode and other whitespace is not affected, only 0x20 space + if (filename.front() == ' ' || filename.back() == ' ' || filename.back() == '.') { + return false; + } + + // Reject any ".." (currently stricter than necessary, it should be fine to just check for == ".." instead) + if (filename.find("..") != std::string::npos) { + return false; + } + + // Reject "." + if (filename == ".") { + return false; + } + + return true; +} + +// returns true if successful, false otherwise +bool fs_create_directory_with_parents(const std::string & path) { +#ifdef _WIN32 + std::wstring_convert> converter; + std::wstring wpath = converter.from_bytes(path); + + // if the path already exists, check whether it's a directory + const DWORD attributes = GetFileAttributesW(wpath.c_str()); + if ((attributes != INVALID_FILE_ATTRIBUTES) && (attributes & FILE_ATTRIBUTE_DIRECTORY)) { + return true; + } + + size_t pos_slash = 0; + + // process path from front to back, procedurally creating directories + while ((pos_slash = path.find('\\', pos_slash)) != std::string::npos) { + const std::wstring subpath = wpath.substr(0, pos_slash); + const wchar_t * test = subpath.c_str(); + + const bool success = CreateDirectoryW(test, NULL); + if (!success) { + const DWORD error = GetLastError(); + + // if the path already exists, ensure that it's a directory + if (error == ERROR_ALREADY_EXISTS) { + const DWORD attributes = GetFileAttributesW(subpath.c_str()); + if (attributes == INVALID_FILE_ATTRIBUTES || !(attributes & FILE_ATTRIBUTE_DIRECTORY)) { + return false; + } + } else { + return false; + } + } + + pos_slash += 1; + } + + return true; +#else + // if the path already exists, check whether it's a directory + struct stat info; + if (stat(path.c_str(), &info) == 0) { + return S_ISDIR(info.st_mode); + } + + size_t pos_slash = 1; // skip leading slashes for directory creation + + // process path from front to back, procedurally creating directories + while ((pos_slash = path.find('/', pos_slash)) != std::string::npos) { + const std::string subpath = path.substr(0, pos_slash); + struct stat info; + + // if the path already exists, ensure that it's a directory + if (stat(subpath.c_str(), &info) == 0) { + if (!S_ISDIR(info.st_mode)) { + return false; + } + } else { + // create parent directories + const int ret = mkdir(subpath.c_str(), 0755); + if (ret != 0) { + return false; + } + } + + pos_slash += 1; + } + + return true; +#endif // _WIN32 +} + +std::string fs_get_cache_directory() { + std::string cache_directory = ""; + auto ensure_trailing_slash = [](std::string p) { + // Make sure to add trailing slash + if (p.back() != DIRECTORY_SEPARATOR) { + p += DIRECTORY_SEPARATOR; + } + return p; + }; + if (getenv("LLAMA_CACHE")) { + cache_directory = std::getenv("LLAMA_CACHE"); + } else { +#ifdef __linux__ + if (std::getenv("XDG_CACHE_HOME")) { + cache_directory = std::getenv("XDG_CACHE_HOME"); + } else { + cache_directory = std::getenv("HOME") + std::string("/.cache/"); + } +#elif defined(__APPLE__) + cache_directory = std::getenv("HOME") + std::string("/Library/Caches/"); +#elif defined(_WIN32) + cache_directory = std::getenv("LOCALAPPDATA"); +#endif // __linux__ + cache_directory = ensure_trailing_slash(cache_directory); + cache_directory += "llama.cpp"; + } + return ensure_trailing_slash(cache_directory); +} + +std::string fs_get_cache_file(const std::string & filename) { + GGML_ASSERT(filename.find(DIRECTORY_SEPARATOR) == std::string::npos); + std::string cache_directory = fs_get_cache_directory(); + const bool success = fs_create_directory_with_parents(cache_directory); + if (!success) { + throw std::runtime_error("failed to create cache directory: " + cache_directory); + } + return cache_directory + filename; +} + + +// +// Model utils +// +struct common_init_result common_init_from_params(common_params & params) { + common_init_result iparams; + auto mparams = common_model_params_to_llama(params); + + llama_model * model = nullptr; + + if (!params.hf_repo.empty() && !params.hf_file.empty()) { + model = common_load_model_from_hf(params.hf_repo, params.hf_file, params.model, params.hf_token, mparams); + } else if (!params.model_url.empty()) { + model = common_load_model_from_url(params.model_url, params.model, params.hf_token, mparams); + } else { + model = llama_load_model_from_file(params.model.c_str(), mparams); + } + + if (model == NULL) { + LOG_ERR("%s: failed to load model '%s'\n", __func__, params.model.c_str()); + return iparams; + } + + if (params.reranking) { + bool ok = true; + + if (llama_token_bos(model) == LLAMA_TOKEN_NULL) { + LOG_WRN("%s: warning: model does not have a BOS token, reranking will not work\n", __func__); + ok = false; + } + + if (llama_token_eos(model) == LLAMA_TOKEN_NULL) { + LOG_WRN("%s: warning: model does not have an EOS token, reranking will not work\n", __func__); + ok = false; + } + + if (llama_token_sep(model) == LLAMA_TOKEN_NULL) { + LOG_WRN("%s: warning: model does not have a SEP token, reranking will not work\n", __func__); + ok = false; + } + + if (!ok) { + llama_free_model(model); + + return iparams; + } + } + + auto cparams = common_context_params_to_llama(params); + + llama_context * lctx = llama_new_context_with_model(model, cparams); + if (lctx == NULL) { + LOG_ERR("%s: failed to create context with model '%s'\n", __func__, params.model.c_str()); + llama_free_model(model); + return iparams; + } + + if (params.ctx_shift && !llama_kv_cache_can_shift(lctx)) { + LOG_ERR("%s: KV cache shifting is not supported for this model (--no-context-shift to disable)'\n", __func__); + llama_free_model(model); + return iparams; + } + + if (!params.control_vectors.empty()) { + if (params.control_vector_layer_start <= 0) params.control_vector_layer_start = 1; + if (params.control_vector_layer_end <= 0) params.control_vector_layer_end = llama_n_layer(model); + + const auto cvec = common_control_vector_load(params.control_vectors); + if (cvec.n_embd == -1) { + llama_free(lctx); + llama_free_model(model); + + return iparams; + } + + int err = llama_control_vector_apply(lctx, + cvec.data.data(), + cvec.data.size(), + cvec.n_embd, + params.control_vector_layer_start, + params.control_vector_layer_end); + if (err) { + llama_free(lctx); + llama_free_model(model); + + return iparams; + } + } + + // load and optionally apply lora adapters + for (auto & la : params.lora_adapters) { + common_lora_adapter_container loaded_la; + loaded_la.path = la.path; + loaded_la.scale = la.scale; + loaded_la.adapter = llama_lora_adapter_init(model, la.path.c_str()); + if (loaded_la.adapter == nullptr) { + LOG_ERR("%s: failed to apply lora adapter '%s'\n", __func__, la.path.c_str()); + llama_free(lctx); + llama_free_model(model); + return iparams; + } + iparams.lora_adapters.push_back(loaded_la); // copy to list of loaded adapters + } + if (!params.lora_init_without_apply) { + common_lora_adapters_apply(lctx, iparams.lora_adapters); + } + + if (params.sampling.ignore_eos && llama_token_eos(model) == LLAMA_TOKEN_NULL) { + LOG_WRN("%s: warning: model does not have an EOS token, ignoring --ignore-eos\n", __func__); + params.sampling.ignore_eos = false; + } + + if (params.warmup) { + LOG_WRN("%s: warming up the model with an empty run - please wait ... (--no-warmup to disable)\n", __func__); + + std::vector tmp; + llama_token bos = llama_token_bos(model); + llama_token eos = llama_token_eos(model); + // some models (e.g. T5) don't have a BOS token + if (bos != LLAMA_TOKEN_NULL) { + tmp.push_back(bos); + } + if (eos != LLAMA_TOKEN_NULL) { + tmp.push_back(eos); + } + if (tmp.empty()) { + tmp.push_back(0); + } + + if (llama_model_has_encoder(model)) { + llama_encode(lctx, llama_batch_get_one(tmp.data(), tmp.size())); + llama_token decoder_start_token_id = llama_model_decoder_start_token(model); + if (decoder_start_token_id == -1) { + decoder_start_token_id = bos; + } + tmp.clear(); + tmp.push_back(decoder_start_token_id); + } + if (llama_model_has_decoder(model)) { + llama_decode(lctx, llama_batch_get_one(tmp.data(), std::min(tmp.size(), (size_t) params.n_batch))); + } + llama_kv_cache_clear(lctx); + llama_synchronize(lctx); + llama_perf_context_reset(lctx); + } + + iparams.model = model; + iparams.context = lctx; + + return iparams; +} + +void common_lora_adapters_apply(struct llama_context * ctx, std::vector & lora_adapters) { + llama_lora_adapter_clear(ctx); + for (auto & la : lora_adapters) { + if (la.scale != 0.0f) { + llama_lora_adapter_set(ctx, la.adapter, la.scale); + } + } +} + +struct llama_model_params common_model_params_to_llama(common_params & params) { + auto mparams = llama_model_default_params(); + + if (!params.devices.empty()) { + mparams.devices = params.devices.data(); + } + if (params.n_gpu_layers != -1) { + mparams.n_gpu_layers = params.n_gpu_layers; + } + mparams.rpc_servers = params.rpc_servers.c_str(); + mparams.main_gpu = params.main_gpu; + mparams.split_mode = params.split_mode; + mparams.tensor_split = params.tensor_split; + mparams.use_mmap = params.use_mmap; + mparams.use_mlock = params.use_mlock; + mparams.check_tensors = params.check_tensors; + if (params.kv_overrides.empty()) { + mparams.kv_overrides = NULL; + } else { + GGML_ASSERT(params.kv_overrides.back().key[0] == 0 && "KV overrides not terminated with empty key"); + mparams.kv_overrides = params.kv_overrides.data(); + } + + return mparams; +} + +static ggml_type kv_cache_type_from_str(const std::string & s) { + if (s == "f32") { + return GGML_TYPE_F32; + } + if (s == "f16") { + return GGML_TYPE_F16; + } + if (s == "bf16") { + return GGML_TYPE_BF16; + } + if (s == "q8_0") { + return GGML_TYPE_Q8_0; + } + if (s == "q4_0") { + return GGML_TYPE_Q4_0; + } + if (s == "q4_1") { + return GGML_TYPE_Q4_1; + } + if (s == "iq4_nl") { + return GGML_TYPE_IQ4_NL; + } + if (s == "q5_0") { + return GGML_TYPE_Q5_0; + } + if (s == "q5_1") { + return GGML_TYPE_Q5_1; + } + + throw std::runtime_error("Unsupported cache type: " + s); +} + +struct llama_context_params common_context_params_to_llama(const common_params & params) { + auto cparams = llama_context_default_params(); + + cparams.n_ctx = params.n_ctx; + cparams.n_seq_max = params.n_parallel; + cparams.n_batch = params.n_batch; + cparams.n_ubatch = params.n_ubatch; + cparams.n_threads = params.cpuparams.n_threads; + cparams.n_threads_batch = params.cpuparams_batch.n_threads == -1 ? + params.cpuparams.n_threads : params.cpuparams_batch.n_threads; + cparams.logits_all = params.logits_all; + cparams.embeddings = params.embedding; + cparams.rope_scaling_type = params.rope_scaling_type; + cparams.rope_freq_base = params.rope_freq_base; + cparams.rope_freq_scale = params.rope_freq_scale; + cparams.yarn_ext_factor = params.yarn_ext_factor; + cparams.yarn_attn_factor = params.yarn_attn_factor; + cparams.yarn_beta_fast = params.yarn_beta_fast; + cparams.yarn_beta_slow = params.yarn_beta_slow; + cparams.yarn_orig_ctx = params.yarn_orig_ctx; + cparams.pooling_type = params.pooling_type; + cparams.attention_type = params.attention_type; + cparams.defrag_thold = params.defrag_thold; + cparams.cb_eval = params.cb_eval; + cparams.cb_eval_user_data = params.cb_eval_user_data; + cparams.offload_kqv = !params.no_kv_offload; + cparams.flash_attn = params.flash_attn; + cparams.no_perf = params.no_perf; + + if (params.reranking) { + cparams.embeddings = true; + cparams.pooling_type = LLAMA_POOLING_TYPE_RANK; + } + + cparams.type_k = kv_cache_type_from_str(params.cache_type_k); + cparams.type_v = kv_cache_type_from_str(params.cache_type_v); + + return cparams; +} + +struct ggml_threadpool_params ggml_threadpool_params_from_cpu_params(const cpu_params & params) { + struct ggml_threadpool_params tpp; + + ggml_threadpool_params_init(&tpp, params.n_threads); // setup the defaults + + if (params.mask_valid) { + std::memcpy(&tpp.cpumask, ¶ms.cpumask, GGML_MAX_N_THREADS); + } + + tpp.prio = params.priority; + tpp.poll = params.poll; + tpp.strict_cpu = params.strict_cpu; + + return tpp; +} + +#ifdef LLAMA_USE_CURL + +#define CURL_MAX_RETRY 3 +#define CURL_RETRY_DELAY_SECONDS 2 + + +static bool starts_with(const std::string & str, const std::string & prefix) { + // While we wait for C++20's std::string::starts_with... + return str.rfind(prefix, 0) == 0; +} + +static bool curl_perform_with_retry(const std::string& url, CURL* curl, int max_attempts, int retry_delay_seconds) { + int remaining_attempts = max_attempts; + + while (remaining_attempts > 0) { + LOG_INF("%s: Trying to download from %s (attempt %d of %d)...\n", __func__ , url.c_str(), max_attempts - remaining_attempts + 1, max_attempts); + + CURLcode res = curl_easy_perform(curl); + if (res == CURLE_OK) { + return true; + } + + int exponential_backoff_delay = std::pow(retry_delay_seconds, max_attempts - remaining_attempts) * 1000; + LOG_WRN("%s: curl_easy_perform() failed: %s, retrying after %d milliseconds...\n", __func__, curl_easy_strerror(res), exponential_backoff_delay); + + remaining_attempts--; + std::this_thread::sleep_for(std::chrono::milliseconds(exponential_backoff_delay)); + } + + LOG_ERR("%s: curl_easy_perform() failed after %d attempts\n", __func__, max_attempts); + + return false; +} + +static bool common_download_file(const std::string & url, const std::string & path, const std::string & hf_token) { + + // Initialize libcurl + std::unique_ptr curl(curl_easy_init(), &curl_easy_cleanup); + if (!curl) { + LOG_ERR("%s: error initializing libcurl\n", __func__); + return false; + } + + bool force_download = false; + + // Set the URL, allow to follow http redirection + curl_easy_setopt(curl.get(), CURLOPT_URL, url.c_str()); + curl_easy_setopt(curl.get(), CURLOPT_FOLLOWLOCATION, 1L); + + // Check if hf-token or bearer-token was specified + if (!hf_token.empty()) { + std::string auth_header = "Authorization: Bearer "; + auth_header += hf_token.c_str(); + struct curl_slist *http_headers = NULL; + http_headers = curl_slist_append(http_headers, auth_header.c_str()); + curl_easy_setopt(curl.get(), CURLOPT_HTTPHEADER, http_headers); + } + +#if defined(_WIN32) + // CURLSSLOPT_NATIVE_CA tells libcurl to use standard certificate store of + // operating system. Currently implemented under MS-Windows. + curl_easy_setopt(curl.get(), CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA); +#endif + + // Check if the file already exists locally + struct stat model_file_info; + auto file_exists = (stat(path.c_str(), &model_file_info) == 0); + + // If the file exists, check its JSON metadata companion file. + std::string metadata_path = path + ".json"; + nlohmann::json metadata; + std::string etag; + std::string last_modified; + + if (file_exists) { + // Try and read the JSON metadata file (note: stream autoclosed upon exiting this block). + std::ifstream metadata_in(metadata_path); + if (metadata_in.good()) { + try { + metadata_in >> metadata; + LOG_INF("%s: previous metadata file found %s: %s\n", __func__, metadata_path.c_str(), metadata.dump().c_str()); + if (metadata.contains("url") && metadata.at("url").is_string()) { + auto previous_url = metadata.at("url").get(); + if (previous_url != url) { + LOG_ERR("%s: Model URL mismatch: %s != %s\n", __func__, url.c_str(), previous_url.c_str()); + return false; + } + } + if (metadata.contains("etag") && metadata.at("etag").is_string()) { + etag = metadata.at("etag"); + } + if (metadata.contains("lastModified") && metadata.at("lastModified").is_string()) { + last_modified = metadata.at("lastModified"); + } + } catch (const nlohmann::json::exception & e) { + LOG_ERR("%s: error reading metadata file %s: %s\n", __func__, metadata_path.c_str(), e.what()); + return false; + } + } + } else { + LOG_INF("%s: no previous model file found %s\n", __func__, path.c_str()); + } + + // Send a HEAD request to retrieve the etag and last-modified headers + struct common_load_model_from_url_headers { + std::string etag; + std::string last_modified; + }; + common_load_model_from_url_headers headers; + { + typedef size_t(*CURLOPT_HEADERFUNCTION_PTR)(char *, size_t, size_t, void *); + auto header_callback = [](char * buffer, size_t /*size*/, size_t n_items, void * userdata) -> size_t { + common_load_model_from_url_headers *headers = (common_load_model_from_url_headers *) userdata; + + static std::regex header_regex("([^:]+): (.*)\r\n"); + static std::regex etag_regex("ETag", std::regex_constants::icase); + static std::regex last_modified_regex("Last-Modified", std::regex_constants::icase); + + std::string header(buffer, n_items); + std::smatch match; + if (std::regex_match(header, match, header_regex)) { + const std::string & key = match[1]; + const std::string & value = match[2]; + if (std::regex_match(key, match, etag_regex)) { + headers->etag = value; + } else if (std::regex_match(key, match, last_modified_regex)) { + headers->last_modified = value; + } + } + return n_items; + }; + + curl_easy_setopt(curl.get(), CURLOPT_NOBODY, 1L); // will trigger the HEAD verb + curl_easy_setopt(curl.get(), CURLOPT_NOPROGRESS, 1L); // hide head request progress + curl_easy_setopt(curl.get(), CURLOPT_HEADERFUNCTION, static_cast(header_callback)); + curl_easy_setopt(curl.get(), CURLOPT_HEADERDATA, &headers); + + bool was_perform_successful = curl_perform_with_retry(url, curl.get(), CURL_MAX_RETRY, CURL_RETRY_DELAY_SECONDS); + if (!was_perform_successful) { + return false; + } + + long http_code = 0; + curl_easy_getinfo(curl.get(), CURLINFO_RESPONSE_CODE, &http_code); + if (http_code != 200) { + // HEAD not supported, we don't know if the file has changed + // force trigger downloading + force_download = true; + LOG_ERR("%s: HEAD invalid http status code received: %ld\n", __func__, http_code); + } + } + + bool should_download = !file_exists || force_download; + if (!should_download) { + if (!etag.empty() && etag != headers.etag) { + LOG_WRN("%s: ETag header is different (%s != %s): triggering a new download\n", __func__, etag.c_str(), headers.etag.c_str()); + should_download = true; + } else if (!last_modified.empty() && last_modified != headers.last_modified) { + LOG_WRN("%s: Last-Modified header is different (%s != %s): triggering a new download\n", __func__, last_modified.c_str(), headers.last_modified.c_str()); + should_download = true; + } + } + if (should_download) { + std::string path_temporary = path + ".downloadInProgress"; + if (file_exists) { + LOG_WRN("%s: deleting previous downloaded file: %s\n", __func__, path.c_str()); + if (remove(path.c_str()) != 0) { + LOG_ERR("%s: unable to delete file: %s\n", __func__, path.c_str()); + return false; + } + } + + // Set the output file + + struct FILE_deleter { + void operator()(FILE * f) const { + fclose(f); + } + }; + + std::unique_ptr outfile(fopen(path_temporary.c_str(), "wb")); + if (!outfile) { + LOG_ERR("%s: error opening local file for writing: %s\n", __func__, path.c_str()); + return false; + } + + typedef size_t(*CURLOPT_WRITEFUNCTION_PTR)(void * data, size_t size, size_t nmemb, void * fd); + auto write_callback = [](void * data, size_t size, size_t nmemb, void * fd) -> size_t { + return fwrite(data, size, nmemb, (FILE *)fd); + }; + curl_easy_setopt(curl.get(), CURLOPT_NOBODY, 0L); + curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, static_cast(write_callback)); + curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, outfile.get()); + + // display download progress + curl_easy_setopt(curl.get(), CURLOPT_NOPROGRESS, 0L); + + // helper function to hide password in URL + auto llama_download_hide_password_in_url = [](const std::string & url) -> std::string { + std::size_t protocol_pos = url.find("://"); + if (protocol_pos == std::string::npos) { + return url; // Malformed URL + } + + std::size_t at_pos = url.find('@', protocol_pos + 3); + if (at_pos == std::string::npos) { + return url; // No password in URL + } + + return url.substr(0, protocol_pos + 3) + "********" + url.substr(at_pos); + }; + + // start the download + LOG_INF("%s: trying to download model from %s to %s (server_etag:%s, server_last_modified:%s)...\n", __func__, + llama_download_hide_password_in_url(url).c_str(), path.c_str(), headers.etag.c_str(), headers.last_modified.c_str()); + bool was_perform_successful = curl_perform_with_retry(url, curl.get(), CURL_MAX_RETRY, CURL_RETRY_DELAY_SECONDS); + if (!was_perform_successful) { + return false; + } + + long http_code = 0; + curl_easy_getinfo (curl.get(), CURLINFO_RESPONSE_CODE, &http_code); + if (http_code < 200 || http_code >= 400) { + LOG_ERR("%s: invalid http status code received: %ld\n", __func__, http_code); + return false; + } + + // Causes file to be closed explicitly here before we rename it. + outfile.reset(); + + // Write the updated JSON metadata file. + metadata.update({ + {"url", url}, + {"etag", headers.etag}, + {"lastModified", headers.last_modified} + }); + std::ofstream(metadata_path) << metadata.dump(4); + LOG_INF("%s: file metadata saved: %s\n", __func__, metadata_path.c_str()); + + if (rename(path_temporary.c_str(), path.c_str()) != 0) { + LOG_ERR("%s: unable to rename file: %s to %s\n", __func__, path_temporary.c_str(), path.c_str()); + return false; + } + } + + return true; +} + +struct llama_model * common_load_model_from_url( + const std::string & model_url, + const std::string & local_path, + const std::string & hf_token, + const struct llama_model_params & params) { + // Basic validation of the model_url + if (model_url.empty()) { + LOG_ERR("%s: invalid model_url\n", __func__); + return NULL; + } + + if (!common_download_file(model_url, local_path, hf_token)) { + return NULL; + } + + // check for additional GGUFs split to download + int n_split = 0; + { + struct gguf_init_params gguf_params = { + /*.no_alloc = */ true, + /*.ctx = */ NULL, + }; + auto * ctx_gguf = gguf_init_from_file(local_path.c_str(), gguf_params); + if (!ctx_gguf) { + LOG_ERR("\n%s: failed to load input GGUF from %s\n", __func__, local_path.c_str()); + return NULL; + } + + auto key_n_split = gguf_find_key(ctx_gguf, LLM_KV_SPLIT_COUNT); + if (key_n_split >= 0) { + n_split = gguf_get_val_u16(ctx_gguf, key_n_split); + } + + gguf_free(ctx_gguf); + } + + if (n_split > 1) { + char split_prefix[PATH_MAX] = {0}; + char split_url_prefix[LLAMA_CURL_MAX_URL_LENGTH] = {0}; + + // Verify the first split file format + // and extract split URL and PATH prefixes + { + if (!llama_split_prefix(split_prefix, sizeof(split_prefix), local_path.c_str(), 0, n_split)) { + LOG_ERR("\n%s: unexpected model file name: %s n_split=%d\n", __func__, local_path.c_str(), n_split); + return NULL; + } + + if (!llama_split_prefix(split_url_prefix, sizeof(split_url_prefix), model_url.c_str(), 0, n_split)) { + LOG_ERR("\n%s: unexpected model url: %s n_split=%d\n", __func__, model_url.c_str(), n_split); + return NULL; + } + } + + // Prepare download in parallel + std::vector> futures_download; + for (int idx = 1; idx < n_split; idx++) { + futures_download.push_back(std::async(std::launch::async, [&split_prefix, &split_url_prefix, &n_split, hf_token](int download_idx) -> bool { + char split_path[PATH_MAX] = {0}; + llama_split_path(split_path, sizeof(split_path), split_prefix, download_idx, n_split); + + char split_url[LLAMA_CURL_MAX_URL_LENGTH] = {0}; + llama_split_path(split_url, sizeof(split_url), split_url_prefix, download_idx, n_split); + + return common_download_file(split_url, split_path, hf_token); + }, idx)); + } + + // Wait for all downloads to complete + for (auto & f : futures_download) { + if (!f.get()) { + return NULL; + } + } + } + + return llama_load_model_from_file(local_path.c_str(), params); +} + +struct llama_model * common_load_model_from_hf( + const std::string & repo, + const std::string & remote_path, + const std::string & local_path, + const std::string & hf_token, + const struct llama_model_params & params) { + // construct hugging face model url: + // + // --repo ggml-org/models --file tinyllama-1.1b/ggml-model-f16.gguf + // https://huggingface.co/ggml-org/models/resolve/main/tinyllama-1.1b/ggml-model-f16.gguf + // + // --repo TheBloke/Mixtral-8x7B-v0.1-GGUF --file mixtral-8x7b-v0.1.Q4_K_M.gguf + // https://huggingface.co/TheBloke/Mixtral-8x7B-v0.1-GGUF/resolve/main/mixtral-8x7b-v0.1.Q4_K_M.gguf + // + + std::string model_url = "https://huggingface.co/"; + model_url += repo; + model_url += "/resolve/main/"; + model_url += remote_path; + + return common_load_model_from_url(model_url, local_path, hf_token, params); +} + +#else + +struct llama_model * common_load_model_from_url( + const std::string & /*model_url*/, + const std::string & /*local_path*/, + const std::string & /*hf_token*/, + const struct llama_model_params & /*params*/) { + LOG_WRN("%s: llama.cpp built without libcurl, downloading from an url not supported.\n", __func__); + return nullptr; +} + +struct llama_model * common_load_model_from_hf( + const std::string & /*repo*/, + const std::string & /*remote_path*/, + const std::string & /*local_path*/, + const std::string & /*hf_token*/, + const struct llama_model_params & /*params*/) { + LOG_WRN("%s: llama.cpp built without libcurl, downloading from Hugging Face not supported.\n", __func__); + return nullptr; +} + +#endif // LLAMA_USE_CURL + +// +// Batch utils +// + +void common_batch_clear(struct llama_batch & batch) { + batch.n_tokens = 0; +} + +void common_batch_add( + struct llama_batch & batch, + llama_token id, + llama_pos pos, + const std::vector & seq_ids, + bool logits) { + GGML_ASSERT(batch.seq_id[batch.n_tokens] && "llama_batch size exceeded"); + + batch.token [batch.n_tokens] = id; + batch.pos [batch.n_tokens] = pos; + batch.n_seq_id[batch.n_tokens] = seq_ids.size(); + for (size_t i = 0; i < seq_ids.size(); ++i) { + batch.seq_id[batch.n_tokens][i] = seq_ids[i]; + } + batch.logits [batch.n_tokens] = logits; + + batch.n_tokens++; +} + +// +// Token utils +// + +size_t common_lcp(const llama_tokens & a, const llama_tokens & b) { + size_t i; + for (i = 0; i < a.size() && i < b.size() && a[i] == b[i]; i++) {} + + return i; +} + +size_t common_lcs(const llama_tokens & a, const llama_tokens & b) { + // check for empty sequences + if (a.empty() || b.empty()) { + return 0; + } + + // get the lengths of the input sequences + size_t a_len = a.size(); + size_t b_len = b.size(); + + // initialize the maximum length of the longest common subsequence (LCS) + size_t max_length = 0; + + // use two rows instead of a 2D matrix to optimize space + std::vector prev_row(b_len + 1, 0); + std::vector curr_row(b_len + 1, 0); + + // iterate through the elements of a + for (size_t i = 1; i <= a_len; i++) { + // iterate through the elements of b + for (size_t j = 1; j <= b_len; j++) { + // if elements at the current positions match + if (a[i - 1] == b[j - 1]) { + // if it's the first element of either sequences, set LCS length to 1 + if (i == 1 || j == 1) { + curr_row[j] = 1; + } else { + // increment LCS length by 1 compared to the previous element + curr_row[j] = prev_row[j - 1] + 1; + } + + // update max_length if necessary + if (curr_row[j] > max_length) { + max_length = curr_row[j]; + } + } else { + // reset LCS length if elements don't match + curr_row[j] = 0; + } + } + + // update the previous row for the next iteration + prev_row = curr_row; + } + + // return the maximum length of the LCS + return max_length; +} + +// +// Vocab utils +// + +std::vector common_tokenize( + const struct llama_context * ctx, + const std::string & text, + bool add_special, + bool parse_special) { + return common_tokenize(llama_get_model(ctx), text, add_special, parse_special); +} + +std::vector common_tokenize( + const struct llama_model * model, + const std::string & text, + bool add_special, + bool parse_special) { + // upper limit for the number of tokens + int n_tokens = text.length() + 2 * add_special; + std::vector result(n_tokens); + n_tokens = llama_tokenize(model, text.data(), text.length(), result.data(), result.size(), add_special, parse_special); + if (n_tokens < 0) { + result.resize(-n_tokens); + int check = llama_tokenize(model, text.data(), text.length(), result.data(), result.size(), add_special, parse_special); + GGML_ASSERT(check == -n_tokens); + } else { + result.resize(n_tokens); + } + return result; +} + +std::string common_token_to_piece(const struct llama_context * ctx, llama_token token, bool special) { + std::string piece; + piece.resize(piece.capacity()); // using string internal cache, 15 bytes + '\n' + const int n_chars = llama_token_to_piece(llama_get_model(ctx), token, &piece[0], piece.size(), 0, special); + if (n_chars < 0) { + piece.resize(-n_chars); + int check = llama_token_to_piece(llama_get_model(ctx), token, &piece[0], piece.size(), 0, special); + GGML_ASSERT(check == -n_chars); + } + else { + piece.resize(n_chars); + } + + return piece; +} + +std::string common_detokenize(llama_context * ctx, const std::vector & tokens, bool special) { + std::string text; + text.resize(std::max(text.capacity(), tokens.size())); + int32_t n_chars = llama_detokenize(llama_get_model(ctx), tokens.data(), (int32_t)tokens.size(), &text[0], (int32_t)text.size(), false, special); + if (n_chars < 0) { + text.resize(-n_chars); + n_chars = llama_detokenize(llama_get_model(ctx), tokens.data(), (int32_t)tokens.size(), &text[0], (int32_t)text.size(), false, special); + GGML_ASSERT(n_chars <= (int32_t)text.size()); // whitespace trimming is performed after per-token detokenization + } + + text.resize(n_chars); + + // NOTE: the original tokenizer decodes bytes after collecting the pieces. + return text; +} + +// +// Chat template utils +// + +bool common_chat_verify_template(const std::string & tmpl) { + llama_chat_message chat[] = {{"user", "test"}}; + int res = llama_chat_apply_template(nullptr, tmpl.c_str(), chat, 1, true, nullptr, 0); + return res >= 0; +} + +std::string common_chat_apply_template(const struct llama_model * model, + const std::string & tmpl, + const std::vector & msgs, + bool add_ass) { + int alloc_size = 0; + bool fallback = false; // indicate if we must fallback to default chatml + std::vector chat; + for (auto & msg : msgs) { + chat.push_back({msg.role.c_str(), msg.content.c_str()}); + alloc_size += (msg.role.size() + msg.content.size()) * 1.25; + } + + const char * ptr_tmpl = tmpl.empty() ? nullptr : tmpl.c_str(); + std::vector buf(alloc_size); + + // run the first time to get the total output length + int32_t res = llama_chat_apply_template(model, ptr_tmpl, chat.data(), chat.size(), add_ass, buf.data(), buf.size()); + + // error: chat template is not supported + if (res < 0) { + if (ptr_tmpl != nullptr) { + // if the custom "tmpl" is not supported, we throw an error + // this is a bit redundant (for good), since we're not sure if user validated the custom template with llama_chat_verify_template() + throw std::runtime_error("this custom template is not supported"); + } else { + // If the built-in template is not supported, we default to chatml + res = llama_chat_apply_template(nullptr, "chatml", chat.data(), chat.size(), add_ass, buf.data(), buf.size()); + fallback = true; + } + } + + // if it turns out that our buffer is too small, we resize it + if ((size_t) res > buf.size()) { + buf.resize(res); + res = llama_chat_apply_template( + fallback ? nullptr : model, + fallback ? "chatml" : ptr_tmpl, + chat.data(), chat.size(), add_ass, buf.data(), buf.size()); + } + + std::string formatted_chat(buf.data(), res); + return formatted_chat; +} + +std::string common_chat_format_single(const struct llama_model * model, + const std::string & tmpl, + const std::vector & past_msg, + const common_chat_msg & new_msg, + bool add_ass) { + std::ostringstream ss; + auto fmt_past_msg = past_msg.empty() ? "" : common_chat_apply_template(model, tmpl, past_msg, false); + std::vector chat_new(past_msg); + // if the past_msg ends with a newline, we must preserve it in the formatted version + if (add_ass && !fmt_past_msg.empty() && fmt_past_msg.back() == '\n') { + ss << "\n"; + }; + // format chat with new_msg + chat_new.push_back(new_msg); + auto fmt_new_msg = common_chat_apply_template(model, tmpl, chat_new, add_ass); + // get the diff part + ss << fmt_new_msg.substr(fmt_past_msg.size(), fmt_new_msg.size() - fmt_past_msg.size()); + return ss.str(); +} + +std::string common_chat_format_example(const struct llama_model * model, + const std::string & tmpl) { + std::vector msgs = { + {"system", "You are a helpful assistant"}, + {"user", "Hello"}, + {"assistant", "Hi there"}, + {"user", "How are you?"}, + }; + return common_chat_apply_template(model, tmpl, msgs, true); +} + +// +// KV cache utils +// + +void common_kv_cache_dump_view(const llama_kv_cache_view & view, int row_size) { + static const char slot_chars[] = ".123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+"; + + printf("=== Dumping KV cache. total cells %d, max sequences per cell %d, populated cells %d, total tokens in cache %d, largest empty slot=%d @ %d", + view.n_cells, view.n_seq_max, view.used_cells, view.token_count, view.max_contiguous, view.max_contiguous_idx); + + llama_kv_cache_view_cell * c_curr = view.cells; + llama_seq_id * cs_curr = view.cells_sequences; + + for (int i = 0; i < view.n_cells; i++, c_curr++, cs_curr += view.n_seq_max) { + if (i % row_size == 0) { + printf("\n%5d: ", i); + } + int seq_count = 0; + for (int j = 0; j < view.n_seq_max; j++) { + if (cs_curr[j] >= 0) { seq_count++; } + } + putchar(slot_chars[std::min(sizeof(slot_chars) - 2, size_t(seq_count))]); + } + + printf("\n=== Done dumping\n"); +} + +void common_kv_cache_dump_view_seqs(const llama_kv_cache_view & view, int row_size) { + static const char slot_chars[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + + printf("=== Dumping KV cache. total cells %d, max sequences per cell %d, populated cells %d, total tokens in cache %d, largest empty slot=%d @ %d\n", + view.n_cells, view.n_seq_max, view.used_cells, view.token_count, view.max_contiguous, view.max_contiguous_idx); + + std::unordered_map seqs; + llama_kv_cache_view_cell * c_curr = view.cells; + llama_seq_id * cs_curr = view.cells_sequences; + + for (int i = 0; i < view.n_cells; i++, c_curr++, cs_curr += view.n_seq_max) { + for (int j = 0; j < view.n_seq_max; j++) { + if (cs_curr[j] < 0) { continue; } + if (seqs.find(cs_curr[j]) == seqs.end()) { + if (seqs.size() + 1 >= sizeof(slot_chars)) { break; } + const size_t sz = seqs.size(); + seqs[cs_curr[j]] = sz; + } + } + if (seqs.size() + 1 >= sizeof(slot_chars)) { break; } + } + + printf("=== Sequence legend: "); + for (const auto & it : seqs) { + printf("%zu=%d, ", it.second, it.first); + } + printf("'+'=other sequence ids"); + + c_curr = view.cells; + cs_curr = view.cells_sequences; + for (int i = 0; i < view.n_cells; i++, c_curr++, cs_curr += view.n_seq_max) { + if (i % row_size == 0) { + printf("\n%5d: ", i); + } + for (int j = 0; j < view.n_seq_max; j++) { + if (cs_curr[j] >= 0) { + const auto & it = seqs.find(cs_curr[j]); + putchar(it != seqs.end() ? int(slot_chars[it->second]) : '+'); + } else { + putchar('.'); + } + } + putchar(' '); + } + + printf("\n=== Done dumping\n"); +} + +// +// Embedding utils +// + +void common_embd_normalize(const float * inp, float * out, int n, int embd_norm) { + double sum = 0.0; + + switch (embd_norm) { + case -1: // no normalisation + sum = 1.0; + break; + case 0: // max absolute + for (int i = 0; i < n; i++) { + if (sum < std::abs(inp[i])) sum = std::abs(inp[i]); + } + sum /= 32760.0; // make an int16 range + break; + case 2: // euclidean + for (int i = 0; i < n; i++) { + sum += inp[i] * inp[i]; + } + sum = std::sqrt(sum); + break; + default: // p-norm (euclidean is p-norm p=2) + for (int i = 0; i < n; i++) { + sum += std::pow(std::abs(inp[i]), embd_norm); + } + sum = std::pow(sum, 1.0 / embd_norm); + break; + } + + const float norm = sum > 0.0 ? 1.0 / sum : 0.0f; + + for (int i = 0; i < n; i++) { + out[i] = inp[i] * norm; + } +} + +float common_embd_similarity_cos(const float * embd1, const float * embd2, int n){ + double sum = 0.0; + double sum1 = 0.0; + double sum2 = 0.0; + + for (int i = 0; i < n; i++) { + sum += embd1[i] * embd2[i]; + sum1 += embd1[i] * embd1[i]; + sum2 += embd2[i] * embd2[i]; + } + + // Handle the case where one or both vectors are zero vectors + if (sum1 == 0.0 || sum2 == 0.0) { + if (sum1 == 0.0 && sum2 == 0.0) { + return 1.0f; // two zero vectors are similar + } + return 0.0f; + } + + return sum / (sqrt(sum1) * sqrt(sum2)); +} + +// +// Control vector utils +// + +static common_control_vector_data common_control_vector_load_one(const common_control_vector_load_info & load_info) { + common_control_vector_data result = { -1, {} }; + + ggml_context * ctx = nullptr; + struct gguf_init_params meta_gguf_params = { + /* .no_alloc = */ false, + /* .ctx = */ &ctx, + }; + struct gguf_context * ctx_gguf = gguf_init_from_file(load_info.fname.c_str(), meta_gguf_params); + if (!ctx_gguf) { + LOG_ERR("%s: failed to load control vector file from %s\n", __func__, load_info.fname.c_str()); + return result; + } + + int32_t n_tensors = gguf_get_n_tensors(ctx_gguf); + if (n_tensors == 0) { + LOG_WRN("%s: no direction tensors found in %s\n", __func__, load_info.fname.c_str()); + } + + for (int i = 0; i < n_tensors; i++) { + std::string name = gguf_get_tensor_name(ctx_gguf, i); + + int layer_idx = -1; + + // split on '.' + size_t dotpos = name.find('.'); + if (dotpos != std::string::npos && name.substr(0, dotpos) == "direction") { + try { + layer_idx = std::stoi(name.substr(dotpos + 1)); + } catch (...) { + layer_idx = -1; + } + } + if (layer_idx < 0) { + LOG_ERR("%s: invalid/unparsable direction tensor layer index in %s\n", __func__, load_info.fname.c_str()); + result.n_embd = -1; + break; + } else if (layer_idx == 0) { + LOG_ERR("%s: invalid (zero) direction tensor layer index in %s\n", __func__, load_info.fname.c_str()); + result.n_embd = -1; + break; + } + + struct ggml_tensor * tensor = ggml_get_tensor(ctx, name.c_str()); + if (tensor->type != GGML_TYPE_F32) { + LOG_ERR("%s: invalid (non-F32) direction tensor type in %s\n", __func__, load_info.fname.c_str()); + result.n_embd = -1; + break; + } + if (ggml_n_dims(tensor) != 1) { + LOG_ERR("%s: invalid (non-1D) direction tensor shape in %s\n", __func__, load_info.fname.c_str()); + result.n_embd = -1; + break; + } + + if (result.n_embd == -1) { + result.n_embd = ggml_nelements(tensor); + } else if (ggml_nelements(tensor) != result.n_embd) { + LOG_ERR("%s: direction tensor in %s does not match previous dimensions\n", __func__, load_info.fname.c_str()); + result.n_embd = -1; + break; + } + + // extend if necessary - do not store data for layer 0 (it's not used) + result.data.resize(std::max(result.data.size(), static_cast(result.n_embd * layer_idx)), 0.0f); + + const float * src = (const float *) tensor->data; + float * dst = result.data.data() + result.n_embd * (layer_idx - 1); // layer 1 at [0] + for (int j = 0; j < result.n_embd; j++) { + dst[j] += src[j] * load_info.strength; // allows multiple directions for same layer in same file + } + + } + + if (result.n_embd == -1) { + LOG_WRN("%s: skipping %s due to invalid direction tensors\n", __func__, load_info.fname.c_str()); + result.data.clear(); + } + + gguf_free(ctx_gguf); + ggml_free(ctx); + + return result; +} + +common_control_vector_data common_control_vector_load(const std::vector & load_infos) { + common_control_vector_data result = { -1, {} }; + + for (const auto & info : load_infos) { + auto cur = common_control_vector_load_one(info); + + if (cur.n_embd == -1) { + result.n_embd = -1; + break; + } + if (result.n_embd != -1 && result.n_embd != cur.n_embd) { + LOG_ERR("%s: control vectors in %s does not match previous dimensions\n", __func__, info.fname.c_str()); + result.n_embd = -1; + break; + } + + if (result.n_embd == -1) { + result = std::move(cur); + } else { + result.data.resize(std::max(result.data.size(), cur.data.size()), 0.0f); // extend if necessary + for (size_t i = 0; i < cur.data.size(); i++) { + result.data[i] += cur.data[i]; + } + } + } + + if (result.n_embd == -1) { + LOG_ERR("%s: no valid control vector files passed\n", __func__); + result.data.clear(); + } + + return result; +} + diff --git a/llama.cpp/common/common.h b/llama.cpp/common/common.h new file mode 100644 index 0000000000000000000000000000000000000000..0373fd3ead49ee60a3fb6b01f1e963283861a860 --- /dev/null +++ b/llama.cpp/common/common.h @@ -0,0 +1,622 @@ +// Various helper functions and utilities + +#pragma once + +#include "llama.h" + +#include +#include +#include + +#ifdef _WIN32 +#define DIRECTORY_SEPARATOR '\\' +#else +#define DIRECTORY_SEPARATOR '/' +#endif // _WIN32 + +#define die(msg) do { fputs("error: " msg "\n", stderr); exit(1); } while (0) +#define die_fmt(fmt, ...) do { fprintf(stderr, "error: " fmt "\n", __VA_ARGS__); exit(1); } while (0) + +#define print_build_info() do { \ + fprintf(stderr, "%s: build = %d (%s)\n", __func__, LLAMA_BUILD_NUMBER, LLAMA_COMMIT); \ + fprintf(stderr, "%s: built with %s for %s\n", __func__, LLAMA_COMPILER, LLAMA_BUILD_TARGET); \ +} while(0) + +#define DEFAULT_MODEL_PATH "models/7B/ggml-model-f16.gguf" + +struct common_lora_adapter_info { + std::string path; + float scale; +}; + +struct common_lora_adapter_container : common_lora_adapter_info { + struct llama_lora_adapter * adapter; +}; + +using llama_tokens = std::vector; + +// build info +extern int LLAMA_BUILD_NUMBER; +extern char const * LLAMA_COMMIT; +extern char const * LLAMA_COMPILER; +extern char const * LLAMA_BUILD_TARGET; + +struct common_control_vector_load_info; + +// +// CPU utils +// + +struct cpu_params { + int n_threads = -1; + bool cpumask[GGML_MAX_N_THREADS] = {false}; // CPU affinity mask. + bool mask_valid = false; // Default: any CPU + enum ggml_sched_priority priority = GGML_SCHED_PRIO_NORMAL; // Scheduling prio : (0 - normal, 1 - medium, 2 - high, 3 - realtime) + bool strict_cpu = false; // Use strict CPU placement + uint32_t poll = 50; // Polling (busywait) level (0 - no polling, 100 - mostly polling) +}; + +int32_t cpu_get_num_physical_cores(); +int32_t cpu_get_num_math(); + +// +// Common params +// + +enum llama_example { + LLAMA_EXAMPLE_COMMON, + LLAMA_EXAMPLE_SPECULATIVE, + LLAMA_EXAMPLE_MAIN, + LLAMA_EXAMPLE_INFILL, + LLAMA_EXAMPLE_EMBEDDING, + LLAMA_EXAMPLE_PERPLEXITY, + LLAMA_EXAMPLE_RETRIEVAL, + LLAMA_EXAMPLE_PASSKEY, + LLAMA_EXAMPLE_IMATRIX, + LLAMA_EXAMPLE_BENCH, + LLAMA_EXAMPLE_SERVER, + LLAMA_EXAMPLE_CVECTOR_GENERATOR, + LLAMA_EXAMPLE_EXPORT_LORA, + LLAMA_EXAMPLE_LLAVA, + LLAMA_EXAMPLE_LOOKUP, + LLAMA_EXAMPLE_PARALLEL, + + LLAMA_EXAMPLE_COUNT, +}; + +enum common_sampler_type { + COMMON_SAMPLER_TYPE_NONE = 0, + COMMON_SAMPLER_TYPE_DRY = 1, + COMMON_SAMPLER_TYPE_TOP_K = 2, + COMMON_SAMPLER_TYPE_TOP_P = 3, + COMMON_SAMPLER_TYPE_MIN_P = 4, + //COMMON_SAMPLER_TYPE_TFS_Z = 5, + COMMON_SAMPLER_TYPE_TYPICAL_P = 6, + COMMON_SAMPLER_TYPE_TEMPERATURE = 7, + COMMON_SAMPLER_TYPE_XTC = 8, + COMMON_SAMPLER_TYPE_INFILL = 9, +}; + +// dimensionality reduction methods, used by cvector-generator +enum dimre_method { + DIMRE_METHOD_PCA, + DIMRE_METHOD_MEAN, +}; + +// sampling parameters +struct common_params_sampling { + uint32_t seed = LLAMA_DEFAULT_SEED; // the seed used to initialize llama_sampler + + int32_t n_prev = 64; // number of previous tokens to remember + int32_t n_probs = 0; // if greater than 0, output the probabilities of top n_probs tokens. + int32_t min_keep = 0; // 0 = disabled, otherwise samplers should return at least min_keep tokens + int32_t top_k = 40; // <= 0 to use vocab size + float top_p = 0.95f; // 1.0 = disabled + float min_p = 0.05f; // 0.0 = disabled + float xtc_probability = 0.00f; // 0.0 = disabled + float xtc_threshold = 0.10f; // > 0.5 disables XTC + float typ_p = 1.00f; // typical_p, 1.0 = disabled + float temp = 0.80f; // <= 0.0 to sample greedily, 0.0 to not output probabilities + float dynatemp_range = 0.00f; // 0.0 = disabled + float dynatemp_exponent = 1.00f; // controls how entropy maps to temperature in dynamic temperature sampler + int32_t penalty_last_n = 64; // last n tokens to penalize (0 = disable penalty, -1 = context size) + float penalty_repeat = 1.00f; // 1.0 = disabled + float penalty_freq = 0.00f; // 0.0 = disabled + float penalty_present = 0.00f; // 0.0 = disabled + float dry_multiplier = 0.0f; // 0.0 = disabled; DRY repetition penalty for tokens extending repetition: + float dry_base = 1.75f; // 0.0 = disabled; multiplier * base ^ (length of sequence before token - allowed length) + int32_t dry_allowed_length = 2; // tokens extending repetitions beyond this receive penalty + int32_t dry_penalty_last_n = -1; // how many tokens to scan for repetitions (0 = disable penalty, -1 = context size) + int32_t mirostat = 0; // 0 = disabled, 1 = mirostat, 2 = mirostat 2.0 + float mirostat_tau = 5.00f; // target entropy + float mirostat_eta = 0.10f; // learning rate + bool penalize_nl = false; // consider newlines as a repeatable token + bool ignore_eos = false; + bool no_perf = false; // disable performance metrics + bool timing_per_token = false; + + std::vector dry_sequence_breakers = {"\n", ":", "\"", "*"}; // default sequence breakers for DRY + + + std::vector samplers = { + COMMON_SAMPLER_TYPE_DRY, + COMMON_SAMPLER_TYPE_TOP_K, + COMMON_SAMPLER_TYPE_TYPICAL_P, + COMMON_SAMPLER_TYPE_TOP_P, + COMMON_SAMPLER_TYPE_MIN_P, + COMMON_SAMPLER_TYPE_XTC, + COMMON_SAMPLER_TYPE_TEMPERATURE, + }; + + std::string grammar; // optional BNF-like grammar to constrain sampling + + std::vector logit_bias; // logit biases to apply + + // print the parameters into a string + std::string print() const; +}; + +struct common_params_speculative { + std::vector devices; // devices to use for offloading + int32_t n_ctx = 0; // draft context size + int32_t n_max = 16; // maximum number of tokens to draft during speculative decoding + int32_t n_min = 5; // minimum number of draft tokens to use for speculative decoding + int32_t n_gpu_layers = -1; // number of layers to store in VRAM for the draft model (-1 - use default) + float p_split = 0.1f; // speculative decoding split probability + float p_min = 0.9f; // minimum speculative decoding probability (greedy) + + struct cpu_params cpuparams; + struct cpu_params cpuparams_batch; + + std::string model = ""; // draft model for speculative decoding // NOLINT +}; + +struct common_params { + int32_t n_predict = -1; // new tokens to predict + int32_t n_ctx = 4096; // context size + int32_t n_batch = 2048; // logical batch size for prompt processing (must be >=32 to use BLAS) + int32_t n_ubatch = 512; // physical batch size for prompt processing (must be >=32 to use BLAS) + int32_t n_keep = 0; // number of tokens to keep from initial prompt + int32_t n_chunks = -1; // max number of chunks to process (-1 = unlimited) + int32_t n_parallel = 1; // number of parallel sequences to decode + int32_t n_sequences = 1; // number of sequences to decode + int32_t grp_attn_n = 1; // group-attention factor + int32_t grp_attn_w = 512; // group-attention width + int32_t n_print = -1; // print token count every n tokens (-1 = disabled) + float rope_freq_base = 0.0f; // RoPE base frequency + float rope_freq_scale = 0.0f; // RoPE frequency scaling factor + float yarn_ext_factor = -1.0f; // YaRN extrapolation mix factor + float yarn_attn_factor = 1.0f; // YaRN magnitude scaling factor + float yarn_beta_fast = 32.0f; // YaRN low correction dim + float yarn_beta_slow = 1.0f; // YaRN high correction dim + int32_t yarn_orig_ctx = 0; // YaRN original context length + float defrag_thold = 0.1f; // KV cache defragmentation threshold + + // offload params + std::vector devices; // devices to use for offloading + int32_t n_gpu_layers = -1; // number of layers to store in VRAM (-1 - use default) + int32_t main_gpu = 0; // the GPU that is used for scratch and small tensors + float tensor_split[128] = {0}; // how split tensors should be distributed across GPUs + enum llama_split_mode split_mode = LLAMA_SPLIT_MODE_LAYER; // how to split the model across GPUs + + struct cpu_params cpuparams; + struct cpu_params cpuparams_batch; + + ggml_backend_sched_eval_callback cb_eval = nullptr; + void * cb_eval_user_data = nullptr; + + ggml_numa_strategy numa = GGML_NUMA_STRATEGY_DISABLED; + + enum llama_rope_scaling_type rope_scaling_type = LLAMA_ROPE_SCALING_TYPE_UNSPECIFIED; + enum llama_pooling_type pooling_type = LLAMA_POOLING_TYPE_UNSPECIFIED; // pooling type for embeddings + enum llama_attention_type attention_type = LLAMA_ATTENTION_TYPE_UNSPECIFIED; // attention type for embeddings + + struct common_params_sampling sampling; + struct common_params_speculative speculative; + + std::string model = ""; // model path // NOLINT + std::string model_alias = "unknown"; // model alias // NOLINT + std::string model_url = ""; // model url to download // NOLINT + std::string hf_token = ""; // HF token // NOLINT + std::string hf_repo = ""; // HF repo // NOLINT + std::string hf_file = ""; // HF file // NOLINT + std::string prompt = ""; // NOLINT + std::string prompt_file = ""; // store the external prompt file name // NOLINT + std::string path_prompt_cache = ""; // path to file for saving/loading prompt eval state // NOLINT + std::string input_prefix = ""; // string to prefix user inputs with // NOLINT + std::string input_suffix = ""; // string to suffix user inputs with // NOLINT + std::string lookup_cache_static = ""; // path of static ngram cache file for lookup decoding // NOLINT + std::string lookup_cache_dynamic = ""; // path of dynamic ngram cache file for lookup decoding // NOLINT + std::string logits_file = ""; // file for saving *all* logits // NOLINT + std::string rpc_servers = ""; // comma separated list of RPC servers // NOLINT + + std::vector in_files; // all input files + std::vector antiprompt; // strings upon which more user input is prompted (a.k.a. reverse prompts) + std::vector kv_overrides; + + bool lora_init_without_apply = false; // only load lora to memory, but do not apply it to ctx (user can manually apply lora later using llama_lora_adapter_apply) + std::vector lora_adapters; // lora adapter path with user defined scale + + std::vector control_vectors; // control vector with user defined scale + + int32_t verbosity = 0; + int32_t control_vector_layer_start = -1; // layer range for control vector + int32_t control_vector_layer_end = -1; // layer range for control vector + + int32_t ppl_stride = 0; // stride for perplexity calculations. If left at 0, the pre-existing approach will be used. + int32_t ppl_output_type = 0; // = 0 -> ppl output is as usual, = 1 -> ppl output is num_tokens, ppl, one per line + // (which is more convenient to use for plotting) + // + bool hellaswag = false; // compute HellaSwag score over random tasks from datafile supplied in prompt + size_t hellaswag_tasks = 400; // number of tasks to use when computing the HellaSwag score + + bool winogrande = false; // compute Winogrande score over random tasks from datafile supplied in prompt + size_t winogrande_tasks = 0; // number of tasks to use when computing the Winogrande score. If 0, all tasks will be computed + + bool multiple_choice = false; // compute TruthfulQA score over random tasks from datafile supplied in prompt + size_t multiple_choice_tasks = 0; // number of tasks to use when computing the TruthfulQA score. If 0, all tasks will be computed + + bool kl_divergence = false; // compute KL divergence + + bool usage = false; // print usage + bool use_color = false; // use color to distinguish generations and inputs + bool special = false; // enable special token output + bool interactive = false; // interactive mode + bool interactive_first = false; // wait for user input immediately + bool conversation = false; // conversation mode (does not print special tokens and suffix/prefix) + bool prompt_cache_all = false; // save user input and generations to prompt cache + bool prompt_cache_ro = false; // open the prompt cache read-only and do not update it + + bool escape = true; // escape "\n", "\r", "\t", "\'", "\"", and "\\" + bool multiline_input = false; // reverse the usage of `\` + bool simple_io = false; // improves compatibility with subprocesses and limited consoles + bool cont_batching = true; // insert new sequences for decoding on-the-fly + bool flash_attn = false; // flash attention + bool no_perf = false; // disable performance metrics + bool ctx_shift = true; // context shift on inifinite text generation + + bool input_prefix_bos = false; // prefix BOS to user inputs, preceding input_prefix + bool logits_all = false; // return logits for all tokens in the batch + bool use_mmap = true; // use mmap for faster loads + bool use_mlock = false; // use mlock to keep model in memory + bool verbose_prompt = false; // print prompt tokens before generation + bool display_prompt = true; // print prompt before generation + bool dump_kv_cache = false; // dump the KV cache contents for debugging purposes + bool no_kv_offload = false; // disable KV offloading + bool warmup = true; // warmup run + bool check_tensors = false; // validate tensor data + + std::string cache_type_k = "f16"; // KV cache data type for the K + std::string cache_type_v = "f16"; // KV cache data type for the V + + // multimodal models (see examples/llava) + std::string mmproj = ""; // path to multimodal projector // NOLINT + std::vector image; // path to image file(s) + + // embedding + bool embedding = false; // get only sentence embedding + int32_t embd_normalize = 2; // normalisation for embeddings (-1=none, 0=max absolute int16, 1=taxicab, 2=euclidean, >2=p-norm) + std::string embd_out = ""; // empty = default, "array" = [[],[]...], "json" = openai style, "json+" = same "json" + cosine similarity matrix + std::string embd_sep = "\n"; // separator of embeddings + bool reranking = false; // enable reranking support on server + + // server params + int32_t port = 8080; // server listens on this network port + int32_t timeout_read = 600; // http read timeout in seconds + int32_t timeout_write = timeout_read; // http write timeout in seconds + int32_t n_threads_http = -1; // number of threads to process HTTP requests (TODO: support threadpool) + int32_t n_cache_reuse = 0; // min chunk size to reuse from the cache via KV shifting + + std::string hostname = "127.0.0.1"; + std::string public_path = ""; // NOLINT + std::string chat_template = ""; // NOLINT + bool enable_chat_template = true; + + std::vector api_keys; + + std::string ssl_file_key = ""; // NOLINT + std::string ssl_file_cert = ""; // NOLINT + + // "advanced" endpoints are disabled by default for better security + bool webui = true; + bool endpoint_slots = false; + bool endpoint_props = false; // only control POST requests, not GET + bool endpoint_metrics = false; + + bool log_json = false; + + std::string slot_save_path; + + float slot_prompt_similarity = 0.5f; + + // batched-bench params + bool is_pp_shared = false; + + std::vector n_pp; + std::vector n_tg; + std::vector n_pl; + + // retrieval params + std::vector context_files; // context files to embed + + int32_t chunk_size = 64; // chunk size for context embedding + + std::string chunk_separator = "\n"; // chunk separator for context embedding + + // passkey params + int32_t n_junk = 250; // number of times to repeat the junk text + int32_t i_pos = -1; // position of the passkey in the junk text + + // imatrix params + std::string out_file = "imatrix.dat"; // save the resulting imatrix to this file + + int32_t n_out_freq = 10; // output the imatrix every n_out_freq iterations + int32_t n_save_freq = 0; // save the imatrix every n_save_freq iterations + int32_t i_chunk = 0; // start processing from this chunk + + bool process_output = false; // collect data for the output tensor + bool compute_ppl = true; // whether to compute perplexity + + // cvector-generator params + int n_pca_batch = 100; + int n_pca_iterations = 1000; + dimre_method cvector_dimre_method = DIMRE_METHOD_PCA; + std::string cvector_outfile = "control_vector.gguf"; + std::string cvector_positive_file = "examples/cvector-generator/positive.txt"; + std::string cvector_negative_file = "examples/cvector-generator/negative.txt"; + + bool spm_infill = false; // suffix/prefix/middle pattern for infill + + std::string lora_outfile = "ggml-lora-merged-f16.gguf"; + + // batched-bench params + bool batched_bench_output_jsonl = false; +}; + +// call once at the start of a program if it uses libcommon +// initializes the logging system and prints info about the build +void common_init(); + +std::string common_params_get_system_info(const common_params & params); + +bool parse_cpu_range(const std::string & range, bool(&boolmask)[GGML_MAX_N_THREADS]); +bool parse_cpu_mask(const std::string & mask, bool(&boolmask)[GGML_MAX_N_THREADS]); +void postprocess_cpu_params(cpu_params & cpuparams, const cpu_params * role_model = nullptr); +bool set_process_priority(enum ggml_sched_priority prio); + +// +// String utils +// + +#ifdef __GNUC__ +#ifdef __MINGW32__ +#define LLAMA_COMMON_ATTRIBUTE_FORMAT(...) __attribute__((format(gnu_printf, __VA_ARGS__))) +#else +#define LLAMA_COMMON_ATTRIBUTE_FORMAT(...) __attribute__((format(printf, __VA_ARGS__))) +#endif +#else +#define LLAMA_COMMON_ATTRIBUTE_FORMAT(...) +#endif + +LLAMA_COMMON_ATTRIBUTE_FORMAT(1, 2) +std::string string_format(const char * fmt, ...); + +std::string string_strip(const std::string & str); +std::string string_get_sortable_timestamp(); + +void string_replace_all(std::string & s, const std::string & search, const std::string & replace); + +template +static std::vector string_split(const std::string & str, char delim) { + static_assert(!std::is_same::value, "Please use the specialized version for std::string"); + std::vector values; + std::istringstream str_stream(str); + std::string token; + while (std::getline(str_stream, token, delim)) { + T value; + std::istringstream token_stream(token); + token_stream >> value; + values.push_back(value); + } + return values; +} + +template<> +std::vector string_split(const std::string & input, char separator) +{ + std::vector parts; + size_t begin_pos = 0; + size_t separator_pos = input.find(separator); + while (separator_pos != std::string::npos) { + std::string part = input.substr(begin_pos, separator_pos - begin_pos); + parts.emplace_back(part); + begin_pos = separator_pos + 1; + separator_pos = input.find(separator, begin_pos); + } + parts.emplace_back(input.substr(begin_pos, separator_pos - begin_pos)); + return parts; +} + +bool string_parse_kv_override(const char * data, std::vector & overrides); +void string_process_escapes(std::string & input); + +std::string string_from(bool value); +std::string string_from(const std::vector & values); +std::string string_from(const struct llama_context * ctx, const std::vector & tokens); +std::string string_from(const struct llama_context * ctx, const struct llama_batch & batch); + +// +// Filesystem utils +// + +bool fs_validate_filename(const std::string & filename); +bool fs_create_directory_with_parents(const std::string & path); + +std::string fs_get_cache_directory(); +std::string fs_get_cache_file(const std::string & filename); + +// +// Model utils +// + +struct common_init_result { + struct llama_model * model = nullptr; + struct llama_context * context = nullptr; + std::vector lora_adapters; +}; + +struct common_init_result common_init_from_params(common_params & params); + +struct llama_model_params common_model_params_to_llama ( common_params & params); +struct llama_context_params common_context_params_to_llama(const common_params & params); +struct ggml_threadpool_params ggml_threadpool_params_from_cpu_params(const cpu_params & params); + +struct llama_model * common_load_model_from_url( + const std::string & model_url, + const std::string & local_path, + const std::string & hf_token, + const struct llama_model_params & params); +struct llama_model * common_load_model_from_hf( + const std::string & repo, + const std::string & remote_path, + const std::string & local_path, + const std::string & hf_token, + const struct llama_model_params & params); + +// clear LoRA adapters from context, then apply new list of adapters +void common_lora_adapters_apply(struct llama_context * ctx, std::vector & lora_adapters); + +// +// Batch utils +// + +void common_batch_clear(struct llama_batch & batch); + +void common_batch_add( + struct llama_batch & batch, + llama_token id, + llama_pos pos, + const std::vector & seq_ids, + bool logits); + +// +// Token utils +// + +// longest common prefix +size_t common_lcp(const llama_tokens & a, const llama_tokens & b); + +// longet common subsequence +size_t common_lcs(const llama_tokens & a, const llama_tokens & b); + +// +// Vocab utils +// + +// tokenizes a string into a vector of tokens +// should work similar to Python's `tokenizer.encode` +std::vector common_tokenize( + const struct llama_context * ctx, + const std::string & text, + bool add_special, + bool parse_special = false); + +std::vector common_tokenize( + const struct llama_model * model, + const std::string & text, + bool add_special, + bool parse_special = false); + +// tokenizes a token into a piece, optionally renders special/control tokens +// should work similar to Python's `tokenizer.id_to_piece` +std::string common_token_to_piece( + const struct llama_context * ctx, + llama_token token, + bool special = true); + +// detokenizes a vector of tokens into a string +// should work similar to Python's `tokenizer.decode` +// optionally renders special/control tokens +std::string common_detokenize( + llama_context * ctx, + const std::vector & tokens, + bool special = true); + +// +// Chat template utils +// + +// same with llama_chat_message, but uses std::string +struct common_chat_msg { + std::string role; + std::string content; +}; + +// Check if the template supplied via "--chat-template" is supported or not. Returns true if it's valid +bool common_chat_verify_template(const std::string & tmpl); + +// CPP wrapper for llama_chat_apply_template +// If the built-in template is not supported, we default to chatml +// If the custom "tmpl" is not supported, we throw an error +std::string common_chat_apply_template(const struct llama_model * model, + const std::string & tmpl, + const std::vector & chat, + bool add_ass); + +// Format single message, while taking into account the position of that message in chat history +std::string common_chat_format_single(const struct llama_model * model, + const std::string & tmpl, + const std::vector & past_msg, + const common_chat_msg & new_msg, + bool add_ass); + +// Returns an example of formatted chat +std::string common_chat_format_example(const struct llama_model * model, + const std::string & tmpl); + +// +// KV cache utils +// + +// Dump the KV cache view with the number of sequences per cell. +void common_kv_cache_dump_view(const llama_kv_cache_view & view, int row_size = 80); + +// Dump the KV cache view showing individual sequences in each cell (long output). +void common_kv_cache_dump_view_seqs(const llama_kv_cache_view & view, int row_size = 40); + +// +// Embedding utils +// + +void common_embd_normalize(const float * inp, float * out, int n, int embd_norm = 2); + +float common_embd_similarity_cos(const float * embd1, const float * embd2, int n); + +// +// Control vector utils +// + +struct common_control_vector_data { + int n_embd; + + // stores data for layers [1, n_layer] where n_layer = data.size() / n_embd + std::vector data; +}; + +struct common_control_vector_load_info { + float strength; + + std::string fname; +}; + +// Load control vectors, scale each by strength, and add them together. +// On error, returns {-1, empty} +common_control_vector_data common_control_vector_load(const std::vector & load_infos); + +// +// Split utils +// + +static const char * const LLM_KV_SPLIT_NO = "split.no"; +static const char * const LLM_KV_SPLIT_COUNT = "split.count"; +static const char * const LLM_KV_SPLIT_TENSORS_COUNT = "split.tensors.count"; diff --git a/llama.cpp/common/console.cpp b/llama.cpp/common/console.cpp new file mode 100644 index 0000000000000000000000000000000000000000..078a8d678d933bec79eda408ff45858758c16f37 --- /dev/null +++ b/llama.cpp/common/console.cpp @@ -0,0 +1,504 @@ +#include "console.h" +#include +#include + +#if defined(_WIN32) +#define WIN32_LEAN_AND_MEAN +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#include +#include +#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING +#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 +#endif +#else +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#define ANSI_COLOR_RED "\x1b[31m" +#define ANSI_COLOR_GREEN "\x1b[32m" +#define ANSI_COLOR_YELLOW "\x1b[33m" +#define ANSI_COLOR_BLUE "\x1b[34m" +#define ANSI_COLOR_MAGENTA "\x1b[35m" +#define ANSI_COLOR_CYAN "\x1b[36m" +#define ANSI_COLOR_RESET "\x1b[0m" +#define ANSI_BOLD "\x1b[1m" + +namespace console { + + // + // Console state + // + + static bool advanced_display = false; + static bool simple_io = true; + static display_t current_display = reset; + + static FILE* out = stdout; + +#if defined (_WIN32) + static void* hConsole; +#else + static FILE* tty = nullptr; + static termios initial_state; +#endif + + // + // Init and cleanup + // + + void init(bool use_simple_io, bool use_advanced_display) { + advanced_display = use_advanced_display; + simple_io = use_simple_io; +#if defined(_WIN32) + // Windows-specific console initialization + DWORD dwMode = 0; + hConsole = GetStdHandle(STD_OUTPUT_HANDLE); + if (hConsole == INVALID_HANDLE_VALUE || !GetConsoleMode(hConsole, &dwMode)) { + hConsole = GetStdHandle(STD_ERROR_HANDLE); + if (hConsole != INVALID_HANDLE_VALUE && (!GetConsoleMode(hConsole, &dwMode))) { + hConsole = nullptr; + simple_io = true; + } + } + if (hConsole) { + // Check conditions combined to reduce nesting + if (advanced_display && !(dwMode & ENABLE_VIRTUAL_TERMINAL_PROCESSING) && + !SetConsoleMode(hConsole, dwMode | ENABLE_VIRTUAL_TERMINAL_PROCESSING)) { + advanced_display = false; + } + // Set console output codepage to UTF8 + SetConsoleOutputCP(CP_UTF8); + } + HANDLE hConIn = GetStdHandle(STD_INPUT_HANDLE); + if (hConIn != INVALID_HANDLE_VALUE && GetConsoleMode(hConIn, &dwMode)) { + // Set console input codepage to UTF16 + _setmode(_fileno(stdin), _O_WTEXT); + + // Set ICANON (ENABLE_LINE_INPUT) and ECHO (ENABLE_ECHO_INPUT) + if (simple_io) { + dwMode |= ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT; + } else { + dwMode &= ~(ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT); + } + if (!SetConsoleMode(hConIn, dwMode)) { + simple_io = true; + } + } + if (simple_io) { + _setmode(_fileno(stdin), _O_U8TEXT); + } +#else + // POSIX-specific console initialization + if (!simple_io) { + struct termios new_termios; + tcgetattr(STDIN_FILENO, &initial_state); + new_termios = initial_state; + new_termios.c_lflag &= ~(ICANON | ECHO); + new_termios.c_cc[VMIN] = 1; + new_termios.c_cc[VTIME] = 0; + tcsetattr(STDIN_FILENO, TCSANOW, &new_termios); + + tty = fopen("/dev/tty", "w+"); + if (tty != nullptr) { + out = tty; + } + } + + setlocale(LC_ALL, ""); +#endif + } + + void cleanup() { + // Reset console display + set_display(reset); + +#if !defined(_WIN32) + // Restore settings on POSIX systems + if (!simple_io) { + if (tty != nullptr) { + out = stdout; + fclose(tty); + tty = nullptr; + } + tcsetattr(STDIN_FILENO, TCSANOW, &initial_state); + } +#endif + } + + // + // Display and IO + // + + // Keep track of current display and only emit ANSI code if it changes + void set_display(display_t display) { + if (advanced_display && current_display != display) { + fflush(stdout); + switch(display) { + case reset: + fprintf(out, ANSI_COLOR_RESET); + break; + case prompt: + fprintf(out, ANSI_COLOR_YELLOW); + break; + case user_input: + fprintf(out, ANSI_BOLD ANSI_COLOR_GREEN); + break; + case error: + fprintf(out, ANSI_BOLD ANSI_COLOR_RED); + } + current_display = display; + fflush(out); + } + } + + static char32_t getchar32() { +#if defined(_WIN32) + HANDLE hConsole = GetStdHandle(STD_INPUT_HANDLE); + wchar_t high_surrogate = 0; + + while (true) { + INPUT_RECORD record; + DWORD count; + if (!ReadConsoleInputW(hConsole, &record, 1, &count) || count == 0) { + return WEOF; + } + + if (record.EventType == KEY_EVENT && record.Event.KeyEvent.bKeyDown) { + wchar_t wc = record.Event.KeyEvent.uChar.UnicodeChar; + if (wc == 0) { + continue; + } + + if ((wc >= 0xD800) && (wc <= 0xDBFF)) { // Check if wc is a high surrogate + high_surrogate = wc; + continue; + } + if ((wc >= 0xDC00) && (wc <= 0xDFFF)) { // Check if wc is a low surrogate + if (high_surrogate != 0) { // Check if we have a high surrogate + return ((high_surrogate - 0xD800) << 10) + (wc - 0xDC00) + 0x10000; + } + } + + high_surrogate = 0; // Reset the high surrogate + return static_cast(wc); + } + } +#else + wchar_t wc = getwchar(); + if (static_cast(wc) == WEOF) { + return WEOF; + } + +#if WCHAR_MAX == 0xFFFF + if ((wc >= 0xD800) && (wc <= 0xDBFF)) { // Check if wc is a high surrogate + wchar_t low_surrogate = getwchar(); + if ((low_surrogate >= 0xDC00) && (low_surrogate <= 0xDFFF)) { // Check if the next wchar is a low surrogate + return (static_cast(wc & 0x03FF) << 10) + (low_surrogate & 0x03FF) + 0x10000; + } + } + if ((wc >= 0xD800) && (wc <= 0xDFFF)) { // Invalid surrogate pair + return 0xFFFD; // Return the replacement character U+FFFD + } +#endif + + return static_cast(wc); +#endif + } + + static void pop_cursor() { +#if defined(_WIN32) + if (hConsole != NULL) { + CONSOLE_SCREEN_BUFFER_INFO bufferInfo; + GetConsoleScreenBufferInfo(hConsole, &bufferInfo); + + COORD newCursorPosition = bufferInfo.dwCursorPosition; + if (newCursorPosition.X == 0) { + newCursorPosition.X = bufferInfo.dwSize.X - 1; + newCursorPosition.Y -= 1; + } else { + newCursorPosition.X -= 1; + } + + SetConsoleCursorPosition(hConsole, newCursorPosition); + return; + } +#endif + putc('\b', out); + } + + static int estimateWidth(char32_t codepoint) { +#if defined(_WIN32) + (void)codepoint; + return 1; +#else + return wcwidth(codepoint); +#endif + } + + static int put_codepoint(const char* utf8_codepoint, size_t length, int expectedWidth) { +#if defined(_WIN32) + CONSOLE_SCREEN_BUFFER_INFO bufferInfo; + if (!GetConsoleScreenBufferInfo(hConsole, &bufferInfo)) { + // go with the default + return expectedWidth; + } + COORD initialPosition = bufferInfo.dwCursorPosition; + DWORD nNumberOfChars = length; + WriteConsole(hConsole, utf8_codepoint, nNumberOfChars, &nNumberOfChars, NULL); + + CONSOLE_SCREEN_BUFFER_INFO newBufferInfo; + GetConsoleScreenBufferInfo(hConsole, &newBufferInfo); + + // Figure out our real position if we're in the last column + if (utf8_codepoint[0] != 0x09 && initialPosition.X == newBufferInfo.dwSize.X - 1) { + DWORD nNumberOfChars; + WriteConsole(hConsole, &" \b", 2, &nNumberOfChars, NULL); + GetConsoleScreenBufferInfo(hConsole, &newBufferInfo); + } + + int width = newBufferInfo.dwCursorPosition.X - initialPosition.X; + if (width < 0) { + width += newBufferInfo.dwSize.X; + } + return width; +#else + // We can trust expectedWidth if we've got one + if (expectedWidth >= 0 || tty == nullptr) { + fwrite(utf8_codepoint, length, 1, out); + return expectedWidth; + } + + fputs("\033[6n", tty); // Query cursor position + int x1; + int y1; + int x2; + int y2; + int results = 0; + results = fscanf(tty, "\033[%d;%dR", &y1, &x1); + + fwrite(utf8_codepoint, length, 1, tty); + + fputs("\033[6n", tty); // Query cursor position + results += fscanf(tty, "\033[%d;%dR", &y2, &x2); + + if (results != 4) { + return expectedWidth; + } + + int width = x2 - x1; + if (width < 0) { + // Calculate the width considering text wrapping + struct winsize w; + ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); + width += w.ws_col; + } + return width; +#endif + } + + static void replace_last(char ch) { +#if defined(_WIN32) + pop_cursor(); + put_codepoint(&ch, 1, 1); +#else + fprintf(out, "\b%c", ch); +#endif + } + + static void append_utf8(char32_t ch, std::string & out) { + if (ch <= 0x7F) { + out.push_back(static_cast(ch)); + } else if (ch <= 0x7FF) { + out.push_back(static_cast(0xC0 | ((ch >> 6) & 0x1F))); + out.push_back(static_cast(0x80 | (ch & 0x3F))); + } else if (ch <= 0xFFFF) { + out.push_back(static_cast(0xE0 | ((ch >> 12) & 0x0F))); + out.push_back(static_cast(0x80 | ((ch >> 6) & 0x3F))); + out.push_back(static_cast(0x80 | (ch & 0x3F))); + } else if (ch <= 0x10FFFF) { + out.push_back(static_cast(0xF0 | ((ch >> 18) & 0x07))); + out.push_back(static_cast(0x80 | ((ch >> 12) & 0x3F))); + out.push_back(static_cast(0x80 | ((ch >> 6) & 0x3F))); + out.push_back(static_cast(0x80 | (ch & 0x3F))); + } else { + // Invalid Unicode code point + } + } + + // Helper function to remove the last UTF-8 character from a string + static void pop_back_utf8_char(std::string & line) { + if (line.empty()) { + return; + } + + size_t pos = line.length() - 1; + + // Find the start of the last UTF-8 character (checking up to 4 bytes back) + for (size_t i = 0; i < 3 && pos > 0; ++i, --pos) { + if ((line[pos] & 0xC0) != 0x80) { + break; // Found the start of the character + } + } + line.erase(pos); + } + + static bool readline_advanced(std::string & line, bool multiline_input) { + if (out != stdout) { + fflush(stdout); + } + + line.clear(); + std::vector widths; + bool is_special_char = false; + bool end_of_stream = false; + + char32_t input_char; + while (true) { + fflush(out); // Ensure all output is displayed before waiting for input + input_char = getchar32(); + + if (input_char == '\r' || input_char == '\n') { + break; + } + + if (input_char == (char32_t) WEOF || input_char == 0x04 /* Ctrl+D*/) { + end_of_stream = true; + break; + } + + if (is_special_char) { + set_display(user_input); + replace_last(line.back()); + is_special_char = false; + } + + if (input_char == '\033') { // Escape sequence + char32_t code = getchar32(); + if (code == '[' || code == 0x1B) { + // Discard the rest of the escape sequence + while ((code = getchar32()) != (char32_t) WEOF) { + if ((code >= 'A' && code <= 'Z') || (code >= 'a' && code <= 'z') || code == '~') { + break; + } + } + } + } else if (input_char == 0x08 || input_char == 0x7F) { // Backspace + if (!widths.empty()) { + int count; + do { + count = widths.back(); + widths.pop_back(); + // Move cursor back, print space, and move cursor back again + for (int i = 0; i < count; i++) { + replace_last(' '); + pop_cursor(); + } + pop_back_utf8_char(line); + } while (count == 0 && !widths.empty()); + } + } else { + int offset = line.length(); + append_utf8(input_char, line); + int width = put_codepoint(line.c_str() + offset, line.length() - offset, estimateWidth(input_char)); + if (width < 0) { + width = 0; + } + widths.push_back(width); + } + + if (!line.empty() && (line.back() == '\\' || line.back() == '/')) { + set_display(prompt); + replace_last(line.back()); + is_special_char = true; + } + } + + bool has_more = multiline_input; + if (is_special_char) { + replace_last(' '); + pop_cursor(); + + char last = line.back(); + line.pop_back(); + if (last == '\\') { + line += '\n'; + fputc('\n', out); + has_more = !has_more; + } else { + // llama will just eat the single space, it won't act as a space + if (line.length() == 1 && line.back() == ' ') { + line.clear(); + pop_cursor(); + } + has_more = false; + } + } else { + if (end_of_stream) { + has_more = false; + } else { + line += '\n'; + fputc('\n', out); + } + } + + fflush(out); + return has_more; + } + + static bool readline_simple(std::string & line, bool multiline_input) { +#if defined(_WIN32) + std::wstring wline; + if (!std::getline(std::wcin, wline)) { + // Input stream is bad or EOF received + line.clear(); + GenerateConsoleCtrlEvent(CTRL_C_EVENT, 0); + return false; + } + + int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wline[0], (int)wline.size(), NULL, 0, NULL, NULL); + line.resize(size_needed); + WideCharToMultiByte(CP_UTF8, 0, &wline[0], (int)wline.size(), &line[0], size_needed, NULL, NULL); +#else + if (!std::getline(std::cin, line)) { + // Input stream is bad or EOF received + line.clear(); + return false; + } +#endif + if (!line.empty()) { + char last = line.back(); + if (last == '/') { // Always return control on '/' symbol + line.pop_back(); + return false; + } + if (last == '\\') { // '\\' changes the default action + line.pop_back(); + multiline_input = !multiline_input; + } + } + line += '\n'; + + // By default, continue input if multiline_input is set + return multiline_input; + } + + bool readline(std::string & line, bool multiline_input) { + set_display(user_input); + + if (simple_io) { + return readline_simple(line, multiline_input); + } + return readline_advanced(line, multiline_input); + } + +} diff --git a/llama.cpp/common/console.h b/llama.cpp/common/console.h new file mode 100644 index 0000000000000000000000000000000000000000..ec175269b9d8af48803d0b6e618d008a9ab99b4d --- /dev/null +++ b/llama.cpp/common/console.h @@ -0,0 +1,19 @@ +// Console functions + +#pragma once + +#include + +namespace console { + enum display_t { + reset = 0, + prompt, + user_input, + error + }; + + void init(bool use_simple_io, bool use_advanced_display); + void cleanup(); + void set_display(display_t display); + bool readline(std::string & line, bool multiline_input); +} diff --git a/llama.cpp/common/json-schema-to-grammar.cpp b/llama.cpp/common/json-schema-to-grammar.cpp new file mode 100644 index 0000000000000000000000000000000000000000..dadc18c8b352f678326c8c8da6a506dfdcca05a4 --- /dev/null +++ b/llama.cpp/common/json-schema-to-grammar.cpp @@ -0,0 +1,1045 @@ +#include "json-schema-to-grammar.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using json = nlohmann::ordered_json; + +template +static std::string join(Iterator begin, Iterator end, const std::string & separator); + +static std::string repeat(const std::string & str, size_t n); + +static std::string build_repetition(const std::string & item_rule, int min_items, int max_items, const std::string & separator_rule = "") { + auto has_max = max_items != std::numeric_limits::max(); + + if (min_items == 0 && max_items == 1) { + return item_rule + "?"; + } + + if (separator_rule.empty()) { + if (min_items == 1 && !has_max) { + return item_rule + "+"; + } else if (min_items == 0 && !has_max) { + return item_rule + "*"; + } else { + return item_rule + "{" + std::to_string(min_items) + "," + (has_max ? std::to_string(max_items) : "") + "}"; + } + } + + auto result = item_rule + " " + build_repetition("(" + separator_rule + " " + item_rule + ")", min_items == 0 ? 0 : min_items - 1, has_max ? max_items - 1 : max_items); + if (min_items == 0) { + result = "(" + result + ")?"; + } + return result; +} + +/* Minimalistic replacement for std::string_view, which is only available from C++17 onwards */ +class string_view { + const std::string & _str; + const size_t _start; + const size_t _end; +public: + string_view(const std::string & str, size_t start = 0, size_t end = std::string::npos) : _str(str), _start(start), _end(end == std::string::npos ? str.length() : end) {} + + size_t size() const { + return _end - _start; + } + + size_t length() const { + return size(); + } + + operator std::string() const { + return str(); + } + + std::string str() const { + return _str.substr(_start, _end - _start); + } + + string_view substr(size_t pos, size_t len = std::string::npos) const { + return string_view(_str, _start + pos, len == std::string::npos ? _end : _start + pos + len); + } + + char operator[](size_t pos) const { + auto index = _start + pos; + if (index >= _end) { + throw std::out_of_range("string_view index out of range"); + } + return _str[_start + pos]; + } + + bool operator==(const string_view & other) const { + std::string this_str = *this; + std::string other_str = other; + return this_str == other_str; + } +}; + +static void _build_min_max_int(int min_value, int max_value, std::stringstream & out, int decimals_left = 16, bool top_level = true) { + auto has_min = min_value != std::numeric_limits::min(); + auto has_max = max_value != std::numeric_limits::max(); + + auto digit_range = [&](char from, char to) { + out << "["; + if (from == to) { + out << from; + } else { + out << from << "-" << to; + } + out << "]"; + }; + auto more_digits = [&](int min_digits, int max_digits) { + out << "[0-9]"; + if (min_digits == max_digits && min_digits == 1) { + return; + } + out << "{"; + out << min_digits; + if (max_digits != min_digits) { + out << ","; + if (max_digits != std::numeric_limits::max()) { + out << max_digits; + } + } + out << "}"; + }; + std::function uniform_range = + [&](const string_view & from, const string_view & to) { + size_t i = 0; + while (i < from.length() && i < to.length() && from[i] == to[i]) { + i++; + } + if (i > 0) { + out << "\"" << from.substr(0, i).str() << "\""; + } + if (i < from.length() && i < to.length()) { + if (i > 0) { + out << " "; + } + auto sub_len = from.length() - i - 1; + if (sub_len > 0) { + auto from_sub = from.substr(i + 1); + auto to_sub = to.substr(i + 1); + auto sub_zeros = repeat("0", sub_len); + auto sub_nines = repeat("9", sub_len); + + auto to_reached = false; + out << "("; + if (from_sub == sub_zeros) { + digit_range(from[i], to[i] - 1); + out << " "; + more_digits(sub_len, sub_len); + } else { + out << "[" << from[i] << "] "; + out << "("; + uniform_range(from_sub, sub_nines); + out << ")"; + if (from[i] < to[i] - 1) { + out << " | "; + if (to_sub == sub_nines) { + digit_range(from[i] + 1, to[i]); + to_reached = true; + } else { + digit_range(from[i] + 1, to[i] - 1); + } + out << " "; + more_digits(sub_len, sub_len); + } + } + if (!to_reached) { + out << " | "; + digit_range(to[i], to[i]); + out << " "; + uniform_range(sub_zeros, to_sub); + } + out << ")"; + } else { + out << "[" << from[i] << "-" << to[i] << "]"; + } + } + }; + + if (has_min && has_max) { + if (min_value < 0 && max_value < 0) { + out << "\"-\" ("; + _build_min_max_int(-max_value, -min_value, out, decimals_left, /* top_level= */ true); + out << ")"; + return; + } + + if (min_value < 0) { + out << "\"-\" ("; + _build_min_max_int(0, -min_value, out, decimals_left, /* top_level= */ true); + out << ") | "; + min_value = 0; + } + + auto min_s = std::to_string(min_value); + auto max_s = std::to_string(max_value); + auto min_digits = min_s.length(); + auto max_digits = max_s.length(); + + for (auto digits = min_digits; digits < max_digits; digits++) { + uniform_range(min_s, repeat("9", digits)); + min_s = "1" + repeat("0", digits); + out << " | "; + } + uniform_range(min_s, max_s); + return; + } + + auto less_decimals = std::max(decimals_left - 1, 1); + + if (has_min) { + if (min_value < 0) { + out << "\"-\" ("; + _build_min_max_int(std::numeric_limits::min(), -min_value, out, decimals_left, /* top_level= */ false); + out << ") | [0] | [1-9] "; + more_digits(0, decimals_left - 1); + } else if (min_value == 0) { + if (top_level) { + out << "[0] | [1-9] "; + more_digits(0, less_decimals); + } else { + more_digits(1, decimals_left); + } + } else if (min_value <= 9) { + char c = '0' + min_value; + auto range_start = top_level ? '1' : '0'; + if (c > range_start) { + digit_range(range_start, c - 1); + out << " "; + more_digits(1, less_decimals); + out << " | "; + } + digit_range(c, '9'); + out << " "; + more_digits(0, less_decimals); + } else { + auto min_s = std::to_string(min_value); + auto len = min_s.length(); + auto c = min_s[0]; + + if (c > '1') { + digit_range(top_level ? '1' : '0', c - 1); + out << " "; + more_digits(len, less_decimals); + out << " | "; + } + digit_range(c, c); + out << " ("; + _build_min_max_int(std::stoi(min_s.substr(1)), std::numeric_limits::max(), out, less_decimals, /* top_level= */ false); + out << ")"; + if (c < '9') { + out << " | "; + digit_range(c + 1, '9'); + out << " "; + more_digits(len - 1, less_decimals); + } + } + return; + } + + if (has_max) { + if (max_value >= 0) { + if (top_level) { + out << "\"-\" [1-9] "; + more_digits(0, less_decimals); + out << " | "; + } + _build_min_max_int(0, max_value, out, decimals_left, /* top_level= */ true); + } else { + out << "\"-\" ("; + _build_min_max_int(-max_value, std::numeric_limits::max(), out, decimals_left, /* top_level= */ false); + out << ")"; + } + return; + } + + throw std::runtime_error("At least one of min_value or max_value must be set"); +} + +const std::string SPACE_RULE = "| \" \" | \"\\n\" [ \\t]{0,20}"; + +struct BuiltinRule { + std::string content; + std::vector deps; +}; + +std::unordered_map PRIMITIVE_RULES = { + {"boolean", {"(\"true\" | \"false\") space", {}}}, + {"decimal-part", {"[0-9]{1,16}", {}}}, + {"integral-part", {"[0] | [1-9] [0-9]{0,15}", {}}}, + {"number", {"(\"-\"? integral-part) (\".\" decimal-part)? ([eE] [-+]? integral-part)? space", {"integral-part", "decimal-part"}}}, + {"integer", {"(\"-\"? integral-part) space", {"integral-part"}}}, + {"value", {"object | array | string | number | boolean | null", {"object", "array", "string", "number", "boolean", "null"}}}, + {"object", {"\"{\" space ( string \":\" space value (\",\" space string \":\" space value)* )? \"}\" space", {"string", "value"}}}, + {"array", {"\"[\" space ( value (\",\" space value)* )? \"]\" space", {"value"}}}, + {"uuid", {"\"\\\"\" [0-9a-fA-F]{8} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{4} \"-\" [0-9a-fA-F]{12} \"\\\"\" space", {}}}, + {"char", {"[^\"\\\\\\x7F\\x00-\\x1F] | [\\\\] ([\"\\\\bfnrt] | \"u\" [0-9a-fA-F]{4})", {}}}, + {"string", {"\"\\\"\" char* \"\\\"\" space", {"char"}}}, + {"null", {"\"null\" space", {}}}, +}; + +std::unordered_map STRING_FORMAT_RULES = { + {"date", {"[0-9]{4} \"-\" ( \"0\" [1-9] | \"1\" [0-2] ) \"-\" ( \"0\" [1-9] | [1-2] [0-9] | \"3\" [0-1] )", {}}}, + {"time", {"([01] [0-9] | \"2\" [0-3]) \":\" [0-5] [0-9] \":\" [0-5] [0-9] ( \".\" [0-9]{3} )? ( \"Z\" | ( \"+\" | \"-\" ) ( [01] [0-9] | \"2\" [0-3] ) \":\" [0-5] [0-9] )", {}}}, + {"date-time", {"date \"T\" time", {"date", "time"}}}, + {"date-string", {"\"\\\"\" date \"\\\"\" space", {"date"}}}, + {"time-string", {"\"\\\"\" time \"\\\"\" space", {"time"}}}, + {"date-time-string", {"\"\\\"\" date-time \"\\\"\" space", {"date-time"}}} +}; + +static bool is_reserved_name(const std::string & name) { + static std::unordered_set RESERVED_NAMES; + if (RESERVED_NAMES.empty()) { + RESERVED_NAMES.insert("root"); + for (const auto &p : PRIMITIVE_RULES) RESERVED_NAMES.insert(p.first); + for (const auto &p : STRING_FORMAT_RULES) RESERVED_NAMES.insert(p.first); + } + return RESERVED_NAMES.find(name) != RESERVED_NAMES.end(); +} + +std::regex INVALID_RULE_CHARS_RE("[^a-zA-Z0-9-]+"); +std::regex GRAMMAR_LITERAL_ESCAPE_RE("[\r\n\"]"); +std::regex GRAMMAR_RANGE_LITERAL_ESCAPE_RE("[\r\n\"\\]\\-\\\\]"); +std::unordered_map GRAMMAR_LITERAL_ESCAPES = { + {'\r', "\\r"}, {'\n', "\\n"}, {'"', "\\\""}, {'-', "\\-"}, {']', "\\]"} +}; + +std::unordered_set NON_LITERAL_SET = {'|', '.', '(', ')', '[', ']', '{', '}', '*', '+', '?'}; +std::unordered_set ESCAPED_IN_REGEXPS_BUT_NOT_IN_LITERALS = {'^', '$', '.', '[', ']', '(', ')', '|', '{', '}', '*', '+', '?'}; + +template +std::string join(Iterator begin, Iterator end, const std::string & separator) { + std::ostringstream result; + if (begin != end) { + result << *begin; + for (Iterator it = begin + 1; it != end; ++it) { + result << separator << *it; + } + } + return result.str(); +} + +static std::vector split(const std::string & str, const std::string & delimiter) { + std::vector tokens; + size_t start = 0; + size_t end = str.find(delimiter); + + while (end != std::string::npos) { + tokens.push_back(str.substr(start, end - start)); + start = end + delimiter.length(); + end = str.find(delimiter, start); + } + + tokens.push_back(str.substr(start)); + + return tokens; +} + +static std::string repeat(const std::string & str, size_t n) { + if (n == 0) { + return ""; + } + + std::string result; + result.reserve(str.length() * n); + + for (size_t i = 0; i < n; ++i) { + result += str; + } + + return result; +} + +static std::string replacePattern(const std::string & input, const std::regex & regex, const std::function & replacement) { + std::smatch match; + std::string result; + + std::string::const_iterator searchStart(input.cbegin()); + std::string::const_iterator searchEnd(input.cend()); + + while (std::regex_search(searchStart, searchEnd, match, regex)) { + result.append(searchStart, searchStart + match.position()); + result.append(replacement(match)); + searchStart = match.suffix().first; + } + + result.append(searchStart, searchEnd); + + return result; +} + +static std::string format_literal(const std::string & literal) { + std::string escaped = replacePattern(literal, GRAMMAR_LITERAL_ESCAPE_RE, [&](const std::smatch & match) { + char c = match.str()[0]; + return GRAMMAR_LITERAL_ESCAPES.at(c); + }); + return "\"" + escaped + "\""; +} + +class SchemaConverter { +private: + std::function _fetch_json; + bool _dotall; + std::map _rules; + std::unordered_map _refs; + std::unordered_set _refs_being_resolved; + std::vector _errors; + std::vector _warnings; + + std::string _add_rule(const std::string & name, const std::string & rule) { + std::string esc_name = regex_replace(name, INVALID_RULE_CHARS_RE, "-"); + if (_rules.find(esc_name) == _rules.end() || _rules[esc_name] == rule) { + _rules[esc_name] = rule; + return esc_name; + } else { + int i = 0; + while (_rules.find(esc_name + std::to_string(i)) != _rules.end() && _rules[esc_name + std::to_string(i)] != rule) { + i++; + } + std::string key = esc_name + std::to_string(i); + _rules[key] = rule; + return key; + } + } + + std::string _generate_union_rule(const std::string & name, const std::vector & alt_schemas) { + std::vector rules; + for (size_t i = 0; i < alt_schemas.size(); i++) { + rules.push_back(visit(alt_schemas[i], name + (name.empty() ? "alternative-" : "-") + std::to_string(i))); + } + return join(rules.begin(), rules.end(), " | "); + } + + std::string _visit_pattern(const std::string & pattern, const std::string & name) { + if (!(pattern.front() == '^' && pattern.back() == '$')) { + _errors.push_back("Pattern must start with '^' and end with '$'"); + return ""; + } + std::string sub_pattern = pattern.substr(1, pattern.length() - 2); + std::unordered_map sub_rule_ids; + + size_t i = 0; + size_t length = sub_pattern.length(); + + using literal_or_rule = std::pair; + auto to_rule = [&](const literal_or_rule & ls) { + auto is_literal = ls.second; + auto s = ls.first; + return is_literal ? "\"" + s + "\"" : s; + }; + std::function transform = [&]() -> literal_or_rule { + size_t start = i; + std::vector seq; + + auto get_dot = [&]() { + std::string rule; + if (_dotall) { + rule = "[\\U00000000-\\U0010FFFF]"; + } else { + rule = "[^\\x0A\\x0D]"; + } + return _add_rule("dot", rule); + }; + + // Joins the sequence, merging consecutive literals together. + auto join_seq = [&]() { + std::vector ret; + + std::string literal; + auto flush_literal = [&]() { + if (literal.empty()) { + return false; + } + ret.emplace_back(literal, true); + literal.clear(); + return true; + }; + + for (const auto & item : seq) { + auto is_literal = item.second; + if (is_literal) { + literal += item.first; + } else { + flush_literal(); + ret.push_back(item); + } + } + flush_literal(); + + std::vector results; + for (const auto & item : ret) { + results.push_back(to_rule(item)); + } + return std::make_pair(join(results.begin(), results.end(), " "), false); + }; + + while (i < length) { + char c = sub_pattern[i]; + if (c == '.') { + seq.emplace_back(get_dot(), false); + i++; + } else if (c == '(') { + i++; + if (i < length) { + if (sub_pattern[i] == '?') { + _warnings.push_back("Unsupported pattern syntax"); + } + } + seq.emplace_back("(" + to_rule(transform()) + ")", false); + } else if (c == ')') { + i++; + if (start > 0 && sub_pattern[start - 1] != '(') { + _errors.push_back("Unbalanced parentheses"); + } + return join_seq(); + } else if (c == '[') { + std::string square_brackets = std::string(1, c); + i++; + while (i < length && sub_pattern[i] != ']') { + if (sub_pattern[i] == '\\') { + square_brackets += sub_pattern.substr(i, 2); + i += 2; + } else { + square_brackets += sub_pattern[i]; + i++; + } + } + if (i >= length) { + _errors.push_back("Unbalanced square brackets"); + } + square_brackets += ']'; + i++; + seq.emplace_back(square_brackets, false); + } else if (c == '|') { + seq.emplace_back("|", false); + i++; + } else if (c == '*' || c == '+' || c == '?') { + seq.back() = std::make_pair(to_rule(seq.back()) + c, false); + i++; + } else if (c == '{') { + std::string curly_brackets = std::string(1, c); + i++; + while (i < length && sub_pattern[i] != '}') { + curly_brackets += sub_pattern[i]; + i++; + } + if (i >= length) { + _errors.push_back("Unbalanced curly brackets"); + } + curly_brackets += '}'; + i++; + auto nums = split(curly_brackets.substr(1, curly_brackets.length() - 2), ","); + int min_times = 0; + int max_times = std::numeric_limits::max(); + try { + if (nums.size() == 1) { + min_times = max_times = std::stoi(nums[0]); + } else if (nums.size() != 2) { + _errors.push_back("Wrong number of values in curly brackets"); + } else { + if (!nums[0].empty()) { + min_times = std::stoi(nums[0]); + } + if (!nums[1].empty()) { + max_times = std::stoi(nums[1]); + } + } + } catch (const std::invalid_argument & e) { + _errors.push_back("Invalid number in curly brackets"); + return std::make_pair("", false); + } + auto &last = seq.back(); + auto &sub = last.first; + auto sub_is_literal = last.second; + + if (!sub_is_literal) { + std::string & sub_id = sub_rule_ids[sub]; + if (sub_id.empty()) { + sub_id = _add_rule(name + "-" + std::to_string(sub_rule_ids.size()), sub); + } + sub = sub_id; + } + seq.back().first = build_repetition( + sub_is_literal ? "\"" + sub + "\"" : sub, + min_times, + max_times, + "" + ); + seq.back().second = false; + } else { + std::string literal; + auto is_non_literal = [&](char c) { + return NON_LITERAL_SET.find(c) != NON_LITERAL_SET.end(); + }; + while (i < length) { + if (sub_pattern[i] == '\\' && i < length - 1) { + char next = sub_pattern[i + 1]; + if (ESCAPED_IN_REGEXPS_BUT_NOT_IN_LITERALS.find(next) != ESCAPED_IN_REGEXPS_BUT_NOT_IN_LITERALS.end()) { + i++; + literal += sub_pattern[i]; + i++; + } else { + literal += sub_pattern.substr(i, 2); + i += 2; + } + } else if (sub_pattern[i] == '"') { + literal += "\\\""; + i++; + } else if (!is_non_literal(sub_pattern[i]) && + (i == length - 1 || literal.empty() || sub_pattern[i + 1] == '.' || !is_non_literal(sub_pattern[i + 1]))) { + literal += sub_pattern[i]; + i++; + } else { + break; + } + } + if (!literal.empty()) { + seq.emplace_back(literal, true); + } + } + } + return join_seq(); + }; + return _add_rule(name, "\"\\\"\" (" + to_rule(transform()) + ") \"\\\"\" space"); + } + + /* + Returns a rule that matches a JSON string that is none of the provided strings + + not_strings({"a"}) + -> ["] ( [a] char+ | [^"a] char* )? ["] space + not_strings({"and", "also"}) + -> ["] ( [a] ([l] ([s] ([o] char+ | [^"o] char*) | [^"s] char*) | [n] ([d] char+ | [^"d] char*) | [^"ln] char*) | [^"a] char* )? ["] space + */ + std::string _not_strings(const std::vector & strings) { + + struct TrieNode { + std::map children; + bool is_end_of_string; + + TrieNode() : is_end_of_string(false) {} + + void insert(const std::string & string) { + auto node = this; + for (char c : string) { + node = &node->children[c]; + } + node->is_end_of_string = true; + } + }; + + TrieNode trie; + for (const auto & s : strings) { + trie.insert(s); + } + + std::string char_rule = _add_primitive("char", PRIMITIVE_RULES.at("char")); + std::ostringstream out; + out << "[\"] ( "; + std::function visit = [&](const TrieNode & node) { + std::ostringstream rejects; + auto first = true; + for (const auto & kv : node.children) { + rejects << kv.first; + if (first) { + first = false; + } else { + out << " | "; + } + out << "[" << kv.first << "]"; + if (!kv.second.children.empty()) { + out << " ("; + visit(kv.second); + out << ")"; + } else if (kv.second.is_end_of_string) { + out << " " << char_rule << "+"; + } + } + if (!node.children.empty()) { + if (!first) { + out << " | "; + } + out << "[^\"" << rejects.str() << "] " << char_rule << "*"; + } + }; + visit(trie); + + out << " )"; + if (!trie.is_end_of_string) { + out << "?"; + } + out << " [\"] space"; + return out.str(); + } + + std::string _resolve_ref(const std::string & ref) { + std::string ref_name = ref.substr(ref.find_last_of('/') + 1); + if (_rules.find(ref_name) == _rules.end() && _refs_being_resolved.find(ref) == _refs_being_resolved.end()) { + _refs_being_resolved.insert(ref); + json resolved = _refs[ref]; + ref_name = visit(resolved, ref_name); + _refs_being_resolved.erase(ref); + } + return ref_name; + } + + std::string _build_object_rule( + const std::vector> & properties, + const std::unordered_set & required, + const std::string & name, + const json & additional_properties) + { + std::vector required_props; + std::vector optional_props; + std::unordered_map prop_kv_rule_names; + std::vector prop_names; + for (const auto & kv : properties) { + const auto &prop_name = kv.first; + const auto &prop_schema = kv.second; + + std::string prop_rule_name = visit(prop_schema, name + (name.empty() ? "" : "-") + prop_name); + prop_kv_rule_names[prop_name] = _add_rule( + name + (name.empty() ? "" : "-") + prop_name + "-kv", + format_literal(json(prop_name).dump()) + " space \":\" space " + prop_rule_name + ); + if (required.find(prop_name) != required.end()) { + required_props.push_back(prop_name); + } else { + optional_props.push_back(prop_name); + } + prop_names.push_back(prop_name); + } + if ((additional_properties.is_boolean() && additional_properties.get()) || additional_properties.is_object()) { + std::string sub_name = name + (name.empty() ? "" : "-") + "additional"; + std::string value_rule = + additional_properties.is_object() ? visit(additional_properties, sub_name + "-value") + : _add_primitive("value", PRIMITIVE_RULES.at("value")); + + auto key_rule = + prop_names.empty() ? _add_primitive("string", PRIMITIVE_RULES.at("string")) + : _add_rule(sub_name + "-k", _not_strings(prop_names)); + std::string kv_rule = _add_rule(sub_name + "-kv", key_rule + " \":\" space " + value_rule); + prop_kv_rule_names["*"] = kv_rule; + optional_props.push_back("*"); + } + + std::string rule = "\"{\" space "; + for (size_t i = 0; i < required_props.size(); i++) { + if (i > 0) { + rule += " \",\" space "; + } + rule += prop_kv_rule_names[required_props[i]]; + } + + if (!optional_props.empty()) { + rule += " ("; + if (!required_props.empty()) { + rule += " \",\" space ( "; + } + + std::function &, bool)> get_recursive_refs = [&](const std::vector & ks, bool first_is_optional) { + std::string res; + if (ks.empty()) { + return res; + } + std::string k = ks[0]; + std::string kv_rule_name = prop_kv_rule_names[k]; + std::string comma_ref = "( \",\" space " + kv_rule_name + " )"; + if (first_is_optional) { + res = comma_ref + (k == "*" ? "*" : "?"); + } else { + res = kv_rule_name + (k == "*" ? " " + comma_ref + "*" : ""); + } + if (ks.size() > 1) { + res += " " + _add_rule( + name + (name.empty() ? "" : "-") + k + "-rest", + get_recursive_refs(std::vector(ks.begin() + 1, ks.end()), true) + ); + } + return res; + }; + + for (size_t i = 0; i < optional_props.size(); i++) { + if (i > 0) { + rule += " | "; + } + rule += get_recursive_refs(std::vector(optional_props.begin() + i, optional_props.end()), false); + } + if (!required_props.empty()) { + rule += " )"; + } + rule += " )?"; + } + + rule += " \"}\" space"; + + return rule; + } + + std::string _add_primitive(const std::string & name, const BuiltinRule & rule) { + auto n = _add_rule(name, rule.content); + for (const auto & dep : rule.deps) { + BuiltinRule dep_rule; + auto it = PRIMITIVE_RULES.find(dep); + if (it == PRIMITIVE_RULES.end()) { + it = STRING_FORMAT_RULES.find(dep); + if (it == STRING_FORMAT_RULES.end()) { + _errors.push_back("Rule " + dep + " not known"); + continue; + } + } + if (_rules.find(dep) == _rules.end()) { + _add_primitive(dep, it->second); + } + } + return n; + } + +public: + SchemaConverter( + const std::function & fetch_json, + bool dotall) + : _fetch_json(fetch_json), _dotall(dotall) + { + _rules["space"] = SPACE_RULE; + } + + void resolve_refs(json & schema, const std::string & url) { + /* + * Resolves all $ref fields in the given schema, fetching any remote schemas, + * replacing each $ref with absolute reference URL and populates _refs with the + * respective referenced (sub)schema dictionaries. + */ + std::function visit_refs = [&](json & n) { + if (n.is_array()) { + for (auto & x : n) { + visit_refs(x); + } + } else if (n.is_object()) { + if (n.contains("$ref")) { + std::string ref = n["$ref"]; + if (_refs.find(ref) == _refs.end()) { + json target; + if (ref.find("https://") == 0) { + std::string base_url = ref.substr(0, ref.find('#')); + auto it = _refs.find(base_url); + if (it != _refs.end()) { + target = it->second; + } else { + // Fetch the referenced schema and resolve its refs + auto referenced = _fetch_json(ref); + resolve_refs(referenced, base_url); + _refs[base_url] = referenced; + } + if (ref.find('#') == std::string::npos || ref.substr(ref.find('#') + 1).empty()) { + return; + } + } else if (ref.find("#/") == 0) { + target = schema; + n["$ref"] = url + ref; + ref = url + ref; + } else { + _errors.push_back("Unsupported ref: " + ref); + return; + } + std::string pointer = ref.substr(ref.find('#') + 1); + std::vector tokens = split(pointer, "/"); + for (size_t i = 1; i < tokens.size(); ++i) { + std::string sel = tokens[i]; + if (target.is_null() || !target.contains(sel)) { + _errors.push_back("Error resolving ref " + ref + ": " + sel + " not in " + target.dump()); + return; + } + target = target[sel]; + } + _refs[ref] = target; + } + } else { + for (auto & kv : n.items()) { + visit_refs(kv.value()); + } + } + } + }; + + visit_refs(schema); + } + + std::string _generate_constant_rule(const json & value) { + return format_literal(value.dump()); + } + + std::string visit(const json & schema, const std::string & name) { + json schema_type = schema.contains("type") ? schema["type"] : json(); + std::string schema_format = schema.contains("format") ? schema["format"].get() : ""; + std::string rule_name = is_reserved_name(name) ? name + "-" : name.empty() ? "root" : name; + + if (schema.contains("$ref")) { + return _add_rule(rule_name, _resolve_ref(schema["$ref"])); + } else if (schema.contains("oneOf") || schema.contains("anyOf")) { + std::vector alt_schemas = schema.contains("oneOf") ? schema["oneOf"].get>() : schema["anyOf"].get>(); + return _add_rule(rule_name, _generate_union_rule(name, alt_schemas)); + } else if (schema_type.is_array()) { + std::vector schema_types; + for (const auto & t : schema_type) { + json schema_copy(schema); + schema_copy["type"] = t; + schema_types.push_back(schema_copy); + } + return _add_rule(rule_name, _generate_union_rule(name, schema_types)); + } else if (schema.contains("const")) { + return _add_rule(rule_name, _generate_constant_rule(schema["const"]) + " space"); + } else if (schema.contains("enum")) { + std::vector enum_values; + for (const auto & v : schema["enum"]) { + enum_values.push_back(_generate_constant_rule(v)); + } + return _add_rule(rule_name, "(" + join(enum_values.begin(), enum_values.end(), " | ") + ") space"); + } else if ((schema_type.is_null() || schema_type == "object") + && (schema.contains("properties") || + (schema.contains("additionalProperties") && schema["additionalProperties"] != true))) { + std::unordered_set required; + if (schema.contains("required") && schema["required"].is_array()) { + for (const auto & item : schema["required"]) { + if (item.is_string()) { + required.insert(item.get()); + } + } + } + std::vector> properties; + if (schema.contains("properties")) { + for (const auto & prop : schema["properties"].items()) { + properties.emplace_back(prop.key(), prop.value()); + } + } + return _add_rule(rule_name, + _build_object_rule( + properties, required, name, + schema.contains("additionalProperties") ? schema["additionalProperties"] : json())); + } else if ((schema_type.is_null() || schema_type == "object") && schema.contains("allOf")) { + std::unordered_set required; + std::vector> properties; + std::string hybrid_name = name; + std::function add_component = [&](const json & comp_schema, bool is_required) { + if (comp_schema.contains("$ref")) { + add_component(_refs[comp_schema["$ref"]], is_required); + } else if (comp_schema.contains("properties")) { + for (const auto & prop : comp_schema["properties"].items()) { + properties.emplace_back(prop.key(), prop.value()); + if (is_required) { + required.insert(prop.key()); + } + } + } else { + // todo warning + } + }; + for (auto & t : schema["allOf"]) { + if (t.contains("anyOf")) { + for (auto & tt : t["anyOf"]) { + add_component(tt, false); + } + } else { + add_component(t, true); + } + } + return _add_rule(rule_name, _build_object_rule(properties, required, hybrid_name, json())); + } else if ((schema_type.is_null() || schema_type == "array") && (schema.contains("items") || schema.contains("prefixItems"))) { + json items = schema.contains("items") ? schema["items"] : schema["prefixItems"]; + if (items.is_array()) { + std::string rule = "\"[\" space "; + for (size_t i = 0; i < items.size(); i++) { + if (i > 0) { + rule += " \",\" space "; + } + rule += visit(items[i], name + (name.empty() ? "" : "-") + "tuple-" + std::to_string(i)); + } + rule += " \"]\" space"; + return _add_rule(rule_name, rule); + } else { + std::string item_rule_name = visit(items, name + (name.empty() ? "" : "-") + "item"); + int min_items = schema.contains("minItems") ? schema["minItems"].get() : 0; + json max_items_json = schema.contains("maxItems") ? schema["maxItems"] : json(); + int max_items = max_items_json.is_number_integer() ? max_items_json.get() : std::numeric_limits::max(); + + return _add_rule(rule_name, "\"[\" space " + build_repetition(item_rule_name, min_items, max_items, "\",\" space") + " \"]\" space"); + } + } else if ((schema_type.is_null() || schema_type == "string") && schema.contains("pattern")) { + return _visit_pattern(schema["pattern"], rule_name); + } else if ((schema_type.is_null() || schema_type == "string") && std::regex_match(schema_format, std::regex("^uuid[1-5]?$"))) { + return _add_primitive(rule_name == "root" ? "root" : schema_format, PRIMITIVE_RULES.at("uuid")); + } else if ((schema_type.is_null() || schema_type == "string") && STRING_FORMAT_RULES.find(schema_format + "-string") != STRING_FORMAT_RULES.end()) { + auto prim_name = schema_format + "-string"; + return _add_rule(rule_name, _add_primitive(prim_name, STRING_FORMAT_RULES.at(prim_name))); + } else if (schema_type == "string" && (schema.contains("minLength") || schema.contains("maxLength"))) { + std::string char_rule = _add_primitive("char", PRIMITIVE_RULES.at("char")); + int min_len = schema.contains("minLength") ? schema["minLength"].get() : 0; + int max_len = schema.contains("maxLength") ? schema["maxLength"].get() : std::numeric_limits::max(); + return _add_rule(rule_name, "\"\\\"\" " + build_repetition(char_rule, min_len, max_len) + " \"\\\"\" space"); + } else if (schema_type == "integer" && (schema.contains("minimum") || schema.contains("exclusiveMinimum") || schema.contains("maximum") || schema.contains("exclusiveMaximum"))) { + int min_value = std::numeric_limits::min(); + int max_value = std::numeric_limits::max(); + if (schema.contains("minimum")) { + min_value = schema["minimum"].get(); + } else if (schema.contains("exclusiveMinimum")) { + min_value = schema["exclusiveMinimum"].get() + 1; + } + if (schema.contains("maximum")) { + max_value = schema["maximum"].get(); + } else if (schema.contains("exclusiveMaximum")) { + max_value = schema["exclusiveMaximum"].get() - 1; + } + std::stringstream out; + out << "("; + _build_min_max_int(min_value, max_value, out); + out << ") space"; + return _add_rule(rule_name, out.str()); + } else if (schema.empty() || schema_type == "object") { + return _add_rule(rule_name, _add_primitive("object", PRIMITIVE_RULES.at("object"))); + } else { + if (!schema_type.is_string() || PRIMITIVE_RULES.find(schema_type.get()) == PRIMITIVE_RULES.end()) { + _errors.push_back("Unrecognized schema: " + schema.dump()); + return ""; + } + // TODO: support minimum, maximum, exclusiveMinimum, exclusiveMaximum at least for zero + return _add_primitive(rule_name == "root" ? "root" : schema_type.get(), PRIMITIVE_RULES.at(schema_type.get())); + } + } + + void check_errors() { + if (!_errors.empty()) { + throw std::runtime_error("JSON schema conversion failed:\n" + join(_errors.begin(), _errors.end(), "\n")); + } + if (!_warnings.empty()) { + fprintf(stderr, "WARNING: JSON schema conversion was incomplete: %s\n", join(_warnings.begin(), _warnings.end(), "; ").c_str()); + } + } + + std::string format_grammar() { + std::stringstream ss; + for (const auto & kv : _rules) { + ss << kv.first << " ::= " << kv.second << std::endl; + } + return ss.str(); + } +}; + +std::string json_schema_to_grammar(const json & schema) { + SchemaConverter converter([](const std::string &) { return json::object(); }, /* dotall= */ false); + auto copy = schema; + converter.resolve_refs(copy, "input"); + converter.visit(copy, ""); + converter.check_errors(); + return converter.format_grammar(); +} diff --git a/llama.cpp/common/json-schema-to-grammar.h b/llama.cpp/common/json-schema-to-grammar.h new file mode 100644 index 0000000000000000000000000000000000000000..41623b34645287ab14a24bcb729c79141129cf77 --- /dev/null +++ b/llama.cpp/common/json-schema-to-grammar.h @@ -0,0 +1,8 @@ +#pragma once + +#include "ggml.h" +// Change JSON_ASSERT from assert() to GGML_ASSERT: +#define JSON_ASSERT GGML_ASSERT +#include "json.hpp" + +std::string json_schema_to_grammar(const nlohmann::ordered_json& schema); diff --git a/llama.cpp/common/json.hpp b/llama.cpp/common/json.hpp new file mode 100644 index 0000000000000000000000000000000000000000..a858728c4ceb8a7048da422a96d38d61d3062d62 --- /dev/null +++ b/llama.cpp/common/json.hpp @@ -0,0 +1,24766 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + +/****************************************************************************\ + * Note on documentation: The source files contain links to the online * + * documentation of the public API at https://json.nlohmann.me. This URL * + * contains the most recent documentation and should also be applicable to * + * previous versions; documentation for deprecated functions is not * + * removed, but marked deprecated. See "Generate documentation" section in * + * file docs/README.md. * +\****************************************************************************/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#include // all_of, find, for_each +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#ifndef JSON_NO_IO + #include // istream, ostream +#endif // JSON_NO_IO +#include // random_access_iterator_tag +#include // unique_ptr +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// This file contains all macro definitions affecting or depending on the ABI + +#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK + #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3 + #warning "Already included a different version of the library!" + #endif + #endif +#endif + +#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum) + +#ifndef JSON_DIAGNOSTICS + #define JSON_DIAGNOSTICS 0 +#endif + +#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 +#endif + +#if JSON_DIAGNOSTICS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS +#endif + +#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp +#else + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION + #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0 +#endif + +// Construct the namespace ABI tags component +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) + +#define NLOHMANN_JSON_ABI_TAGS \ + NLOHMANN_JSON_ABI_TAGS_CONCAT( \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + +// Construct the namespace version component +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ + _v ## major ## _ ## minor ## _ ## patch +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) + +#if NLOHMANN_JSON_NAMESPACE_NO_VERSION +#define NLOHMANN_JSON_NAMESPACE_VERSION +#else +#define NLOHMANN_JSON_NAMESPACE_VERSION \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \ + NLOHMANN_JSON_VERSION_MINOR, \ + NLOHMANN_JSON_VERSION_PATCH) +#endif + +// Combine namespace components +#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b +#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \ + NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) + +#ifndef NLOHMANN_JSON_NAMESPACE +#define NLOHMANN_JSON_NAMESPACE \ + nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN +#define NLOHMANN_JSON_NAMESPACE_BEGIN \ + namespace nlohmann \ + { \ + inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) \ + { +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_END +#define NLOHMANN_JSON_NAMESPACE_END \ + } /* namespace (inline namespace) NOLINT(readability/namespace) */ \ + } // namespace nlohmann +#endif + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // transform +#include // array +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // nullptr_t +#include // exception +#if JSON_DIAGNOSTICS + #include // accumulate +#endif +#include // runtime_error +#include // to_string +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // uint8_t +#include // string + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // declval, pair +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +// https://en.cppreference.com/w/cpp/experimental/is_detected +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template class Op, class... Args> +using is_detected = typename detector::value_t; + +template class Op, class... Args> +struct is_detected_lazy : is_detected { }; + +template class Op, class... Args> +using detected_t = typename detector::type; + +template class Op, class... Args> +using detected_or = detector; + +template class Op, class... Args> +using detected_or_t = typename detected_or::type; + +template class Op, class... Args> +using is_detected_exact = std::is_same>; + +template class Op, class... Args> +using is_detected_convertible = + std::is_convertible, To>; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + + +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson +// SPDX-License-Identifier: MIT + +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + */ + +#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 15) +#if defined(JSON_HEDLEY_VERSION) + #undef JSON_HEDLEY_VERSION +#endif +#define JSON_HEDLEY_VERSION 15 + +#if defined(JSON_HEDLEY_STRINGIFY_EX) + #undef JSON_HEDLEY_STRINGIFY_EX +#endif +#define JSON_HEDLEY_STRINGIFY_EX(x) #x + +#if defined(JSON_HEDLEY_STRINGIFY) + #undef JSON_HEDLEY_STRINGIFY +#endif +#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) + +#if defined(JSON_HEDLEY_CONCAT_EX) + #undef JSON_HEDLEY_CONCAT_EX +#endif +#define JSON_HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(JSON_HEDLEY_CONCAT) + #undef JSON_HEDLEY_CONCAT +#endif +#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) + +#if defined(JSON_HEDLEY_CONCAT3_EX) + #undef JSON_HEDLEY_CONCAT3_EX +#endif +#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(JSON_HEDLEY_CONCAT3) + #undef JSON_HEDLEY_CONCAT3 +#endif +#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(JSON_HEDLEY_VERSION_ENCODE) + #undef JSON_HEDLEY_VERSION_ENCODE +#endif +#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) + #undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) + #undef JSON_HEDLEY_VERSION_DECODE_MINOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) + #undef JSON_HEDLEY_VERSION_DECODE_REVISION +#endif +#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(JSON_HEDLEY_GNUC_VERSION) + #undef JSON_HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) + #undef JSON_HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GNUC_VERSION) + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION) + #undef JSON_HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) + #undef JSON_HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(JSON_HEDLEY_MSVC_VERSION) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION) + #undef JSON_HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_VERSION) + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #undef JSON_HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) + #define JSON_HEDLEY_INTEL_CL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION) + #undef JSON_HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) + #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) + #undef JSON_HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PGI_VERSION) + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #undef JSON_HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) + #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION) + #undef JSON_HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) + #undef JSON_HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_ARM_VERSION) + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION) + #undef JSON_HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) + #undef JSON_HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IBM_VERSION) + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_VERSION) + #undef JSON_HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +#if (__TI_COMPILER_VERSION__ >= 16000000) + #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif +#endif + +#if defined(JSON_HEDLEY_TI_VERSION_CHECK) + #undef JSON_HEDLEY_TI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_VERSION) + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #undef JSON_HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) + #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #undef JSON_HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) + #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #undef JSON_HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) + #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) + #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #undef JSON_HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) + #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #undef JSON_HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) + #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #undef JSON_HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) + #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION) + #undef JSON_HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) + #if defined(_RELEASE_PATCHLEVEL) + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) + #else + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) + #undef JSON_HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_CRAY_VERSION) + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION) + #undef JSON_HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) + #if __VER__ > 1000 + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) + #else + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) + #undef JSON_HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IAR_VERSION) + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION) + #undef JSON_HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) + #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) + #undef JSON_HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION) + #undef JSON_HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) + #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) + #undef JSON_HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_DMC_VERSION) + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #undef JSON_HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) + #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) + #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION) + #undef JSON_HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) + #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) + #undef JSON_HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PELLES_VERSION) + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #undef JSON_HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) + #define JSON_HEDLEY_MCST_LCC_VERSION JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION_CHECK) + #undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_MCST_LCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION) + #undef JSON_HEDLEY_GCC_VERSION +#endif +#if \ + defined(JSON_HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(JSON_HEDLEY_INTEL_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_ARM_VERSION) && \ + !defined(JSON_HEDLEY_CRAY_VERSION) && \ + !defined(JSON_HEDLEY_TI_VERSION) && \ + !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL430_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(JSON_HEDLEY_IAR_VERSION) || JSON_HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_BUILTIN) + #undef JSON_HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else + #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) + #undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) + #undef JSON_HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_FEATURE) + #undef JSON_HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else + #define JSON_HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) + #undef JSON_HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) + #undef JSON_HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_EXTENSION) + #undef JSON_HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else + #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) + #undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) + #undef JSON_HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_WARNING) + #undef JSON_HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else + #define JSON_HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) + #undef JSON_HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_WARNING) + #undef JSON_HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) + #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_PRAGMA(value) __pragma(value) +#else + #define JSON_HEDLEY_PRAGMA(value) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) + #undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) + #undef JSON_HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) + #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_PUSH + #define JSON_HEDLEY_DIAGNOSTIC_POP +#endif + +/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") +# if JSON_HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if JSON_HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(JSON_HEDLEY_CONST_CAST) + #undef JSON_HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_REINTERPRET_CAST) + #undef JSON_HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_STATIC_CAST) + #undef JSON_HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else + #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_CPP_CAST) + #undef JSON_HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wold-style-cast") +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define JSON_HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunused-function") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(1,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(JSON_HEDLEY_DEPRECATED) + #undef JSON_HEDLEY_DEPRECATED +#endif +#if defined(JSON_HEDLEY_DEPRECATED_FOR) + #undef JSON_HEDLEY_DEPRECATED_FOR +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) + #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else + #define JSON_HEDLEY_DEPRECATED(since) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(JSON_HEDLEY_UNAVAILABLE) + #undef JSON_HEDLEY_UNAVAILABLE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else + #define JSON_HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ + #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else + #define JSON_HEDLEY_WARN_UNUSED_RESULT + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(JSON_HEDLEY_SENTINEL) + #undef JSON_HEDLEY_SENTINEL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else + #define JSON_HEDLEY_SENTINEL(position) +#endif + +#if defined(JSON_HEDLEY_NO_RETURN) + #undef JSON_HEDLEY_NO_RETURN +#endif +#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NO_RETURN __noreturn +#elif \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #define JSON_HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) + #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#else + #define JSON_HEDLEY_NO_RETURN +#endif + +#if defined(JSON_HEDLEY_NO_ESCAPE) + #undef JSON_HEDLEY_NO_ESCAPE +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) + #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else + #define JSON_HEDLEY_NO_ESCAPE +#endif + +#if defined(JSON_HEDLEY_UNREACHABLE) + #undef JSON_HEDLEY_UNREACHABLE +#endif +#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) + #undef JSON_HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(JSON_HEDLEY_ASSUME) + #undef JSON_HEDLEY_ASSUME +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_ASSUME(expr) __assume(expr) +#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) + #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #if defined(__cplusplus) + #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) + #else + #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) + #endif +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(JSON_HEDLEY_ASSUME) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif +#if !defined(JSON_HEDLEY_ASSUME) + #if defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1))) + #else + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr) + #endif +#endif +#if defined(JSON_HEDLEY_UNREACHABLE) + #if \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value)) + #else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() + #endif +#else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif + +JSON_HEDLEY_DIAGNOSTIC_PUSH +#if JSON_HEDLEY_HAS_WARNING("-Wpedantic") + #pragma clang diagnostic ignored "-Wpedantic" +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) + #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) + #if defined(__clang__) + #pragma clang diagnostic ignored "-Wvariadic-macros" + #elif defined(JSON_HEDLEY_GCC_VERSION) + #pragma GCC diagnostic ignored "-Wvariadic-macros" + #endif +#endif +#if defined(JSON_HEDLEY_NON_NULL) + #undef JSON_HEDLEY_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else + #define JSON_HEDLEY_NON_NULL(...) +#endif +JSON_HEDLEY_DIAGNOSTIC_POP + +#if defined(JSON_HEDLEY_PRINTF_FORMAT) + #undef JSON_HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(JSON_HEDLEY_CONSTEXPR) + #undef JSON_HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) + #endif +#endif +#if !defined(JSON_HEDLEY_CONSTEXPR) + #define JSON_HEDLEY_CONSTEXPR +#endif + +#if defined(JSON_HEDLEY_PREDICT) + #undef JSON_HEDLEY_PREDICT +#endif +#if defined(JSON_HEDLEY_LIKELY) + #undef JSON_HEDLEY_LIKELY +#endif +#if defined(JSON_HEDLEY_UNLIKELY) + #undef JSON_HEDLEY_UNLIKELY +#endif +#if defined(JSON_HEDLEY_UNPREDICTABLE) + #undef JSON_HEDLEY_UNPREDICTABLE +#endif +#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) + #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) +# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(JSON_HEDLEY_UNPREDICTABLE) + #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(JSON_HEDLEY_MALLOC) + #undef JSON_HEDLEY_MALLOC +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_MALLOC __declspec(restrict) +#else + #define JSON_HEDLEY_MALLOC +#endif + +#if defined(JSON_HEDLEY_PURE) + #undef JSON_HEDLEY_PURE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PURE __attribute__((__pure__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_CONST) + #undef JSON_HEDLEY_CONST +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_CONST __attribute__((__const__)) +#elif \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_CONST _Pragma("no_side_effect") +#else + #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_RESTRICT) + #undef JSON_HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT restrict +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RESTRICT __restrict +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT _Restrict +#else + #define JSON_HEDLEY_RESTRICT +#endif + +#if defined(JSON_HEDLEY_INLINE) + #undef JSON_HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) + #define JSON_HEDLEY_INLINE inline +#elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) + #define JSON_HEDLEY_INLINE __inline__ +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_INLINE __inline +#else + #define JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_ALWAYS_INLINE) + #undef JSON_HEDLEY_ALWAYS_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_NEVER_INLINE) + #undef JSON_HEDLEY_NEVER_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#else + #define JSON_HEDLEY_NEVER_INLINE +#endif + +#if defined(JSON_HEDLEY_PRIVATE) + #undef JSON_HEDLEY_PRIVATE +#endif +#if defined(JSON_HEDLEY_PUBLIC) + #undef JSON_HEDLEY_PUBLIC +#endif +#if defined(JSON_HEDLEY_IMPORT) + #undef JSON_HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC __declspec(dllexport) +# define JSON_HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC +# endif +# define JSON_HEDLEY_IMPORT extern +#endif + +#if defined(JSON_HEDLEY_NO_THROW) + #undef JSON_HEDLEY_NO_THROW +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NO_THROW __declspec(nothrow) +#else + #define JSON_HEDLEY_NO_THROW +#endif + +#if defined(JSON_HEDLEY_FALL_THROUGH) + #undef JSON_HEDLEY_FALL_THROUGH +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ + #define JSON_HEDLEY_FALL_THROUGH __fallthrough +#else + #define JSON_HEDLEY_FALL_THROUGH +#endif + +#if defined(JSON_HEDLEY_RETURNS_NON_NULL) + #undef JSON_HEDLEY_RETURNS_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ + #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else + #define JSON_HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(JSON_HEDLEY_ARRAY_PARAM) + #undef JSON_HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_ARRAY_PARAM(name) (name) +#else + #define JSON_HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(JSON_HEDLEY_IS_CONSTANT) + #undef JSON_HEDLEY_IS_CONSTANT +#endif +#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) + #undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#endif +/* JSON_HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #undef JSON_HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +#endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(JSON_HEDLEY_SUNPRO_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION)) || \ + (JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +#endif +# elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + defined(JSON_HEDLEY_INTEL_VERSION) || \ + defined(JSON_HEDLEY_TINYC_VERSION) || \ + defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(JSON_HEDLEY_TI_CL2000_VERSION) || \ + defined(JSON_HEDLEY_TI_CL6X_VERSION) || \ + defined(JSON_HEDLEY_TI_CL7X_VERSION) || \ + defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ +((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) (0) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(JSON_HEDLEY_BEGIN_C_DECLS) + #undef JSON_HEDLEY_BEGIN_C_DECLS +#endif +#if defined(JSON_HEDLEY_END_C_DECLS) + #undef JSON_HEDLEY_END_C_DECLS +#endif +#if defined(JSON_HEDLEY_C_DECL) + #undef JSON_HEDLEY_C_DECL +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { + #define JSON_HEDLEY_END_C_DECLS } + #define JSON_HEDLEY_C_DECL extern "C" +#else + #define JSON_HEDLEY_BEGIN_C_DECLS + #define JSON_HEDLEY_END_C_DECLS + #define JSON_HEDLEY_C_DECL +#endif + +#if defined(JSON_HEDLEY_STATIC_ASSERT) + #undef JSON_HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (JSON_HEDLEY_HAS_FEATURE(c_static_assert) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(JSON_HEDLEY_NULL) + #undef JSON_HEDLEY_NULL +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) + #elif defined(NULL) + #define JSON_HEDLEY_NULL NULL + #else + #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) + #endif +#elif defined(NULL) + #define JSON_HEDLEY_NULL NULL +#else + #define JSON_HEDLEY_NULL ((void*) 0) +#endif + +#if defined(JSON_HEDLEY_MESSAGE) + #undef JSON_HEDLEY_MESSAGE +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_MESSAGE(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(message msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) +#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_WARNING) + #undef JSON_HEDLEY_WARNING +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_WARNING(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(clang warning msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_REQUIRE) + #undef JSON_HEDLEY_REQUIRE +#endif +#if defined(JSON_HEDLEY_REQUIRE_MSG) + #undef JSON_HEDLEY_REQUIRE_MSG +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") +# define JSON_HEDLEY_REQUIRE(expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define JSON_HEDLEY_REQUIRE(expr) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(JSON_HEDLEY_FLAGS) + #undef JSON_HEDLEY_FLAGS +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || JSON_HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) + #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else + #define JSON_HEDLEY_FLAGS +#endif + +#if defined(JSON_HEDLEY_FLAGS_CAST) + #undef JSON_HEDLEY_FLAGS_CAST +#endif +#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(JSON_HEDLEY_EMPTY_BASES) + #undef JSON_HEDLEY_EMPTY_BASES +#endif +#if \ + (JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else + #define JSON_HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) + #undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#endif +#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) + +#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) + #undef JSON_HEDLEY_CLANG_HAS_FEATURE +#endif +#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) + +#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) + #undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#endif +#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) + +#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_WARNING) + #undef JSON_HEDLEY_CLANG_HAS_WARNING +#endif +#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ + + +// This file contains all internal macro definitions (except those affecting ABI) +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// #include + + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// C++ language standard detection +// if the user manually specified the used c++ version this is skipped +#if !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 + #endif + // the cpp 11 flag is always specified because it is the minimal required version + #define JSON_HAS_CPP_11 +#endif + +#ifdef __has_include + #if __has_include() + #include + #endif +#endif + +#if !defined(JSON_HAS_FILESYSTEM) && !defined(JSON_HAS_EXPERIMENTAL_FILESYSTEM) + #ifdef JSON_HAS_CPP_17 + #if defined(__cpp_lib_filesystem) + #define JSON_HAS_FILESYSTEM 1 + #elif defined(__cpp_lib_experimental_filesystem) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif !defined(__has_include) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #endif + + // std::filesystem does not work on MinGW GCC 8: https://sourceforge.net/p/mingw-w64/bugs/737/ + #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ == 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before GCC 8: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before Clang 7: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__clang_major__) && __clang_major__ < 7 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before MSVC 19.14: https://en.cppreference.com/w/cpp/compiler_support + #if defined(_MSC_VER) && _MSC_VER < 1914 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before iOS 13 + #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before macOS Catalina + #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + #endif +#endif + +#ifndef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_FILESYSTEM + #define JSON_HAS_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_THREE_WAY_COMPARISON + #if defined(__cpp_impl_three_way_comparison) && __cpp_impl_three_way_comparison >= 201907L \ + && defined(__cpp_lib_three_way_comparison) && __cpp_lib_three_way_comparison >= 201907L + #define JSON_HAS_THREE_WAY_COMPARISON 1 + #else + #define JSON_HAS_THREE_WAY_COMPARISON 0 + #endif +#endif + +#ifndef JSON_HAS_RANGES + // ranges header shipping in GCC 11.1.0 (released 2021-04-27) has syntax error + #if defined(__GLIBCXX__) && __GLIBCXX__ == 20210427 + #define JSON_HAS_RANGES 0 + #elif defined(__cpp_lib_ranges) + #define JSON_HAS_RANGES 1 + #else + #define JSON_HAS_RANGES 0 + #endif +#endif + +#ifndef JSON_HAS_STATIC_RTTI + #if !defined(_HAS_STATIC_RTTI) || _HAS_STATIC_RTTI != 0 + #define JSON_HAS_STATIC_RTTI 1 + #else + #define JSON_HAS_STATIC_RTTI 0 + #endif +#endif + +#ifdef JSON_HAS_CPP_17 + #define JSON_INLINE_VARIABLE inline +#else + #define JSON_INLINE_VARIABLE +#endif + +#if JSON_HEDLEY_HAS_ATTRIBUTE(no_unique_address) + #define JSON_NO_UNIQUE_ADDRESS [[no_unique_address]] +#else + #define JSON_NO_UNIQUE_ADDRESS +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdocumentation" + #pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#endif + +// allow disabling exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// allow overriding assert +#if !defined(JSON_ASSERT) + #include // assert + #define JSON_ASSERT(x) assert(x) +#endif + +// allow to access some private functions (needed by the test suite) +#if defined(JSON_TESTS_PRIVATE) + #define JSON_PRIVATE_UNLESS_TESTED public +#else + #define JSON_PRIVATE_UNLESS_TESTED private +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [&j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer, \ + class BinaryType, \ + class CustomBaseClass> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// Macros to simplify conversion from/to types + +#define NLOHMANN_JSON_EXPAND( x ) x +#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME +#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \ + NLOHMANN_JSON_PASTE64, \ + NLOHMANN_JSON_PASTE63, \ + NLOHMANN_JSON_PASTE62, \ + NLOHMANN_JSON_PASTE61, \ + NLOHMANN_JSON_PASTE60, \ + NLOHMANN_JSON_PASTE59, \ + NLOHMANN_JSON_PASTE58, \ + NLOHMANN_JSON_PASTE57, \ + NLOHMANN_JSON_PASTE56, \ + NLOHMANN_JSON_PASTE55, \ + NLOHMANN_JSON_PASTE54, \ + NLOHMANN_JSON_PASTE53, \ + NLOHMANN_JSON_PASTE52, \ + NLOHMANN_JSON_PASTE51, \ + NLOHMANN_JSON_PASTE50, \ + NLOHMANN_JSON_PASTE49, \ + NLOHMANN_JSON_PASTE48, \ + NLOHMANN_JSON_PASTE47, \ + NLOHMANN_JSON_PASTE46, \ + NLOHMANN_JSON_PASTE45, \ + NLOHMANN_JSON_PASTE44, \ + NLOHMANN_JSON_PASTE43, \ + NLOHMANN_JSON_PASTE42, \ + NLOHMANN_JSON_PASTE41, \ + NLOHMANN_JSON_PASTE40, \ + NLOHMANN_JSON_PASTE39, \ + NLOHMANN_JSON_PASTE38, \ + NLOHMANN_JSON_PASTE37, \ + NLOHMANN_JSON_PASTE36, \ + NLOHMANN_JSON_PASTE35, \ + NLOHMANN_JSON_PASTE34, \ + NLOHMANN_JSON_PASTE33, \ + NLOHMANN_JSON_PASTE32, \ + NLOHMANN_JSON_PASTE31, \ + NLOHMANN_JSON_PASTE30, \ + NLOHMANN_JSON_PASTE29, \ + NLOHMANN_JSON_PASTE28, \ + NLOHMANN_JSON_PASTE27, \ + NLOHMANN_JSON_PASTE26, \ + NLOHMANN_JSON_PASTE25, \ + NLOHMANN_JSON_PASTE24, \ + NLOHMANN_JSON_PASTE23, \ + NLOHMANN_JSON_PASTE22, \ + NLOHMANN_JSON_PASTE21, \ + NLOHMANN_JSON_PASTE20, \ + NLOHMANN_JSON_PASTE19, \ + NLOHMANN_JSON_PASTE18, \ + NLOHMANN_JSON_PASTE17, \ + NLOHMANN_JSON_PASTE16, \ + NLOHMANN_JSON_PASTE15, \ + NLOHMANN_JSON_PASTE14, \ + NLOHMANN_JSON_PASTE13, \ + NLOHMANN_JSON_PASTE12, \ + NLOHMANN_JSON_PASTE11, \ + NLOHMANN_JSON_PASTE10, \ + NLOHMANN_JSON_PASTE9, \ + NLOHMANN_JSON_PASTE8, \ + NLOHMANN_JSON_PASTE7, \ + NLOHMANN_JSON_PASTE6, \ + NLOHMANN_JSON_PASTE5, \ + NLOHMANN_JSON_PASTE4, \ + NLOHMANN_JSON_PASTE3, \ + NLOHMANN_JSON_PASTE2, \ + NLOHMANN_JSON_PASTE1)(__VA_ARGS__)) +#define NLOHMANN_JSON_PASTE2(func, v1) func(v1) +#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2) +#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3) +#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4) +#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5) +#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6) +#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7) +#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8) +#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9) +#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10) +#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) +#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) +#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) +#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) +#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) +#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) +#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) +#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) +#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) +#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) +#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) +#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) +#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) +#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) +#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) +#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) +#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) +#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) +#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) +#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) +#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) +#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) +#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) +#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) +#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) +#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) +#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) +#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) +#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) +#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) +#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) +#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) +#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) +#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) +#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) +#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) +#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) +#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) +#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) +#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) +#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) +#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) +#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) +#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) +#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) +#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) +#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) +#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) +#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) +#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) +#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) +#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) +#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) + +#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; +#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1); + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +// inspired from https://stackoverflow.com/a/26745591 +// allows to call any std function as if (e.g. with begin): +// using std::begin; begin(x); +// +// it allows using the detected idiom to retrieve the return type +// of such an expression +#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \ + namespace detail { \ + using std::std_name; \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + } \ + \ + namespace detail2 { \ + struct std_name##_tag \ + { \ + }; \ + \ + template \ + std_name##_tag std_name(T&&...); \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + \ + template \ + struct would_call_std_##std_name \ + { \ + static constexpr auto const value = ::nlohmann::detail:: \ + is_detected_exact::value; \ + }; \ + } /* namespace detail2 */ \ + \ + template \ + struct would_call_std_##std_name : detail2::would_call_std_##std_name \ + { \ + } + +#ifndef JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_USE_IMPLICIT_CONVERSIONS 1 +#endif + +#if JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_EXPLICIT +#else + #define JSON_EXPLICIT explicit +#endif + +#ifndef JSON_DISABLE_ENUM_SERIALIZATION + #define JSON_DISABLE_ENUM_SERIALIZATION 0 +#endif + +#ifndef JSON_USE_GLOBAL_UDLS + #define JSON_USE_GLOBAL_UDLS 1 +#endif + +#if JSON_HAS_THREE_WAY_COMPARISON + #include // partial_ordering +#endif + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa see @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + binary, ///< binary array (ordered collection of bytes) + discarded ///< discarded by the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string < binary +- furthermore, each type is not smaller than itself +- discarded values are not comparable +- binary is represented as a b"" string in python and directly comparable to a + string; however, making a binary array directly comparable with a string would + be surprising behavior in a JSON file. + +@since version 1.0.0 +*/ +#if JSON_HAS_THREE_WAY_COMPARISON + inline std::partial_ordering operator<=>(const value_t lhs, const value_t rhs) noexcept // *NOPAD* +#else + inline bool operator<(const value_t lhs, const value_t rhs) noexcept +#endif +{ + static constexpr std::array order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */, + 6 /* binary */ + } + }; + + const auto l_index = static_cast(lhs); + const auto r_index = static_cast(rhs); +#if JSON_HAS_THREE_WAY_COMPARISON + if (l_index < order.size() && r_index < order.size()) + { + return order[l_index] <=> order[r_index]; // *NOPAD* + } + return std::partial_ordering::unordered; +#else + return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index]; +#endif +} + +// GCC selects the built-in operator< over an operator rewritten from +// a user-defined spaceship operator +// Clang, MSVC, and ICC select the rewritten candidate +// (see GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105200) +#if JSON_HAS_THREE_WAY_COMPARISON && defined(__GNUC__) +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + return std::is_lt(lhs <=> rhs); // *NOPAD* +} +#endif + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/*! +@brief replace all occurrences of a substring by another string + +@param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t +@param[in] f the substring to replace with @a t +@param[in] t the string to replace @a f + +@pre The search string @a f must not be empty. **This precondition is +enforced with an assertion.** + +@since version 2.0.0 +*/ +template +inline void replace_substring(StringType& s, const StringType& f, + const StringType& t) +{ + JSON_ASSERT(!f.empty()); + for (auto pos = s.find(f); // find first occurrence of f + pos != StringType::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find next occurrence of f + {} +} + +/*! + * @brief string escaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to escape + * @return escaped string + * + * Note the order of escaping "~" to "~0" and "/" to "~1" is important. + */ +template +inline StringType escape(StringType s) +{ + replace_substring(s, StringType{"~"}, StringType{"~0"}); + replace_substring(s, StringType{"/"}, StringType{"~1"}); + return s; +} + +/*! + * @brief string unescaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to unescape + * @return unescaped string + * + * Note the order of escaping "~1" to "/" and "~0" to "~" is important. + */ +template +static void unescape(StringType& s) +{ + replace_substring(s, StringType{"~1"}, StringType{"/"}); + replace_substring(s, StringType{"~0"}, StringType{"~"}); +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // size_t + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2018 The Abseil Authors +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type +#include // index_sequence, make_index_sequence, index_sequence_for + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +using uncvref_t = typename std::remove_cv::type>::type; + +#ifdef JSON_HAS_CPP_14 + +// the following utilities are natively available in C++14 +using std::enable_if_t; +using std::index_sequence; +using std::make_index_sequence; +using std::index_sequence_for; + +#else + +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +// The following code is taken from https://github.com/abseil/abseil-cpp/blob/10cb35e459f5ecca5b2ff107635da0bfa41011b4/absl/utility/utility.h +// which is part of Google Abseil (https://github.com/abseil/abseil-cpp), licensed under the Apache License 2.0. + +//// START OF CODE FROM GOOGLE ABSEIL + +// integer_sequence +// +// Class template representing a compile-time integer sequence. An instantiation +// of `integer_sequence` has a sequence of integers encoded in its +// type through its template arguments (which is a common need when +// working with C++11 variadic templates). `absl::integer_sequence` is designed +// to be a drop-in replacement for C++14's `std::integer_sequence`. +// +// Example: +// +// template< class T, T... Ints > +// void user_function(integer_sequence); +// +// int main() +// { +// // user_function's `T` will be deduced to `int` and `Ints...` +// // will be deduced to `0, 1, 2, 3, 4`. +// user_function(make_integer_sequence()); +// } +template +struct integer_sequence +{ + using value_type = T; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +// index_sequence +// +// A helper template for an `integer_sequence` of `size_t`, +// `absl::index_sequence` is designed to be a drop-in replacement for C++14's +// `std::index_sequence`. +template +using index_sequence = integer_sequence; + +namespace utility_internal +{ + +template +struct Extend; + +// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. +template +struct Extend, SeqSize, 0> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)... >; +}; + +template +struct Extend, SeqSize, 1> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)..., 2 * SeqSize >; +}; + +// Recursion helper for 'make_integer_sequence'. +// 'Gen::type' is an alias for 'integer_sequence'. +template +struct Gen +{ + using type = + typename Extend < typename Gen < T, N / 2 >::type, N / 2, N % 2 >::type; +}; + +template +struct Gen +{ + using type = integer_sequence; +}; + +} // namespace utility_internal + +// Compile-time sequences of integers + +// make_integer_sequence +// +// This template alias is equivalent to +// `integer_sequence`, and is designed to be a drop-in +// replacement for C++14's `std::make_integer_sequence`. +template +using make_integer_sequence = typename utility_internal::Gen::type; + +// make_index_sequence +// +// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, +// and is designed to be a drop-in replacement for C++14's +// `std::make_index_sequence`. +template +using make_index_sequence = make_integer_sequence; + +// index_sequence_for +// +// Converts a typename pack into an index sequence of the same length, and +// is designed to be a drop-in replacement for C++14's +// `std::index_sequence_for()` +template +using index_sequence_for = make_index_sequence; + +//// END OF CODE FROM GOOGLE ABSEIL + +#endif + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static JSON_INLINE_VARIABLE constexpr T value{}; +}; + +#ifndef JSON_HAS_CPP_17 + template + constexpr T static_const::value; +#endif + +template +inline constexpr std::array make_array(Args&& ... args) +{ + return std::array {{static_cast(std::forward(args))...}}; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // numeric_limits +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval +#include // tuple +#include // char_traits + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // random_access_iterator_tag + +// #include + +// #include + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); + +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ + #define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + #include // int64_t, uint64_t + #include // map + #include // allocator + #include // string + #include // vector + + // #include + + + /*! + @brief namespace for Niels Lohmann + @see https://github.com/nlohmann + @since version 1.0.0 + */ + NLOHMANN_JSON_NAMESPACE_BEGIN + + /*! + @brief default JSONSerializer template argument + + This serializer ignores the template arguments and uses ADL + ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) + for serialization. + */ + template + struct adl_serializer; + + /// a class to store JSON values + /// @sa https://json.nlohmann.me/api/basic_json/ + template class ObjectType = + std::map, + template class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template class AllocatorType = std::allocator, + template class JSONSerializer = + adl_serializer, + class BinaryType = std::vector, // cppcheck-suppress syntaxError + class CustomBaseClass = void> + class basic_json; + + /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document + /// @sa https://json.nlohmann.me/api/json_pointer/ + template + class json_pointer; + + /*! + @brief default specialization + @sa https://json.nlohmann.me/api/json/ + */ + using json = basic_json<>; + + /// @brief a minimal map-like container that preserves insertion order + /// @sa https://json.nlohmann.me/api/ordered_map/ + template + struct ordered_map; + + /// @brief specialization that maintains the insertion order of object keys + /// @sa https://json.nlohmann.me/api/ordered_json/ + using ordered_json = basic_json; + + NLOHMANN_JSON_NAMESPACE_END + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +NLOHMANN_JSON_NAMESPACE_BEGIN +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ + +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e. those of the form: decltype(T::member_function(std::declval()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g. to_json(BasicJsonType&, const T&)) + +template struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json : std::true_type {}; + +// used by exceptions create() member functions +// true_type for pointer to possibly cv-qualified basic_json or std::nullptr_t +// false_type otherwise +template +struct is_basic_json_context : + std::integral_constant < bool, + is_basic_json::type>::type>::value + || std::is_same::value > +{}; + +////////////////////// +// json_ref helpers // +////////////////////// + +template +class json_ref; + +template +struct is_json_ref : std::false_type {}; + +template +struct is_json_ref> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template +using mapped_type_t = typename T::mapped_type; + +template +using key_type_t = typename T::key_type; + +template +using value_type_t = typename T::value_type; + +template +using difference_type_t = typename T::difference_type; + +template +using pointer_t = typename T::pointer; + +template +using reference_t = typename T::reference; + +template +using iterator_category_t = typename T::iterator_category; + +template +using to_json_function = decltype(T::to_json(std::declval()...)); + +template +using from_json_function = decltype(T::from_json(std::declval()...)); + +template +using get_template_function = decltype(std::declval().template get()); + +// trait checking if JSONSerializer::from_json(json const&, udt&) exists +template +struct has_from_json : std::false_type {}; + +// trait checking if j.get is valid +// use this trait instead of std::is_constructible or std::is_convertible, +// both rely on, or make use of implicit conversions, and thus fail when T +// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958) +template +struct is_getable +{ + static constexpr bool value = is_detected::value; +}; + +template +struct has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if JSONSerializer::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template +struct has_non_default_from_json : std::false_type {}; + +template +struct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if BasicJsonType::json_serializer::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template +struct has_to_json : std::false_type {}; + +template +struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +template +using detect_key_compare = typename T::key_compare; + +template +struct has_key_compare : std::integral_constant::value> {}; + +// obtains the actual object key comparator +template +struct actual_object_comparator +{ + using object_t = typename BasicJsonType::object_t; + using object_comparator_t = typename BasicJsonType::default_object_comparator_t; + using type = typename std::conditional < has_key_compare::value, + typename object_t::key_compare, object_comparator_t>::type; +}; + +template +using actual_object_comparator_t = typename actual_object_comparator::type; + +///////////////// +// char_traits // +///////////////// + +// Primary template of char_traits calls std char_traits +template +struct char_traits : std::char_traits +{}; + +// Explicitly define char traits for unsigned char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = unsigned char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(EOF); + } +}; + +// Explicitly define char traits for signed char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = signed char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(EOF); + } +}; + +/////////////////// +// is_ functions // +/////////////////// + +// https://en.cppreference.com/w/cpp/types/conjunction +template struct conjunction : std::true_type { }; +template struct conjunction : B { }; +template +struct conjunction +: std::conditional(B::value), conjunction, B>::type {}; + +// https://en.cppreference.com/w/cpp/types/negation +template struct negation : std::integral_constant < bool, !B::value > { }; + +// Reimplementation of is_constructible and is_default_constructible, due to them being broken for +// std::pair and std::tuple until LWG 2367 fix (see https://cplusplus.github.io/LWG/lwg-defects.html#2367). +// This causes compile errors in e.g. clang 3.5 or gcc 4.9. +template +struct is_default_constructible : std::is_default_constructible {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_constructible : std::is_constructible {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_iterator_traits : std::false_type {}; + +template +struct is_iterator_traits> +{ + private: + using traits = iterator_traits; + + public: + static constexpr auto value = + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value; +}; + +template +struct is_range +{ + private: + using t_ref = typename std::add_lvalue_reference::type; + + using iterator = detected_t; + using sentinel = detected_t; + + // to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator + // and https://en.cppreference.com/w/cpp/iterator/sentinel_for + // but reimplementing these would be too much work, as a lot of other concepts are used underneath + static constexpr auto is_iterator_begin = + is_iterator_traits>::value; + + public: + static constexpr bool value = !std::is_same::value && !std::is_same::value && is_iterator_begin; +}; + +template +using iterator_t = enable_if_t::value, result_of_begin())>>; + +template +using range_value_t = value_type_t>>; + +// The following implementation of is_complete_type is taken from +// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/ +// and is written by Xiang Fan who agreed to using it in this library. + +template +struct is_complete_type : std::false_type {}; + +template +struct is_complete_type : std::true_type {}; + +template +struct is_compatible_object_type_impl : std::false_type {}; + +template +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + is_constructible::value && + is_constructible::value; +}; + +template +struct is_compatible_object_type + : is_compatible_object_type_impl {}; + +template +struct is_constructible_object_type_impl : std::false_type {}; + +template +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (is_default_constructible::value && + (std::is_move_assignable::value || + std::is_copy_assignable::value) && + (is_constructible::value && + std::is_same < + typename object_t::mapped_type, + typename ConstructibleObjectType::mapped_type >::value)) || + (has_from_json::value || + has_non_default_from_json < + BasicJsonType, + typename ConstructibleObjectType::mapped_type >::value); +}; + +template +struct is_constructible_object_type + : is_constructible_object_type_impl {}; + +template +struct is_compatible_string_type +{ + static constexpr auto value = + is_constructible::value; +}; + +template +struct is_constructible_string_type +{ + // launder type through decltype() to fix compilation failure on ICPC +#ifdef __INTEL_COMPILER + using laundered_type = decltype(std::declval()); +#else + using laundered_type = ConstructibleStringType; +#endif + + static constexpr auto value = + conjunction < + is_constructible, + is_detected_exact>::value; +}; + +template +struct is_compatible_array_type_impl : std::false_type {}; + +template +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t < + is_detected::value&& + is_iterator_traits>>::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 + !std::is_same>::value >> +{ + static constexpr bool value = + is_constructible>::value; +}; + +template +struct is_compatible_array_type + : is_compatible_array_type_impl {}; + +template +struct is_constructible_array_type_impl : std::false_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t::value >> + : std::true_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t < !std::is_same::value&& + !is_compatible_string_type::value&& + is_default_constructible::value&& +(std::is_move_assignable::value || + std::is_copy_assignable::value)&& +is_detected::value&& +is_iterator_traits>>::value&& +is_detected::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 +!std::is_same>::value&& + is_complete_type < + detected_t>::value >> +{ + using value_type = range_value_t; + + static constexpr bool value = + std::is_same::value || + has_from_json::value || + has_non_default_from_json < + BasicJsonType, + value_type >::value; +}; + +template +struct is_constructible_array_type + : is_constructible_array_type_impl {}; + +template +struct is_compatible_integer_type_impl : std::false_type {}; + +template +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t < std::is_integral::value&& + std::is_integral::value&& + !std::is_same::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits; + using CompatibleLimits = std::numeric_limits; + + static constexpr auto value = + is_constructible::value && + CompatibleLimits::is_integer && + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template +struct is_compatible_integer_type + : is_compatible_integer_type_impl {}; + +template +struct is_compatible_type_impl: std::false_type {}; + +template +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t::value >> +{ + static constexpr bool value = + has_to_json::value; +}; + +template +struct is_compatible_type + : is_compatible_type_impl {}; + +template +struct is_constructible_tuple : std::false_type {}; + +template +struct is_constructible_tuple> : conjunction...> {}; + +template +struct is_json_iterator_of : std::false_type {}; + +template +struct is_json_iterator_of : std::true_type {}; + +template +struct is_json_iterator_of : std::true_type +{}; + +// checks if a given type T is a template specialization of Primary +template